Quiero crear una plantilla de Cloudformation para iniciar una aplicación Elastic Beanstalk basada en la plataforma Docker. Logré realizar manualmente la configuración, que incluye cargar Dockerrun.aws.json.
Por lo que he visto, este archivo se puede especificar como SourceBundle como referencia a un objeto S3. Sin embargo, no puedo encontrar una manera de colocar el contenido del archivo Dockerrun.aws.json como parte de la plantilla.
He visto ejemplos de implementaciones EC2, en las que el contenido de los archivos de configuración puede ser parte de la plantilla.
Respuesta1
Como alternativa al uso de las tareas de AWS Elastic Beanstalk integradas en Tasks for AWS, también es posible aprovisionar los componentes de Elastic Beanstalk directamente a través de la tarea AWS CloudFormation Stack y los tipos de recursos de CloudFormation correspondientes:
AWS::ElasticBeanstalk::Aplicación
AWS::ElasticBeanstalk::Versión de aplicación
AWS::ElasticBeanstalk::Medio ambiente
En su caso, consulte el objeto ApplicationVersion donde se describe cómo administrar el archivo Dockerrun.aws.json usando CloudFormation.
Ejemplo:
"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"
}
}
}