如何在 Cloudformation 範本中為 Docker 支援的 Beanstalk 部署指定 Dockerun 文件

如何在 Cloudformation 範本中為 Docker 支援的 Beanstalk 部署指定 Dockerun 文件

我想建立一個 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 元件:

AWS::ElasticBeanstalk::應用程式

AWS::ElasticBeanstalk::應用程式版本

AWS::ElasticBeanstalk::環境

在您的情況下,請檢查 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"
    } 
  }
}

相關內容