我正在尋找使用亞馬遜雲服務(EC2,S3等)進行託管。我一直在尋找可以指定的JSON元數據來配置各種實例,而我所關心的複雜性。是否有一個dsl會生成有效的JSON元數據,更重要的是驗證條目?是否有AWS EC2的dsl?
回答
不幸的是,我畫了一個空白的最近搜索此之後。我正在使用亞馬遜網絡服務CloudFormation(是你談論的JSON元數據?)。
有幾個問題與CloudFormation JSON文件:
- 我在超過1500線,這是不可能的閱讀,
- 你不能表達的一切API給你,尤其是在虛擬私有云領域,
- 有許多被花費很長的時間來修復錯誤的,彈性負載平衡器失去HTTPS信息,例如。
所以我一直在使用Java API的Scala中使用直接的API調用。其實真的很不錯。
Java API有一個「設置者」的味道,從with
開始,返回this
,以便它們可以鏈接。在斯卡拉,你可以使用它們來扮演一個窮人的DSL。所以,你可以做這樣的事情
val updateRequest = new UpdateAutoScalingGroupRequest()
.withAutoScalingGroupName(group.getAutoScalingGroupName)
.withAvailabilityZones(subnetAZsOfOurVPC)
.withVPCZoneIdentifier(subnetNamesOfOurVPC)
as.updateAutoScalingGroup(updateRequest)
其他的事情很容易在斯卡拉做與Java API。例如,組中的所有子網的VPC在地圖上根本就
val subnetsByVPC = ec2.describeSubnets(new DescribeSubnetsRequest).getSubnets.groupBy(_.getVpcId)
我已經完成了本質上的工作,我已經使用Java AWS API構建了一些groovy腳本。我已經添加了一些元編程來簡化API並添加一些缺失的選項。工作很好。 –
我日常工作的需求阻礙了我爲亞馬遜Web服務Java API編寫全面的Scala DSL。這一定非常棒。坦率地說,比CloudFormation好很多,因爲某些原因,它在亞馬遜似乎沒有得到很多關注。這是相當多的錯誤。 –
現在有,雖然我還沒有使用它:Coffin一個CoffeeScript的DSL的CloudFormation。
如果你不是在談論CloudFormation,而是談論更通用的API,那麼我發現的最好的界面是AWS' own aws-sdk ruby gem。與他們發佈的其他SDK相比,它們做得非常好 - 但粗糙的make-client/make-request/get-response/look-at-result-affairs,ruby SDK wraps a nicer domain-model over the top, so you interact via collections at a higher abstract level。
它還具有相當不錯的性能特點,因爲如果您知道不需要新的響應,您可以緩存響應以節省往返時間。
如果有人還在尋找AWS CloudFormation DSL - 我們一直在使用Ruby DSL for CloudFormation:
https://github.com/bazaarvoice/cloudformation-ruby-dsl
- 這家整潔的項目提供了一個工具來轉換現有的CloudFormation模板(S)到Ruby DSL
- 它將生成有效的JSON輸出
- 驗證Ruby模板條目與驗證常規CloudFormation模板類似(請參閱CFN-驗證模板)
- 你的模板成爲Ruby代碼,所以很容易有可重用的模塊(DRY)
- 您可以定義局部變量
- 你可以在你的DSL模板評論
- 大大提高可讀性
- 大大降低了DSL模板尺寸
的CloudFormation請求模板體size limits是惱人的 - 我們必須上傳我們的大CloudFormati將模板添加到S3,然後使用他們的S3 URL創建/更新堆棧。
我有CloudFormation模板3000行以上。我發現在JSON中發表評論非常有幫助!在使用它之前,你只需剝去它。有一個驗證器可以驗證模板並刪除評論:http://cloudformation-validation.com/
您幾乎可以在CloudFormation模板的任何位置添加「元數據」部分,並且它們可能包含任意數據,因此我使用這些數據進行評論。這有一個好處,那就是註釋保留在模板中,任何遇到模板但不知道源代碼的人都可以使用。 –
- 1. 是ec2實例中用戶特有的AWS ec2專用密鑰
- 2. 是否有命令行工具在AWS ec2上使用SQS?
- 3. AWS EC2
- 4. 是否有適用於node.js的AWS AMI?
- 5. AWS內部是否有私人資源?
- 6. 您是否爲AWS EC2中的安全組收費?
- 7. AWS EC2上的LDAP
- 8. AWS,EC2 - CreateTags RunInstances
- 9. AWS ec2-virtualization
- 10. Hbase on AWS EC2
- 11. AWS EC2定價
- 12. AWS EC2 ipaddress
- 13. pdflib @ aws ec2
- 14. 瓶上EC2 AWS
- 15. AWS EC2 FTP/HTML
- 16. 是否可以使用AWS Elastic Beanstalk部署到現有的EC2實例? .net
- 17. 帶有Docker的AWS EC2實例角色
- 18. 是否在EC2實例本身上配置了AWS安全組?
- 19. 亞馬遜AWS(EC2/S3)是否啓用了端口2195?
- 20. Amazon AWS EC2容器服務是否支持卷?
- 21. Docker-machine AWS EC2實例是否顯示在Docker-Cloud Web API上?
- 22. AWS - 如何檢查EC2是否與RDS連接?
- 23. EC2 AWS實例:檢查tomcat是否正在運行
- 24. EC2/AWS,Jenkins,Git,SSH
- 25. AWS EC2和RVM SSH
- 26. AWS WAF + EC2實例
- 27. AWS EC2 SSH密鑰
- 28. 不工作AWS EC2
- 29. AWS EC2 - 拋出java.lang.ClassNotFoundException:com.mysql.jdbc.Driver
- 30. Rails Capistrano 3:AWS EC2
有一些適用於AWS和S3的Grails插件可能是相關的http://grails.org/plugin/aws http://grails.org/插件/亞馬遜-s3 –
我已經使用了amazon-s3插件,並且它工作的很棒。 – mlathe