Как указать файл Dockerun для развертывания Beanstalk с поддержкой Docker в шаблоне Cloudformation

Как указать файл Dockerun для развертывания Beanstalk с поддержкой Docker в шаблоне Cloudformation

Я хочу создать шаблон Cloudformation для запуска приложения Elastic Beanstalk на базе платформы Docker. Мне удалось вручную выполнить настройку, которая включает загрузку Dockerrun.aws.json.

Из того, что я видел, этот файл можно указать как SourceBundle как ссылку на объект S3. Однако я не могу найти способ поместить содержимое файла Dockerrun.aws.json как часть шаблона.

Я видел примеры развертываний EC2, в которых содержимое файлов конфигурации может быть частью шаблона.

решение1

В качестве альтернативы использованию задач AWS Elastic Beanstalk, встроенных в Tasks for AWS, также можно предоставлять компоненты Elastic Beanstalk напрямую через задачу AWS CloudFormation Stack и соответствующие типы ресурсов CloudFormation:

AWS::ElasticBeanstalk::Приложение

AWS::ElasticBeanstalk::Версия приложения

AWS::ElasticBeanstalk::Окружающая среда

В вашем случае проверьте объект ApplicationVersion, где описано, как управлять файлом Dockerrun.aws.json с помощью CloudFormation.

Пример:

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

Связанный контент