![如何在 Cloudformation 模板中为 Docker 支持的 Beanstalk 部署指定 Dockerrun 文件](https://linux22.com/image/719176/%E5%A6%82%E4%BD%95%E5%9C%A8%20Cloudformation%20%E6%A8%A1%E6%9D%BF%E4%B8%AD%E4%B8%BA%20Docker%20%E6%94%AF%E6%8C%81%E7%9A%84%20Beanstalk%20%E9%83%A8%E7%BD%B2%E6%8C%87%E5%AE%9A%20Dockerrun%20%E6%96%87%E4%BB%B6.png)
我想创建一个 Cloudformation 模板,用于启动基于 Docker 平台的 Elastic Beanstalk 应用程序。我设法手动完成设置,其中包括上传 Dockerrun.aws.json。
据我所知,此文件可以指定为 SourceBundle 作为对 S3 对象的引用。但是,我找不到将 Dockerrun.aws.json 文件的内容作为模板的一部分的方法。
我已经看到了 EC2 部署的示例,其中配置文件的内容可以作为模板的一部分。
答案1
作为使用 Tasks for AWS 内置的 AWS Elastic Beanstalk 任务的替代方案,还可以直接通过 AWS CloudFormation Stack 任务和相应的 CloudFormation 资源类型配置 Elastic Beanstalk 组件:
在您的情况下,请检查 ApplicationVersion 对象,其中描述了如何使用 CloudFormation 管理 Dockerrun.aws.json 文件。
例子:
"myAppVersion" :{
"Type" : "AWS::ElasticBeanstalk::ApplicationVersion",
"Properties" : {
"ApplicationName" : {"Ref" : "myAppName"},
"Description" : "ElasticBeanStalk_conf",
"SourceBundle" : {
"S3Bucket" : { "Fn::Join" :
["-", [ "elasticbeanstalk-conf", { "Ref" : "AWS::Region" } ] ] },
"S3Key" : "Dockerrun.aws.json"
}
}
}