Quero criar um modelo Cloudformation para iniciar um aplicativo Elastic Beanstalk baseado na plataforma Docker. Consegui fazer manualmente a configuração, que inclui o upload do Dockerrun.aws.json.
Pelo que vi, este arquivo pode ser especificado como SourceBundle como uma referência a um objeto S3. No entanto, não consigo encontrar uma maneira de colocar o conteúdo do arquivo Dockerrun.aws.json como parte do modelo.
Já vi exemplos de implantações do EC2, nos quais o conteúdo dos arquivos de configuração pode fazer parte do modelo.
Responder1
Como alternativa ao uso das tarefas do AWS Elastic Beanstalk incorporadas ao Tasks for AWS, também é possível provisionar os componentes do Elastic Beanstalk diretamente por meio da tarefa AWS CloudFormation Stack e dos tipos de recursos do CloudFormation correspondentes:
AWS::ElasticBeanstalk::Aplicativo
AWS::ElasticBeanstalk::ApplicationVersion
AWS::ElasticBeanstalk::Ambiente
No seu caso, verifique o objeto ApplicationVersion onde está descrito como gerenciar o arquivo Dockerrun.aws.json usando CloudFormation.
Exemplo:
"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"
}
}
}