我正在考虑使用 Amazon 云服务(EC2、S3 等)进行托管。我一直在查看可以指定用于配置各种实例的 JSON 元数据,其复杂性让我感到担忧。是否有 dsl 会生成有效的 JSON 元数据,更重要的是验证条目?

最佳答案

不幸的是,我最近在搜索后画了一个空白。我正在使用 Amazon Web Services CloudFormation(您说的是 JSON 元数据吗?)。

CloudFormation JSON 文件有几个问题:

  • 我的行数超过 1,500 行,无法阅读,
  • 你无法表达 API 给你的一切,特别是在虚拟私有(private)云领域,
  • 有很多错误需要很长时间才能修复,例如,弹性负载均衡器丢失 HTTPS 信息。

  • 所以我一直在使用 Java API 在 Scala 中使用直接的 API 调用。其实真的很不错。

    Java API 具有以 with 开头的“setter”风格,它返回 this,因此可以链接它们。在 Scala 中,您可以使用这些来充当穷人的 DSL。所以你可以做这样的事情
    val updateRequest = new UpdateAutoScalingGroupRequest()
                        .withAutoScalingGroupName(group.getAutoScalingGroupName)
                        .withAvailabilityZones(subnetAZsOfOurVPC)
                        .withVPCZoneIdentifier(subnetNamesOfOurVPC)
    
    as.updateAutoScalingGroup(updateRequest)
    

    使用 Java API 在 Scala 中可以轻松完成其他事情。例如,在 map 中按 VPC 将所有子网分组,只需执行
    val subnetsByVPC = ec2.describeSubnets(new DescribeSubnetsRequest).getSubnets.groupBy(_.getVpcId)
    

    关于dsl - AWS EC2 有 dsl 吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8920053/

    10-13 09:30