Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Creación de un proyecto de compilación (consola)
Abra el iconoAWS CodeBuildConsola de enhttps://console.aws.amazon.com/codesuite/codebuild/home
Si unaCodeBuildse muestra la página de información, elijaCrear un proyecto de compilación. De lo contrario, en el panel de navegación expandaConstruir, eligeProyectos de compilacióny luego seleccioneCrear un proyecto de compilación.
Elija Create build project (Crear proyecto de compilación).
Rellene las siguientes secciones. Una vez completado, elijaCrear un proyecto de compilaciónen la parte inferior de la página.
Configuración del proyecto
- Project name (Nombre de proyecto)
-
Ingrese un nombre para este proyecto de compilación. Los nombres de los proyectos de compilación debe ser únicos en cada cuenta de AWS.
- Descripción
-
Introduzca una descripción opcional del proyecto de compilación para ayudar a otros usuarios a entender para qué se utiliza este proyecto.
- Crear insignias de
-
(Opcional) SeleccioneEnable build badgepara convertir el estado de compilación del proyecto en visible e incrustable. Para obtener más información, consulte Ejemplo de insignias de compilación.
nota Crear insignia no se aplica si el proveedor de origen es Amazon S3.
- Habilitar límite de compilación simultánea
-
(Opcional) Si desea limitar el número de compilaciones simultáneas de este proyecto, siga estos pasos:
-
SelectRestringir el número de compilaciones simultáneas que este proyecto puede iniciar.
-
EnLímite de compilación simultánea, introduzca el número máximo de compilaciones simultáneas que están permitidas para este proyecto. Este límite no puede ser superior al límite de compilación simultáneo establecido para la cuenta. Si intenta introducir un número mayor que el límite de cuenta, se muestra un mensaje de error.
Las nuevas versiones solo se inician si el número actual de versiones es menor o igual a este límite. Si el recuento de versiones actual cumple con este límite, las nuevas versiones se limitan y no se ejecutan.
-
- Información adicional
-
(Opcional) En Tags (Etiquetas), escriba el nombre y el valor de las etiquetas que desea que usen los servicios compatibles de AWS. Use Add row para añadir una etiqueta. Puede añadir hasta 50 etiquetas.
Fuente
Entorno
- Imagen de entorno
-
Realice alguna de las siguientes acciones:
-
Para usar una imagen de Docker administrada por AWS CodeBuild, elija Managed image (Imagen administrada) y después elija una opción en Operating system (Sistema operativo), Runtime (Tiempo de ejecución), Image (Imagen) e Image version (Versión de imagen). Realice una selección en Environment type (Tipo de entorno) si está disponible.
-
Para usar otra imagen de Docker, elija Custom image (Imagen personalizada). ParaTipo de entorno, eligeBRAZO,Linux,GPU Linux, o bienWindows. Si elige Other registry (Otro registro), para External registry URL (URL de registro externo), introduzca el nombre y etiqueta de la imagen de Docker en Docker Hub, usando el formato
. Si eligeAmazon ECR, useRepositorio de Amazon ECRyImagen de Amazon ECRpara elegir la imagen de Docker enAWSaccount.docker repository
/docker image name
-
Para utilizar una imagen privada de Docker, elijaImagen personalizada. ParaTipo de entorno, eligeBRAZO,Linux,GPU Linux, o bienWindows. En Image registry (Registro de imagen), elija Other registry (Otro registro) y, a continuación, introduzca el ARN de las credenciales para su imagen de Docker privada. Secrets Manager debe crear las credenciales. Para obtener más información, consulte ¿Qué es AWS Secrets Manager? en la Guía del usuario de AWS Secrets Manager.
nota CodeBuildanulará la
ENTRYPOINT
para imágenes de Docker personalizadas. -
- Privilegiado
-
(Opcional) Seleccione Privileged (Privilegiado) únicamente si tiene previsto usar este proyecto de compilación para compilar imágenes de Docker y la imagen del entorno de compilación que eligió no es una de las proporcionadas por CodeBuild con compatibilidad con Docker. De lo contrario, todas las compilaciones asociadas que intenten interactuar con el daemon de Docker producirán un error. También debe iniciar el daemon de Docker para que las compilaciones puedan interactuar con él. Una forma de hacer esto es inicializar el daemon de Docker en la fase
install
de la especificación de compilación ejecutando los siguientes comandos de compilación. No ejecute estos comandos si eligió una imagen del entorno de compilación proporcionada por CodeBuild compatible con Docker.nota De forma predeterminada, los contenedores Docker no permiten el acceso a ningún dispositivo. El modo privilegiado otorga acceso al contenedor Docker de un proyecto de compilación a todos los dispositivos. Para obtener más información, consulte la sección sobre privilegios en tiempo de ejecución y capacidades de Linux
en el sitio web de Docker Docs. - nohup /usr/local/bin/dockerd --host=unix:///var/run/docker.sock --host=tcp://127.0.0.1:2375 --storage-driver=overlay2 & - timeout 15 sh -c "until docker info; do echo .; sleep 1; done"
- Rol de servicio
Realice alguna de las siguientes acciones:
-
Si no dispone deCodeBuildrol de servicio, elijaNuevo rol de servicio. Escriba un nombre para el nuevo rol en el campo Role Name.
-
Si tienes unCodeBuildrol de servicio, elijaRol de servicio existente. EnARN de rol, elija el rol de servicio.
nota Cuando utiliza la consola para crear un proyecto de compilación, puede crear unCodeBuildservicio al mismo tiempo. De forma predeterminada, el rol funciona solamente con ese proyecto de compilación. Si utiliza la consola para asociar este rol de servicio a otro proyecto de compilación, el rol se actualizará para que funcione con el otro proyecto de compilación. Un rol de servicio puede funcionar con hasta diez proyectos de compilación.
-
- Configuración adicional
-
- Timeout (Tiempo de espera)
-
Especifique un valor, entre 5 minutos y 8 horas, después del cualCodeBuilddetiene la compilación si no se ha completado. Si hours y minutes se dejan en blanco, se usará el valor predeterminado de 60 minutos.
- VPC
Si desea que CodeBuild funcione con su VPC:
-
En VPC, elija el ID de VPC que usa CodeBuild.
-
ParaSubredes de la VPC, elija las subredes que incluyen recursos queCodeBuildUsos.
-
ParaGrupos de seguridad de la VPC, elija los grupos de seguridad queCodeBuildutiliza para permitir el acceso a los recursos de las VPC.
Para obtener más información, consulte UsarAWS CodeBuildcon Amazon Virtual Private Cloud.
-
- Computación
-
Elija una de las opciones disponibles.
- Variables de entorno
-
Introduzca el nombre y el valor y, a continuación, elija el tipo de cada variable de entorno que se va a usar en las compilaciones.
nota CodeBuildestablece la variable de entorno paraAWSRegión automáticamente. Debe definir las siguientes variables de entorno, si no las ha agregado a su archivo buildspec.yml:
-
AWS_ACCOUNT_ID
-
IMAGE_REPO_NAME
-
IMAGE_TAG
Los usuarios de la consola y de AWS CLI pueden ver las variables de entorno. Si no le preocupa que la variable de entorno esté visible, establezca los campos Name y Value, y después establezca Type en Plaintext.
Le recomendamos que almacene una variable de entorno con un valor confidencial, como unAWSID de clave de acceso,AWSclave de acceso secreta o contraseña como parámetro en el almacén de parámetros Amazon EC2 Systems Manager oAWS Secrets Manager.
Si utiliza el almacén de parámetros Amazon EC2 Systems Manager, paraTipo, eligeParámetro. En Name (Nombre), escriba un identificador al que haga referencia CodeBuild. ParaValor, introduzca el nombre del parámetro tal como está almacenado en el almacén de parámetros Amazon EC2 Systems Manager. Utilizando el parámetro denominado
/CodeBuild/dockerLoginPassword
como ejemplo, en Type (Tipo), seleccione Parameter (Parámetro). En Name (Nombre), ingreseLOGIN_PASSWORD
. En Value, ingrese/CodeBuild/dockerLoginPassword
.importante Si utiliza el almacén de parámetros Amazon EC2 Systems Manager, le recomendamos que almacene parámetros con nombres de parámetros que comiencen por
/CodeBuild/
(por ejemplo,/CodeBuild/dockerLoginPassword
). Puede utilizar elCodeBuildpara crear un parámetro en Amazon EC2 Systems Manager. Seleccione Create a parameter (Crear parámetro) y siga las instrucciones del cuadro de diálogo. (En ese cuadro de diálogo, paraClave KMS, puede especificar el ARN de unaAWS KMSclave en tu cuenta. Amazon EC2 Systems Manager utiliza esta clave para cifrar el valor del parámetro durante el almacenamiento y descifrarlo durante la recuperación). Si usa la consola de CodeBuild para crear un parámetro, la consola asigna/CodeBuild/
al principio del nombre del parámetro cuando este se almacena. Para obtener más información, consulteAlmacén de parámetros de Administrador de sistemasyTutorial de la consola del almacén de parámetros de Systems Manageren laGuía del usuario de Amazon EC2 Systems Manager.Si el proyecto de compilación hace referencia a parámetros almacenados en el almacén de parámetros Amazon EC2 Systems Manager, el rol de servicio del proyecto de compilación debe permitir
ssm:GetParameters
action. Si anteriormente seleccionó New service role (Nuevo rol de servicio), CodeBuild incluirá automáticamente esta acción en el rol de servicio predeterminado del proyecto de compilación. Sin embargo, si seleccionó Existing service role (Rol de servicio existente), deberá incluir esta acción en el rol de servicio por separado.Si el proyecto de compilación hace referencia a parámetros almacenados en el almacén de parámetros Amazon EC2 Systems Manager con nombres de parámetros que no empiezan por
/CodeBuild/
, y eligióNuevo rol de servicio, debe actualizar ese rol de servicio para permitir el acceso a nombres de parámetros que no empiezan por/CodeBuild/
. Esto es así porque el rol de servicio permite el acceso únicamente a los nombres de parámetro que empiezan por/CodeBuild/
.Si eligeNuevo rol de servicio, el rol de servicio incluye permisos para descifrar todos los parámetros en el
/CodeBuild/
espacio de nombres en el almacén de parámetros Amazon EC2 Systems Manager.Las variables de entorno que defina reemplazan las variables de entorno existentes. Por ejemplo, si la imagen de Docker ya contiene una variable de entorno denominada
MY_VAR
con un valor demy_value
y establece una variable de entorno denominadaMY_VAR
con un valor deother_value
,my_value
se reemplaza porother_value
. Asimismo, si la imagen de Docker ya contiene una variable de entorno denominadaPATH
con un valor de/usr/local/sbin:/usr/local/bin
y establece una variable de entorno denominadaPATH
con un valor de$PATH:/usr/share/ant/bin
,/usr/local/sbin:/usr/local/bin
se reemplaza por el valor literal$PATH:/usr/share/ant/bin
.No establezca variables de entorno con un nombre que empiece por
CODEBUILD_
. Este prefijo se reserva para uso interno de .Si se define una variable de entorno con el mismo nombre en varios lugares, el valor se determina de la siguiente manera:
-
El valor de la llamada a la operación de inicio de la compilación tiene la máxima prioridad.
-
El valor de la definición del proyecto de compilación es el siguiente en orden de prioridad.
-
El valor en la declaración de especificación de compilación es el que menos prioridad tiene.
Si usas Secrets Manager, paraTipo, eligeSecrets Manager. En Name (Nombre), escriba un identificador al que haga referencia CodeBuild. En Value (Valor), introduzca un
reference-key
utilizando el patrón
. Para obtener información, consulte Secrets Manager reference-key in the buildspec file.secret-id
:json-key
:version-stage
:version-id
importante Si utiliza Secrets Manager, le recomendamos que almacene secretos con nombres que empiecen por
/CodeBuild/
(por ejemplo,/CodeBuild/dockerLoginPassword
). Para obtener más información, consulte ¿Qué es AWS Secrets Manager? en la Guía del usuario de AWS Secrets Manager.Si el proyecto de compilación hace referencia a secretos almacenados en Secrets Manager, el rol de servicio del proyecto de compilación debe permitir
secretsmanager:GetSecretValue
action. Si anteriormente seleccionó New service role (Nuevo rol de servicio), CodeBuild incluirá automáticamente esta acción en el rol de servicio predeterminado del proyecto de compilación. Sin embargo, si seleccionó Existing service role (Rol de servicio existente), deberá incluir esta acción en el rol de servicio por separado.Si tu proyecto de compilación hace referencia a secretos almacenados en Secrets Manager con nombres secretos que no empiezan por
/CodeBuild/
, y eligióNuevo rol de servicio, debe actualizar el rol de servicio para permitir el acceso a nombres secretos que no empiezan por/CodeBuild/
. Esto es así porque el rol de servicio permite el acceso únicamente a nombres secretos que empiezan por/CodeBuild/
.Si eligeNuevo rol de servicio, el rol de servicio incluye permisos para descifrar todos los secretos en el
/CodeBuild/
espacio de nombres en Secrets Manager. -
BuildSpec
- Especificaciones de compilación
-
Realice alguna de las siguientes acciones:
-
Si el código fuente incluye un archivo de especificación de compilación, elija Use a buildspec file (Usar un archivo buildspec). De forma predeterminada, CodeBuild busca un archivo denominado
buildspec.yml
en el directorio raíz del código fuente. Si su archivo buildspec usa un nombre o ubicación diferente, introduzca su ruta desde la raíz de origen enNombre de la especificación de compilación(por ejemplo,buildspec-two.yml
oconfiguration/buildspec.yml
. Si el archivo buildspec está en un bucket de S3, debe estar en el mismoAWSRegión como proyecto de compilación. Especifique el archivo buildspec utilizando su ARN (por ejemplo,arn:aws:s3:::my-codebuild-sample2/buildspec.yml
). -
Si el código fuente no incluye un archivo de especificación de compilación o si desea ejecutar comandos de compilación diferentes de los especificados para la fase
build
en el archivobuildspec.yml
del directorio raíz de código fuente, elija Insert build commands (Insertar comandos de compilación). En Build commands (Comandos de compilación), escriba los comandos que desea ejecutar en la fasebuild
. En caso de que haya varios comandos, separe cada comando con&&
(por ejemplo,mvn test && mvn package
). Para ejecutar comandos en otras fases o si tiene una larga lista de comandos para elbuild
fase, añadir unbuildspec.yml
al directorio raíz del código fuente, agregue los comandos al archivo y, a continuación, elijaUtilice buildspec.yml en el directorio raíz del código fuente.
Para obtener más información, consulte la Referencia de la especificación de compilación.
-
Configuración Batch
Puede ejecutar un grupo de compilaciones como una sola operación. Para obtener más información, consulte Compilación Batch enAWS CodeBuild.
- Definición de configuración de lotes
-
Seleccione esta opción para permitir compilaciones por lotes en este proyecto.
- Función de servicio por lotes
-
Proporciona el rol de servicio para las compilaciones por lotes.
Elija una de las siguientes opciones:
-
Si no tiene un rol de servicio por lotes de, elijaNuevo rol de servicio. EnRol de servicio, escriba un nombre para el nuevo rol.
-
Si dispone de un rol de servicio por lotes, elijaRol de servicio existente. EnRol de servicio, elija el rol de servicio.
Las compilaciones Batch introducen un nuevo rol de seguridad en la configuración de lotes. Esta nueva función es necesaria comoCodeBuilddebe poder llamar al
StartBuild
,StopBuild
, yRetryBuild
acciones en su nombre para ejecutar compilaciones como parte de un lote. Los clientes deben utilizar un nuevo rol, y no el mismo rol que usan en su compilación, por dos razones:-
Dar el rol de compilación
StartBuild
,StopBuild
, yRetryBuild
los permisos permitirían que una sola compilación inicie más compilaciones a través de la especificación de compilación. -
CodeBuildlas compilaciones por lotes proporcionan restricciones que restringen el número de compilaciones y tipos de cómputo que se pueden utilizar para las compilaciones del lote. Si el rol de compilación tiene estos permisos, es posible que las compilaciones mismas puedan eludir estas restricciones.
-
- Tipos de cómputos permitidos para lote
-
Seleccione los tipos de cómputo permitidos para el lote. Selecciona todo lo que corresponda.
- Número máximo de compilaciones permitidas por lotes
-
Escriba el número máximo de compilaciones permitidas en el lote. Si un lote supera este límite, el lote fallará.
- Tiempo de espera del lote
-
Escriba la cantidad máxima de tiempo que dura la compilación por lotes.
- Combinar artefactos
-
SelectCombina todos los artefactos del lote en una única ubicaciónpara combinar todos los artefactos del lote en una única ubicación.
- Modo de informe por lotes
-
Seleccione el modo de informe de estado de compilación deseado para las compilaciones por lotes.
nota Este campo solo está disponible cuando el origen del proyecto es Bitbucket,GitHub, o bienGitHubEnterprise yInformar de los estados de compilación al proveedor de origen cuando se inician y finalizan las compilacionesse selecciona enFuente.
- Compilaciones agregadas
-
Seleccione esta opción para combinar los estados de todas las compilaciones del lote en un único informe de estado.
- Compilaciones individuales
-
Seleccione esta opción para que los estados de compilación de todas las compilaciones del lote se informen por separado.
Artifacts
- Type
-
Realice alguna de las siguientes acciones:
-
Si no desea crear ningún artefacto de salida de la compilación, elija No artifacts. por ejemplo, si solo va a ejecutar pruebas de compilación o si desea insertar una imagen de Docker en un repositorio de Amazon ECR.
-
Para almacenar la salida de la compilación en un bucket de S3, elijaAmazon S3y, a continuación, haga lo siguiente:
-
Si desea utilizar su nombre de proyecto para el archivo ZIP o carpeta de salida de la compilación, deje en blanco Name (Nombre). De lo contrario, escriba el nombre. (Si desea producir un archivo ZIP y desea que el archivo ZIP tenga una extensión de archivo, asegúrese de incluirlo detrás del nombre del archivo ZIP).
-
Seleccione Enable semantic versioning (Habilitar control semántico de versiones) si desea que el nombre especificado en el archivo buildspec invalide cualquier nombre especificado en la consola. El nombre en un archivo buildspec se calcula en tiempo de compilación y utiliza el lenguaje de comandos Shell. Por ejemplo, puede adjuntar una fecha y una hora al nombre del artefacto para que siempre sea único. Los nombres de artefactos únicos impiden que los artefactos se sobrescriban. Para obtener más información, consulte Sintaxis de buildspec.
-
En Bucket name (Nombre del bucket), seleccione el nombre del bucket de salida.
-
Si eligió Insert build commands (Insertar comandos de compilación) anteriormente en este procedimiento, en Output files (Archivos de salida), escriba las ubicaciones de los archivos de la compilación que desea incluir en el archivo ZIP o carpeta de salida de la compilación. Si hay varias ubicaciones, separe cada una de las ubicaciones con una coma (por ejemplo,
appspec.yml, target/my-app.jar
). Para obtener más información, consulte la descripción defiles
en Sintaxis de buildspec. -
Si no desea que los artefactos de compilación se cifren, seleccione Remove artifacts encryption (Quitar cifrado de artefactos),
-
Para cada conjunto de artefactos secundarios que desee:
-
Para Source identifier (Identificador de artefacto), escriba un valor que tenga como máximo 128 caracteres, únicamente de tipo alfanumérico y guiones bajos.
-
Elija Add artifact (Añadir artefacto).
-
Siga los pasos anteriores para configurar los artefactos secundarios.
-
Elija Save artifact (Guardar artefacto).
-
- Configuración adicional
-
- Clave de cifrado
-
(opcional) Realice una de las operaciones siguientes:
-
Para utilizar elClave administrada por AWSpara Amazon S3 en su cuenta para cifrar los artefactos de salida de la compilación, dejeClave de cifradoen blanco. Esta es la opción predeterminada.
-
Para utilizar una clave administrada por el cliente para cifrar los artefactos de salida de la compilación, enClave de cifrado, escriba el ARN de la clave KMS. Utilice el formato
arn:aws:kms:
.region-ID
:account-ID
:key/key-ID
-
- Tipo de caché
-
En Cache type (Tipo de caché), seleccione una de las opciones siguientes:
-
Si no desea usar una memoria caché, elija No cache.
-
Si desea utilizar una caché de Amazon S3, elijaAmazon S3y, a continuación, haga lo siguiente:
-
En Bucket, elija el nombre del bucket de S3 donde se almacena la caché.
-
(Opcional) ParaPrefijo de ruta de caché, escriba un prefijo de ruta de Amazon S3. El valor Cache path prefix (Prefijo de ruta de caché) es similar a un nombre de directorio. Le permite almacenar la caché en el mismo directorio en un bucket.
importante No añada una barra (/) al final del prefijo de ruta.
-
-
Si desea utilizar una caché local, seleccione Local y elija uno o varios modos de caché local.
nota El modo Docker layer cache (Caché de capas de Docker) solo está disponible para Linux. Si lo selecciona, el proyecto deberá ejecutarse en modo con privilegios.
El uso de memoria caché ahorra mucho tiempo de compilación, ya que algunas partes reutilizables del entorno de compilación se almacenan en ella y se usan en las distintas compilaciones. Para obtener información acerca de cómo especificar una caché en el archivo de especificación de compilación, consulte Sintaxis de buildspec. Para obtener más información acerca del almacenamiento en caché, consulte Almacenamiento en caché de compilaciones de AWS CodeBuild.
-
Registros
Elija los registros que desea crear. Puedes crear AmazonCloudWatchRegistros, registros de Amazon S3 o ambos.
- CloudWatch
-
Si quieres AmazonCloudWatchRegistros de registros:
- CloudWatchRegistros de
-
Seleccione registros de CloudWatch.
- Group name
-
Ingrese el nombre de su AmazonCloudWatchgrupo de registros de registros.
- Nombre de transmisión
-
Escriba su AmazonCloudWatchRegistra el nombre del flujo de registros.
- S3
-
Si quieres registros de Amazon S3:
- Registros de S3
-
Seleccione registros de S3.
- Bucket
-
Seleccione el nombre del bucket de S3 para sus registros.
- Prefijo de ruta
-
Ingrese el prefijo de los registros.
- Deshabilitar el cifrado de registros de S3
-
Seleccione si no desea que se cifren los logs de S3.