Uso de la CLI de EB con AWS CodeBuild - AWS Elastic Beanstalk

Uso de la CLI de EB con AWS CodeBuild

AWS CodeBuild compila su código fuente, ejecuta pruebas unitarias y produce artefactos listos para implementar. Puede utilizar CodeBuild junto con la CLI de EB para automatizar la creación de la aplicación a partir del código fuente. La creación del entorno y cada implementación posterior comienzan por un paso de creación y la posterior implementación de la aplicación resultante.

nota

Algunas regiones no ofrecen CodeBuild. La integración entre Elastic Beanstalk y CodeBuild no funciona en estas regiones.

Para obtener información acerca de los servicios de AWS ofrecidos en cada región, consulte Region Table (Tabla de regiones).

Creación de una aplicación

Para crear una aplicación de Elastic Beanstalk que utilice CodeBuild

  1. Incluya un archivo de especificación de compilación de CodeBuild, buildspec.yml, en la carpeta de la aplicación.

  2. Añada una entrada eb_codebuild_settings con opciones específicas de Elastic Beanstalk al archivo.

  3. Ejecute eb init en la carpeta.

Elastic Beanstalk amplía el formato de archivo de especificación de compilación de CodeBuild para que incluya las siguientes opciones de configuración adicionales:

eb_codebuild_settings: CodeBuildServiceRole: role-name ComputeType: size Image: image Timeout: minutes
CodeBuildServiceRole

El ARN o el nombre del rol de servicio de AWS Identity and Access Management (IAM) que CodeBuild puede utilizar para interactuar con los servicios de AWS dependientes en su nombre. Este valor es obligatorio. Si lo omite, cualquier comando eb create o eb deploy posterior produce un error.

Para obtener más información sobre cómo crear un rol de servicio para CodeBuild, consulte Create a CodeBuild Service Role en la Guía de usuario de AWS CodeBuild.

nota

También necesita permisos para realizar acciones en el propio CodeBuild. La política de usuario administrada de Elastic Beanstalk AdministratorAccess-AWSElasticBeanstalk incluye todos los permisos de acción de CodeBuild necesarios. Si no utiliza la política administrada, asegúrese de conceder los siguientes permisos en su política de usuario.

"codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:BatchGetBuilds", "codebuild:StartBuild"

Para obtener más información, consulte Administración de políticas de usuario de Elastic Beanstalk.

ComputeType

La cantidad de recursos que utiliza el contenedor Docker en el entorno de compilación de CodeBuild. Los valores válidos son BUILD_GENERAL1_SMALL, BUILD_GENERAL1_MEDIUM y BUILD_GENERAL1_LARGE.

Image

Nombre de la imagen de Docker Hub o de Amazon ECR que CodeBuild utiliza para el entorno de compilación. Esta imagen de Docker debe contener todas las herramientas y bibliotecas de tiempo de ejecución necesarias para construir su código y debe coincidir con la plataforma de destino de su aplicación. CodeBuild administra y mantiene un conjunto de imágenes específicamente destinadas utilizarse con Elastic Beanstalk. Se recomienda utilizar una de ellas. Para obtener más información, consulte Docker Images Provided by CodeBuild (Imágenes de Docker proporcionadas por CodeBuild) en la Guía de usuario de AWS CodeBuild.

El valor Image es opcional. Si lo omite, el comando eb init intenta elegir la imagen que mejor se adapte a su plataforma de destino. Además, si ejecuta eb init en modo interactivo y no puede elegir la imagen automáticamente, le solicita que seleccione una. Al final de una inicialización correcta, eb init escribe la imagen elegida en el archivo buildspec.yml.

Timeout

Periodo en minutos durante el que la compilación de CodeBuild se ejecuta antes de agotar el tiempo de espera. Este valor es opcional. Para obtener más información acerca de los valores válidos y predeterminados, consulte Create a Build Project in CodeBuild (Creación de un proyecto de compilación en CodeBuild).

nota

Este tiempo de espera controla la duración máxima de una ejecución de CodeBuild y la CLI de EB lo respeta también como parte de este primer paso para crear una versión de la aplicación. Es distinto del valor que puede especificar con la opción --timeout de los comandos eb create o eb deploy. El último valor controla la duración máxima que la CLI de EB debe esperar para la creación o la actualización del entorno.

Creación e implementación del código de la aplicación

Cada vez que es necesario implementar el código de la aplicación, la CLI de EB utiliza CodeBuild para ejecutar una compilación y, después, implementa los artefactos de la compilación resultantes en el entorno. Esto ocurre cuando crea un entorno de Elastic Beanstalk para su aplicación con el comando eb create y cada vez que implemente cambios de código en el entorno posteriormente con el comando eb deploy.

Si se produce un error en el paso de CodeBuild, no se inicia la creación o la implementación del entorno.