К сожалению, я нарисовал пустую после поиска этого недавно.Я использую Amazon Web Services CloudFormation (это метаданные JSON, о которых вы говорите?).
Существует несколько проблем с файлами JSON CloudFormation:
- I 'm более 1500 строк, и невозможно прочитать,
- Вы не можете выразить все, что API дает вам, особенно в области виртуальных частных облаков,
- Существует множество ошибок, которыенапример, Elastic Load Balancers теряют информацию HTTPS, тратя много времени.
Так что я использовал прямые вызовы API в Scala с использованием Java API.Это на самом деле очень хорошо.
Java API имеет разновидность «сеттеров», начинающихся с with
, которые возвращают this
, поэтому они могут быть объединены в цепочку.В Scala вы можете использовать их, чтобы действовать как DSL бедняка.Таким образом, вы можете делать такие вещи, как
val updateRequest = new UpdateAutoScalingGroupRequest()
.withAutoScalingGroupName(group.getAutoScalingGroupName)
.withAvailabilityZones(subnetAZsOfOurVPC)
.withVPCZoneIdentifier(subnetNamesOfOurVPC)
as.updateAutoScalingGroup(updateRequest)
Другие вещи в Scala легко реализовать с помощью API Java.Например, сгруппируйте все свои подсети по VPC на карте, просто выполните
val subnetsByVPC = ec2.describeSubnets(new DescribeSubnetsRequest).getSubnets.groupBy(_.getVpcId)