Cloudformation テンプレートで Docker ベースの Beanstalk デプロイメント用の Dockerrun ファイルを指定する方法

Cloudformation テンプレートで Docker ベースの Beanstalk デプロイメント用の Dockerrun ファイルを指定する方法

Docker プラットフォームに基づいて Elastic Beanstalk アプリケーションを起動するための Cloudformation テンプレートを作成したいと考えています。 Dockerrun.aws.json のアップロードを含むセットアップを手動で行うことができました。

私が見たところ、このファイルは S3 オブジェクトへの参照として SourceBundle として指定できます。ただし、Dockerrun.aws.json ファイルの内容をテンプレートの一部として配置する方法が見つかりません。

構成ファイルの内容がテンプレートの一部になる可能性がある EC2 デプロイメントの例を見たことがあります。

答え1

Tasks for AWS に組み込まれている AWS Elastic Beanstalk タスクを使用する代わりに、AWS CloudFormation Stack タスクと対応する CloudFormation リソースタイプを介して Elastic Beanstalk コンポーネントを直接プロビジョニングすることもできます。

AWS::ElasticBeanstalk::アプリケーション

AWS::ElasticBeanstalk::アプリケーションバージョン

AWS::ElasticBeanstalk::環境

あなたの場合は、CloudFormation を使用して Dockerrun.aws.json ファイルを管理する方法が説明されている ApplicationVersion オブジェクトを確認してください。

例:

"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"
    } 
  }
}

関連情報