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.
Cree un proyecto de construcción en AWS CodeBuild
Puede usar la AWS CodeBuild consola o AWS SDKs crear un proyecto de compilación. AWS CLI
Temas
Requisitos previos
Antes de crear un proyecto de compilación, responda las preguntas de Planificación de una compilación.
Creación de un proyecto de compilación (consola)
Abre la AWS CodeBuild consola en https://console.aws.amazon.com/codesuite/codebuild/home
Si aparece una página de CodeBuild información, elija Crear proyecto de compilación. De lo contrario, en el panel de navegación, expanda Compilar, elija Proyectos de compilación y, a continuación, elija Crear proyecto de compilación.
Elija Crear el proyecto de compilación.
Rellene las secciones siguientes: Cuando haya terminado, elija Crear proyecto de compilación en la parte inferior de la página.
Configuración del proyecto
- Nombre del proyecto
-
Introduzca un nombre para este proyecto de compilación. Los nombres de los proyectos de compilación deben ser únicos en cada AWS cuenta.
- Descripción
-
Introduzca una descripción opcional del proyecto de compilación para ayudar a otros usuarios a entender para qué se utiliza el proyecto.
- Insignia de compilación
-
(Opcional) Seleccione Habilitar insignia de compilación para 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
La insignia de compilación no se aplica si el proveedor de código fuente es Amazon S3.
- Habilitar el límite de compilaciones simultáneas
-
(Opcional) Si desea limitar el número de compilaciones simultáneas del proyecto, siga los pasos siguientes:
-
Seleccione Restringir el número de compilaciones simultáneas que puede iniciar este proyecto.
-
En Límite de compilación simultánea, introduzca el número máximo de compilaciones simultáneas permitidas para este proyecto. Este límite no puede ser superior al límite de compilaciones simultáneas establecido para la cuenta. Si intenta introducir un número mayor que el límite de la cuenta, aparecerá un mensaje de error.
Solo se inician compilaciones nuevas si el número actual de compilaciones es menor o igual que este límite. Si el número de compilaciones actual alcanza este límite, se regulan las compilaciones nuevas y no se ejecutan.
-
- Información adicional
-
(Opcional) En el caso de las etiquetas, introduzca el nombre y el valor de las etiquetas que desee que utilicen AWS los servicios auxiliares. Utilice Agregar fila para añadir una etiqueta. Puede añadir hasta 50 etiquetas.
Origen
- Proveedor de fuentes
-
Seleccione el tipo de proveedor de código fuente. Utilice las listas siguientes para realizar las selecciones apropiadas para el proveedor de código fuente:
nota
CodeBuild no es compatible con Bitbucket Server.
Entorno
- Modelo de aprovisionamiento
-
Realice una de las siguientes acciones siguientes:
-
Para usar flotas bajo demanda administradas por AWS CodeBuild, elija Bajo demanda. Con flotas bajo demanda, CodeBuild proporciona computación para sus construcciones. Las máquinas se destruyen cuando finaliza la compilación. Las flotas bajo demanda están completamente administradas e incluyen capacidades de escalado automático para gestionar los picos de demanda.
-
Para usar las flotas de capacidad reservada gestionadas por AWS CodeBuild, elija Capacidad reservada y, a continuación, seleccione un nombre de flota. Con las flotas de capacidad reservada, configura un conjunto de instancias dedicadas para su entorno de compilación. Estas máquinas permanecen inactivas, listas para procesar compilaciones o pruebas de forma inmediata y reducen la duración de las compilaciones. Con flotas de capacidad reservada, sus máquinas estarán siempre en funcionamiento y seguirán incurriendo en costos mientras estén aprovisionadas.
Para obtener más información, consulte Run se basa en flotas de capacidad reservada.
-
- Imagen del entorno
-
Realice una de las siguientes acciones siguientes:
-
Para usar una imagen de Docker gestionada por AWS CodeBuild, elija Imagen gestionada y, a continuación, seleccione Sistema operativo, Tiempo de ejecución, Imagen y Versión de la 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). En el tipo de entorno ARM, elija LinuxGPU, Linux o Windows. Si elige Otro registro, en Registro externo URL, introduzca el nombre y la etiqueta de la imagen de Docker en Docker Hub, utilizando el formato.
Si eliges Amazon ECR, usa el ECRrepositorio de Amazon y la ECRimagen de Amazon para elegir la imagen de Docker en tu AWS cuenta.docker repository
/docker image name
-
Para usar una imagen de Docker privada, elija Imagen personalizada. En el tipo de entorno ARM, elige LinuxGPU, Linux o Windows. En Registro de imágenes, selecciona Otro registro y, a continuación, introduce las credenciales ARN de tu imagen privada de Docker. Es necesario crear las credenciales con Secrets Manager. Para obtener más información, consulte AWS Secrets Manager en la Guía del usuario de AWS Secrets Manager .
nota
CodeBuild anula las imágenes
ENTRYPOINT
de Docker personalizadas. -
- Computación
-
Realice una de las siguientes acciones siguientes:
-
Para usar la EC2 computación, elija. EC2 EC2El cómputo ofrece una flexibilidad optimizada durante las ejecuciones de las acciones.
-
Para usar la computación Lambda, elija Lambda. La computación Lambda ofrece velocidades de inicio optimizadas para sus compilaciones. Lambda admite compilaciones más rápidas debido a una latencia de inicio más baja. Lambda también escala automáticamente, por lo que las compilaciones no tienen que esperar en cola para ejecutarse. Para obtener más información, consulte Ejecute compilaciones en el AWS Lambda cómputo.
-
- Rol de servicio
Realice una de las siguientes acciones siguientes:
-
Si no tiene un rol de CodeBuild servicio, elija Nuevo rol de servicio. Escriba un nombre para el nuevo rol en el campo Role Name.
-
Si tiene un rol CodeBuild de servicio, elija el rol de servicio existente. En Función ARN, elija la función de servicio.
nota
Cuando usas la consola para crear un proyecto de compilación, puedes crear un rol de CodeBuild servicio 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
-
- Límite de reintentos automáticos
-
Especifique el número de reintentos automáticos adicionales tras una compilación fallida. Por ejemplo, si el límite de reintentos automáticos está establecido en 2, CodeBuild llamará al
RetryBuild
API para volver a intentar automáticamente la compilación hasta 2 veces más. - Timeout (Tiempo de espera)
-
Especifica un valor, entre 5 minutos y 36 horas, tras el cual CodeBuild se detendrá la compilación si no se completa. Si se dejan los campos de horas y minutos en blanco, se usará el valor predeterminado de 60 minutos.
- Privilegiado
-
(Opcional) Seleccione Habilitar esta marca si desea crear imágenes de Docker o si desea que sus compilaciones obtengan privilegios elevados solo si planea usar este proyecto de compilación para crear imágenes de 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 ha elegido una imagen de entorno de compilación proporcionada CodeBuild con el soporte de Docker.nota
De forma predeterminada, el daemon de Docker está habilitado para las compilaciones que no son compiladas. VPC Si quieres usar contenedores Docker para VPC compilaciones, consulta Runtime Privilege y Linux Capabilities
en el sitio web de Docker Docs y habilita el modo privilegiado. Además, Windows no admite el modo privilegiado. - 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"
- VPC
Si quieres trabajar CodeBuild con tus: VPC
-
Para VPC, elige el VPC identificador que CodeBuild utiliza.
-
En el VPCcaso de las subredes, elija las subredes que incluyen los recursos que CodeBuild utiliza.
-
En el VPCcaso de los grupos de seguridad, elija los grupos de seguridad que se CodeBuild utilizan para permitir el acceso a los recursos del. VPCs
Para obtener más información, consulte Úselo AWS CodeBuild con Amazon Virtual Private Cloud.
-
- Computación
-
Seleccione una de las opciones disponibles.
- Variables de entorno
-
Introduzca el nombre y el valor y, a continuación, seleccione el tipo de cada variable de entorno que se vaya a utilizar en las compilaciones.
nota
CodeBuild establece automáticamente la variable de entorno de su AWS región. 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
La consola y AWS CLI los usuarios 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 un identificador de clave de AWS acceso, una clave de acceso AWS secreta o una contraseña, como parámetro en el almacén de parámetros de Amazon EC2 Systems Manager o AWS Secrets Manager.
Si utiliza Amazon EC2 Systems Manager Parameter Store, en Tipo, elija Parámetro. En Nombre, introduzca un identificador CodeBuild para la referencia. En Value, introduzca el nombre del parámetro tal y como está almacenado en el almacén de parámetros de Amazon EC2 Systems Manager. Utilizando el parámetro denominado
/CodeBuild/dockerLoginPassword
como ejemplo, en Tipo, seleccione Parámetro. En Nombre, escribaLOGIN_PASSWORD
. En Valor, introduzca/CodeBuild/dockerLoginPassword
.importante
Si utiliza Amazon EC2 Systems Manager Parameter Store, le recomendamos que almacene los parámetros con nombres de parámetros que comiencen por
/CodeBuild/
(por ejemplo,/CodeBuild/dockerLoginPassword
). Puede utilizar la CodeBuild consola para crear un parámetro en Amazon EC2 Systems Manager. Seleccione Crear parámetro y siga las instrucciones del cuadro de diálogo. (En ese cuadro de diálogo, para la KMSclave, puede especificar la AWS KMS clave ARN de su 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 utiliza la CodeBuild consola para crear un parámetro, la consola empezará con el nombre del parámetro a/CodeBuild/
medida que se vaya almacenando. Para obtener más información, consulte el tutorial de Systems Manager Parameter Store y Systems Manager Parameter Store Console en la Guía del usuario de Amazon EC2 Systems Manager.Si su proyecto de compilación hace referencia a parámetros almacenados en el almacén de parámetros de Amazon EC2 Systems Manager, la función de servicio del proyecto de compilación debe permitir la
ssm:GetParameters
acción. Si ha elegido anteriormente un nuevo rol de servicio, CodeBuild incluya esta acción en el rol de servicio predeterminado para su proyecto de compilación. Sin embargo, si ha seleccionado Rol de servicio existente, deberá incluir esta acción en el rol de servicio por separado.Si su proyecto de compilación hace referencia a parámetros almacenados en el almacén de parámetros de Amazon EC2 Systems Manager con nombres de parámetros que no comienzan por y ha elegido Nueva función de servicio, debe actualizar esa función de servicio para permitir el acceso a los nombres de parámetros que no comiencen por
/CodeBuild/
./CodeBuild/
Esto es así porque el rol de servicio permite el acceso únicamente a los nombres de parámetro que empiezan por/CodeBuild/
.Si elige Nueva función de servicio, la función de servicio incluye el permiso para descifrar todos los parámetros del espacio de
/CodeBuild/
nombres del almacén de parámetros de 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 se utiliza Secrets Manager, seleccione Secrets Manager en Tipo. En Nombre, introduzca un identificador para CodeBuild la referencia. En Valor, introduzca un
reference-key
utilizando el patrón
. Para obtener más información, consulte Secrets Manager reference-key in the buildspec file.secret-id
:json-key
:version-stage
:version-id
importante
Si se utiliza Secrets Manager, recomendamos almacenar los secretos con nombres que comiencen por
/CodeBuild/
(por ejemplo,/CodeBuild/dockerLoginPassword
). Para obtener más información, consulte AWS Secrets Manager en la Guía del usuario de AWS Secrets Manager .Si el proyecto de compilación hace referencia a secretos almacenados Secrets Manager, el rol de servicio del proyecto de compilación debe permitir la acción
secretsmanager:GetSecretValue
. Si anteriormente seleccionaste Nueva función de servicio, CodeBuild incluye esta acción en la función de servicio predeterminada de tu proyecto de compilación. Sin embargo, si ha seleccionado 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 secretos almacenados en Secrets Manager cuyos nombres no empiezan por
/CodeBuild/
y se selecciona Nuevo rol de servicio, es necesario actualizar ese rol de servicio para permitir el acceso a nombres de parámetro que no empiecen por/CodeBuild/
. Esto es así porque el rol de servicio permite el acceso únicamente a los nombres de secreto que empiezan por/CodeBuild/
.Si elige Nuevo rol de servicio, el rol de servicio incluye permisos para descifrar todos los secretos en el espacio de nombres de
/CodeBuild/
en Secrets Manager. -
Buildspec
- Especificaciones de compilación
-
Realice una de las siguientes acciones siguientes:
-
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 con un nombre
buildspec.yml
en el directorio raíz del código fuente. Si el archivo buildspec usa un nombre o ubicación diferente, introduce su ruta desde la raíz de origen en el nombre de Buildspec (por ejemplo, o.buildspec-two.yml
configuration/buildspec.yml
Si el archivo buildspec está en un bucket de S3, debe estar en la misma región que tu proyecto de compilación. AWS Especifica 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 lista especialmente larga de comandos para la fasebuild
, añada un archivobuildspec.yml
al directorio raíz de código fuente, añada los comandos al archivo y, a continuación, elija Usar el archivo buildspec.yml del directorio raíz del código fuente.
Para obtener más información, consulte Referencia de la especificación de compilación.
-
Configuración de lotes
Es posible ejecutar un conjunto de compilaciones como una sola operación. Para obtener más información, consulte Ejecuta compilaciones en lotes.
- Definir la configuración por lotes
-
Seleccione esta opción para permitir las compilaciones por lotes en el proyecto.
- Rol de servicio por lotes
-
Proporciona el rol de servicio para las compilaciones por lotes.
Elija una de las opciones siguientes:
-
Si no tiene un rol de servicio, elija Nuevo rol de servicio. En Rol de servicio, introduzca un nombre nuevo para el rol nuevo.
-
Si tiene un rol de servicio por lotes de CodeBuild, elija Rol de servicio existente. En Rol de servicio, elija el rol de servicio.
Las compilaciones por lotes introducen un nuevo rol de seguridad en la configuración por lotes. Este nuevo rol es obligatorio, ya que CodeBuild debes poder ejecutar las
RetryBuild
acciones yStartBuild
StopBuild
, en tu nombre, para ejecutar compilaciones como parte de un lote. Los clientes deberían utilizar un nuevo rol, y no el mismo rol que utilizan para su compilación, por dos motivos:-
Al asignar los permisos de
StartBuild
,StopBuild
yRetryBuild
en el rol de compilación, una sola compilación podría iniciar más compilaciones a través de la especificación de compilación. -
CodeBuild Las compilaciones por lotes proporcionan restricciones que restringen la cantidad de compilaciones y tipos de procesamiento que se pueden usar para las compilaciones del lote. Si la función de compilación tiene estos permisos, es posible que las propias compilaciones puedan eludir estas restricciones.
-
- Tipos de computación permitidos para lotes
-
Seleccione los tipos de computación permitidos para el lote. Seleccione todos los que correspondan.
- Número máximo de compilaciones permitidas en el lote
-
Introduzca el número máximo de compilaciones permitidas en el lote. Si un lote supera este límite, fallará.
- Tiempo de espera del lote
-
Introduzca la cantidad máxima de tiempo que puede durar la compilación del lote.
- Combinar artefactos
-
Seleccione Combinar todos los artefactos del lote en una sola ubicación para tener todos los artefactos del lote combinados en una sola ubicación.
- Modo de informe por lotes
-
Seleccione el modo de informe de estados de compilación deseado para las compilaciones por lotes.
nota
Este campo solo está disponible cuando la fuente del proyecto es Bitbucket o GitHub Enterprise GitHub, y en Fuente se selecciona Informar del estado de la compilación al proveedor de la fuente cuando las compilaciones comienzan y terminan.
- Compilaciones agregadas
-
Seleccione esta opción para que los estados de todas las compilaciones del lote se combinen en un único informe de estado.
- Compilaciones individuales
-
Seleccione esta opción para que se notifiquen los estados de compilación de cada compilación del lote por separado.
Artefactos
- Tipo
-
Realice una de las siguientes acciones siguientes:
-
Si no desea crear ningún artefacto de salida de la compilación, elija No artifacts. Es posible que desees hacer esto si solo estás ejecutando pruebas de compilación o si deseas enviar una imagen de Docker a un ECR repositorio de Amazon.
-
Para almacenar la salida de la compilación en un bucket de S3, seleccione Amazon S3 y, a continuación, haga lo siguiente:
-
Si quieres usar el nombre de tu proyecto para el ZIP archivo o la carpeta de salida de la compilación, deja el campo Nombre en blanco. De lo contrario, escriba el nombre. (Si desea generar un ZIP archivo y desea que el ZIP archivo tenga una extensión, asegúrese de incluirla después del nombre del ZIP archivo).
-
Seleccione 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 seleccionó Insertar comandos de compilación al principio de este procedimiento, en Archivos de salida, introduzca las ubicaciones de los archivos de la compilación que desee colocar en el ZIP archivo 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 la Clave administrada de AWS para Amazon S3 en su cuenta para cifrar los artefactos de salida de la compilación, deje Clave de cifrado en blanco. Esta es la opción predeterminada.
-
Para utilizar una clave gestionada por el cliente para cifrar los artefactos de salida de la compilación, en Clave ARN de cifrado, introduzca la KMS clave. Utilice el formato
arn:aws:kms:
.region-ID
:account-ID
:key/key-ID
-
- Tipo de caché
En Tipo de caché, seleccione una de las opciones siguientes:
-
Si no desea usar una memoria caché, seleccione Sin caché.
-
Si prefiere utilizar una caché de Amazon S3, seleccione Amazon S3 y haga lo siguiente:
-
En Bucket, señeccopme el nombre del bucket de S3 donde se almacena la caché.
-
(Opcional) Para Prefijo de ruta de caché, escriba un prefijo de ruta de Amazon S3. El valor 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 de 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 Compilaciones de caché para mejorar el rendimiento.
-
Registros
En Registros, seleccione los registros que desea crear. Puede crear CloudWatch registros de Amazon Logs, Amazon S3 o ambos.
- CloudWatch
-
Si quieres los CloudWatch registros de Amazon Logs:
- CloudWatch registros
-
Seleccione CloudWatch los registros.
- Nombre del grupo
-
Introduce el nombre de tu grupo de CloudWatch registros de Amazon Logs.
- Nombre de transmisión
-
Introduce el nombre de la secuencia de CloudWatch registro de Amazon Logs.
- S3
-
Si desea registros de Amazon S3:
- Registros de S3
-
Seleccione Registros de S3.
- Bucket
-
Seleccione el nombre del bucket de S3 de los registros.
- Prefijo de ruta
-
Introduzca el prefijo de sus registros.
- Desactive el cifrado de registros de S3
-
Seleccione si no desea cifrar los registros de S3.
Crear un proyecto de compilación (AWS CLI)
Para obtener más información sobre cómo usar el AWS CLI con CodeBuild, consulta laReferencia de la línea de comandos.
Para crear un proyecto de CodeBuild construcción utilizando el AWS CLI, debe crear una estructura JSON de proyecto con formato, rellenar la estructura y create-project
ejecutar el comando para crear el proyecto.
Cree el archivo JSON
Cree un JSON archivo básico con el create-project
comando, utilizando la --generate-cli-skeleton
opción:
aws codebuild create-project --generate-cli-skeleton >
<json-file>
Esto crea un JSON archivo con la ruta y el nombre de archivo especificados por <json-file>
.
Rellene el JSON archivo
Modifique los JSON datos de la siguiente manera y guarde los resultados.
{ "name": "
<project-name>
", "description": "<description>
", "source": { "type": "CODECOMMIT" | "CODEPIPELINE" | "GITHUB" | "GITHUB_ENTERPRISE" | "GITLAB" | "GITLAB_SELF_MANAGED" | "BITBUCKET" | "S3" | "NO_SOURCE", "location": "<source-location>
", "gitCloneDepth": "<git-clone-depth>
", "buildspec": "<buildspec>
", "InsecureSsl": "<insecure-ssl>
", "reportBuildStatus": "<report-build-status>
", "buildStatusConfig": { "context": "<context>
", "targetUrl": "<target-url>
" }, "gitSubmodulesConfig": { "fetchSubmodules": "<fetch-submodules>
" }, "auth": { "type": "<auth-type>
", "resource": "<auth-resource>
" }, "sourceIdentifier": "<source-identifier>
" }, "secondarySources": [ { "type": "CODECOMMIT" | "CODEPIPELINE" | "GITHUB" | "GITHUB_ENTERPRISE" | "GITLAB" | "GITLAB_SELF_MANAGED" | "BITBUCKET" | "S3" | "NO_SOURCE", "location": "<source-location>
", "gitCloneDepth": "<git-clone-depth>
", "buildspec": "<buildspec>
", "InsecureSsl": "<insecure-ssl>
", "reportBuildStatus": "<report-build-status>
", "auth": { "type": "<auth-type>
", "resource": "<auth-resource>
" }, "sourceIdentifier": "<source-identifier>
" } ], "secondarySourceVersions": [ { "sourceIdentifier": "<secondary-source-identifier>
", "sourceVersion": "<secondary-source-version>
" } ], "sourceVersion": "<source-version>"
, "artifacts": { "type": "CODEPIPELINE" | "S3" | "NO_ARTIFACTS", "location": "<artifacts-location>
", "path": "<artifacts-path>
", "namespaceType": "<artifacts-namespacetype>
", "name": "<artifacts-name>
", "overrideArtifactName": "<override-artifact-name>
", "packaging": "<artifacts-packaging>
" }, "secondaryArtifacts": [ { "type": "CODEPIPELINE" | "S3" | "NO_ARTIFACTS", "location": "<secondary-artifact-location>
", "path": "<secondary-artifact-path>
", "namespaceType": "<secondary-artifact-namespaceType>
", "name": "<secondary-artifact-name>
", "packaging": "<secondary-artifact-packaging>
", "artifactIdentifier": "<secondary-artifact-identifier>
" } ], "cache": { "type": "<cache-type>
", "location": "<cache-location>
", "mode": [ "<cache-mode>
" ] }, "environment": { "type": "LINUX_CONTAINER" | "LINUX_GPU_CONTAINER" | "ARM_CONTAINER" | "WINDOWS_SERVER_2019_CONTAINER" | "WINDOWS_SERVER_2022_CONTAINER", "image": "<image>
", "computeType": "BUILD_GENERAL1_SMALL" | "BUILD_GENERAL1_MEDIUM" | "BUILD_GENERAL1_LARGE" | "BUILD_GENERAL1_2XLARGE", "certificate": "<certificate>
", "environmentVariables": [ { "name": "<environmentVariable-name>
", "value": "<environmentVariable-value>
", "type": "<environmentVariable-type>
" } ], "registryCredential": [ { "credential": "<credential-arn-or-name>
", "credentialProvider": "<credential-provider>
" } ], "imagePullCredentialsType": "CODEBUILD" | "SERVICE_ROLE", "privilegedMode": "<privileged-mode>
" }, "serviceRole": "<service-role>
", "autoRetryLimit":<auto-retry-limit>
, "timeoutInMinutes":<timeout>
, "queuedTimeoutInMinutes":<queued-timeout>
, "encryptionKey": "<encryption-key>
", "tags": [ { "key": "<tag-key>
", "value": "<tag-value>
" } ], "vpcConfig": { "securityGroupIds": [ "<security-group-id>
" ], "subnets": [ "<subnet-id>
" ], "vpcId": "<vpc-id>
" }, "badgeEnabled": "<badge-enabled>
", "logsConfig": { "cloudWatchLogs": { "status": "<cloudwatch-logs-status>
", "groupName": "<group-name>
", "streamName": "<stream-name>
" }, "s3Logs": { "status": "<s3-logs-status>
", "location": "<s3-logs-location>
", "encryptionDisabled": "<s3-logs-encryption-disabled>
" } }, "fileSystemLocations": [ { "type": "EFS", "location": "<EFS-DNS-name-1>
:/<directory-path>
", "mountPoint": "<mount-point>
", "identifier": "<efs-identifier>
", "mountOptions": "<efs-mount-options>
" } ], "buildBatchConfig": { "serviceRole": "<batch-service-role>
", "combineArtifacts":<combine-artifacts>
, "restrictions": { "maximumBuildsAllowed":<max-builds>
, "computeTypesAllowed": [ "<compute-type>
" ] }, "timeoutInMins":<batch-timeout>
, "batchReportMode": "REPORT_AGGREGATED_BATCH" | "REPORT_INDIVIDUAL_BUILDS" }, "concurrentBuildLimit":<concurrent-build-limit>
}
Sustituya lo siguiente:
name
Obligatorio. El nombre de este proyecto de compilación. Este nombre debe ser único en todos los proyectos de construcción de tu AWS cuenta.
description
Opcional. La descripción de este proyecto de compilación.
origen
Obligatorio. Un ProjectSourceobjeto que contiene información sobre la configuración del código fuente de este proyecto de compilación. Después de añadir un objeto source
, puede añadir hasta 12 orígenes más mediante el secondarySources. Esta configuración incluye lo siguiente:
- source/type
-
Obligatorio. El tipo de repositorio que contiene el código fuente que se va a compilar. Los valores válidos son:
-
CODECOMMIT
-
CODEPIPELINE
-
GITHUB
-
GITHUB_ENTERPRISE
-
GITLAB
-
GITLAB_SELF_MANAGED
-
BITBUCKET
-
S3
-
NO_SOURCE
Si usa
NO_SOURCE
, la especificación de compilación no puede ser un archivo porque el proyecto no tiene un origen. En su lugar, debes usar elbuildspec
atributo para especificar una cadena con YAML formato -para tu especificación de compilación. Para obtener más información, consulte Cree un proyecto de compilación sin una fuente. -
- source/location
-
Obligatorio a menos que lo establezcas
<source-type>
aCODEPIPELINE
. La ubicación del código fuente para el tipo de repositorio especificado.-
Para CodeCommit, el HTTPS clon URL del repositorio que contiene el código fuente y el archivo buildspec (por ejemplo,).
https://git-codecommit.
<region-id>
.amazonaws.com/v1/repos/<repo-name>
-
Para Amazon S3, el nombre del bucket de entrada de compilación, seguido de la ruta y el nombre del ZIP archivo que contiene el código fuente y la especificación de compilación. Por ejemplo:
-
Para un ZIP archivo ubicado en la raíz del depósito de entrada:.
<bucket-name>
/<object-name>
.zip -
Para un ZIP archivo ubicado en una subcarpeta del depósito de entrada:
.<bucket-name>
/<subfoler-path>
/<object-name>
.zip
-
-
Para GitHub, el HTTPS clon URL del repositorio que contiene el código fuente y el archivo buildspec. URLDebe contener github.com. Debes conectar tu AWS cuenta a tu cuenta. GitHub Para ello, utilice la CodeBuild consola para crear un proyecto de compilación.
-
Elija Authorize application. (Una vez que se haya conectado a su GitHub cuenta, no necesitará terminar de crear el proyecto de compilación. Puede cerrar la CodeBuild consola.)
-
-
En el caso de GitHub Enterprise Server, el HTTPS clon HTTP URL o el clon en el repositorio que contiene el código fuente y el archivo buildspec. También debe conectar su AWS cuenta a su cuenta de GitHub Enterprise Server. Para ello, utilice la CodeBuild consola para crear un proyecto de compilación.
-
Cree un token de acceso personal en GitHub Enterprise Server.
-
Copie este token en su portapapeles para poder usarlo cuando cree su CodeBuild proyecto. Para obtener más información, consulte Crear un token de acceso personal para la línea de comandos
en el sitio web de GitHub ayuda. -
Cuando utilice la consola para crear su CodeBuild proyecto, en Source, para Source provider, elija GitHubEnterprise.
-
En Personal Access Token, pegue el token que ha copiado en el portapapeles. Elija Save Token. Su CodeBuild cuenta ahora está conectada a su cuenta de GitHub Enterprise Server.
-
-
Para GitLab ser GitLab autogestionado, el HTTPS clon URL del repositorio que contiene el código fuente y el archivo buildspec. Ten en cuenta que, si lo usas GitLab, debe contener gitlab.comURL. Si utilizas el sistema GitLab autogestionado, no es necesario URL que contenga gitlab.com. Debes conectar tu AWS cuenta a tu cuenta GitLab o GitLab a tu cuenta autogestionada. Para ello, utilice la CodeBuild consola para crear un proyecto de compilación.
-
En el panel de navegación de las herramientas para desarrolladores, selecciona Configuración, Conexiones y, a continuación, Crear conexión. En esta página, cree una conexión autogestionada GitLab o una conexión GitLab autogestionada y, a continuación, seleccione Conectar a GitLab.
-
-
En el caso de Bitbucket, el HTTPS clon URL del repositorio que contiene el código fuente y el archivo buildspec. Debe URL contener bitbucket.org. También debes conectar tu AWS cuenta a tu cuenta de Bitbucket. Para ello, usa la CodeBuild consola para crear un proyecto de compilación.
-
Cuando use la consola para conectarse (o volver a conectarse) a Bitbucket, en la página Confirm access to your account de Bitbucket, elija Grant access. (Una vez que te hayas conectado a tu cuenta de Bitbucket, no necesitas terminar de crear el proyecto de compilación. Puedes cerrar la CodeBuild consola.)
-
-
Para AWS CodePipeline, no especifique un
location
valor parasource
. CodePipeline ignora este valor porque al crear una canalización en CodePipeline, se especifica la ubicación del código fuente en la etapa de origen de la canalización.
-
- fuente/ gitCloneDepth
-
Opcional. La profundidad del historial que se va a descargar. El valor mínimo es 0. Si esta valor es 0, superior a 25 o no se facilita, se descargará el historial completo con cada proyecto de compilación. Si el tipo de origen es Amazon S3, este valor no se admite.
- source/buildspec
-
Opcional. La definición o archivo de especificación de compilación que va a usar. Si este valor no se proporciona o se establece en una cadena vacía, el código fuente debe contener un archivo
buildspec.yml
en su directorio raíz. Si se establece este valor, puede ser una definición de especificación de compilación en línea, la ruta a un archivo de especificación de compilación alternativo en relación con el directorio raíz de la fuente principal, o la ruta hasta un bucket de S3. El depósito debe estar en la misma AWS región que el proyecto de construcción. Especifique el archivo buildspec utilizando su ARN (por ejemplo,).arn:aws:s3:::
Para obtener más información, consulte Nombre de archivo y ubicación de almacenamiento de buildspec.<my-codebuild-sample2>
/buildspec.yml - source/auth
-
Contiene información sobre la configuración de autorización para acceder CodeBuild al código fuente que se va a crear.
- fuente/auth/ type
-
Obligatorio. El tipo de autorización que se usará. Los valores válidos son:
-
OAUTH
-
CODECONNECTIONS
-
SECRETS_MANAGER
-
- fuente/auth/ recurso
-
Opcional. El valor del recurso que se aplica al tipo de autorización especificado. Este puede ser Secrets Manager ARN o el CodeConnections ARN.
- fuente/ reportBuildStatus
-
Especifica si se debe enviar al proveedor de código fuente el estado de inicio y finalización de una compilación. Si lo configuras con un proveedor de fuentes que no sea GitHub GitHub Enterprise Server o Bitbucket, aparecerá
invalidInputException
un.Para poder informar del estado de la compilación al proveedor de fuentes, el usuario asociado al proveedor de fuentes debe tener acceso de escritura al repositorio. Si el usuario no tiene acceso de escritura, no es posible actualizar el estado de compilación. Para obtener más información, consulte Acceso al proveedor de fuentes.
- fuente/ buildStatusConfig
-
Contiene información que define la forma en que el proyecto de CodeBuild compilación informa del estado de la compilación al proveedor de origen. Esta opción se utiliza solo cuando el tipo de fuente es
GITHUB
,GITHUB_ENTERPRISE
oBITBUCKET
.- fuente/buildStatusConfig/contexto
-
Con fuentes de Bitbucket, este parámetro se utiliza para el parámetro
name
en el estado de confirmación de Bitbucket. En el GitHub caso de las fuentes, este parámetro se utiliza para elcontext
parámetro en el estado de GitHub confirmación.Por ejemplo, puedes hacer que
context
contenga el número de compilación y el activador del webhook mediante las siguientes variables de CodeBuild entorno:AWS CodeBuild sample-project Build #$CODEBUILD_BUILD_NUMBER - $CODEBUILD_WEBHOOK_TRIGGER
El resultado es que el contexto de la compilación n.º 24 se desencadena por un evento de solicitud de extracción de webhook:
AWS CodeBuild sample-project Build #24 - pr/8
- fuente//buildStatusConfigtargetUrl
-
Con fuentes de Bitbucket, este parámetro se utiliza para el parámetro
url
en el estado de confirmación de Bitbucket. En el GitHub caso de las fuentes, este parámetro se utiliza para eltarget_url
parámetro del estado de GitHub confirmación.Por ejemplo, puedes establecer el valor en
https://aws.amazon.com/codebuild/
y el<path to build>
targetUrl
estado de la confirmación se vinculará a este valorURL.También puede incluir variables de CodeBuild entorno en el
targetUrl
para añadir información adicional alURL. Por ejemplo, para añadir la región de construcción aURL, establézcalatargetUrl
en:"targetUrl": "https://aws.amazon.com/codebuild/
<path to build>
?region=$AWS_REGION"Si la región de compilación es
us-east-2
, esto se expandirá a:https://aws.amazon.com/codebuild/
<path to build>
?region=us-east-2
- fuente/ gitSubmodulesConfig
-
Opcional. Información acerca de la configuración de submódulos de Git. Se utiliza CodeCommit únicamente GitHub con GitHub Enterprise Server y Bitbucket.
- fuente//gitSubmodulesConfigfetchSubmodules
-
Establezca
fetchSubmodules
entrue
si desea incluir submódulos de Git en el repositorio. Los submódulos de Git que se incluyen deben configurarse comoHTTPS.
- fuente/ InsecureSsl
-
Opcional. Se utiliza únicamente con GitHub Enterprise Server. Establezca este valor
true
para ignorar TLS las advertencias al conectarse al repositorio de proyectos de GitHub Enterprise Server. El valor predeterminado esfalse
.InsecureSsl
debe utilizarse con fines de prueba únicamente. No debe utilizarse en un entorno de producción. - fuente/ sourceIdentifier
-
Identificador definido por el usuario para la fuente del proyecto. Opcional para la fuente principal. Obligatorio para las fuentes secundarias.
secondarySources
Opcional. Conjunto de ProjectSourceobjetos que contienen información sobre las fuentes secundarias de un proyecto de compilación. Es posible añadir hasta 12 fuentes secundarias. Los objetos secondarySources
utilizan las mismas propiedades que el objeto origen. En un objeto de fuente secundario, sourceIdentifier
es obligatorio.
secondarySourceVersions
Opcional. Una matriz de objetos ProjectSourceVersion. Si se especifica secondarySourceVersions
en el nivel de compilación, prevalece sobre esto.
sourceVersion
Opcional. Versión de la entrada de la compilación que se creará para este proyecto. Si no se especifica, se utiliza la versión más reciente. Si se especifica, debe ser una de las siguientes opciones:
-
Para CodeCommit, el ID de confirmación, la rama o la etiqueta de Git que se va a utilizar.
-
Para GitHub, el ID de confirmación, el ID de la solicitud de extracción, el nombre de la rama o el nombre de la etiqueta que corresponda a la versión del código fuente que quieres compilar. Si se especifica un ID de solicitud de inserción, este debe tener el formato
pr/pull-request-ID
(por ejemplo,pr/25
). Si se especifica un nombre de rama, se utiliza el ID de HEAD confirmación de la rama. Si no se especifica, se usa el ID de HEAD confirmación de la rama predeterminada. -
Para ello GitLab, el ID de confirmación, el ID de la solicitud de extracción, el nombre de la rama, el nombre de la etiqueta o la referencia y un ID de confirmación. Para obtener más información, consulte Ejemplo de versión fuente con AWS CodeBuild.
-
Para Bitbucket, el ID de confirmación, el nombre de ramificación o el nombre de etiqueta correspondiente a la versión de código fuente que desea compilar. Si se especifica un nombre de rama, se utiliza el ID de HEAD confirmación de la rama. Si no se especifica, se usa el ID de HEAD confirmación de la rama predeterminada.
-
Para Amazon S3, el ID de versión del objeto que representa el ZIP archivo de entrada de compilación que se va a utilizar.
Si se especifica sourceVersion
en el nivel de compilación y, a continuación, esa versión prevalece sobre sourceVersion
(en el nivel del proyecto). Para obtener más información, consulte Ejemplo de versión fuente con AWS CodeBuild.
artifacts
Obligatorio. Un ProjectArtifactsobjeto que contiene información sobre la configuración de los artefactos de salida de este proyecto de compilación. Después de añadir un objeto artifacts
, puede añadir hasta 12 artefactos más mediante el secondaryArtifacts. Esta configuración incluye lo siguiente:
- artifacts/type
-
Obligatorio. El tipo de artefacto de salida de la compilación. Los valores válidos son:
-
CODEPIPELINE
-
NO_ARTIFACTS
-
S3
-
- artifacts/location
-
Solo se usa con el tipo de artefacto
S3
. No se usa para otros tipos de artefactos.Nombre del bucket de salida creado o identificado en los requisitos previos.
- artifacts/path
-
Solo se usa con el tipo de artefacto
S3
. No se usa para otros tipos de artefactos.La ruta del depósito de salida para colocar el ZIP archivo o la carpeta. Si no especifica un valor para
path
, CodeBuild utilizanamespaceType
(si se especifica) yname
para determinar la ruta y el nombre del ZIP archivo o la carpeta de salida de la compilación. Por ejemplo, si especificaMyPath
enpath
yMyArtifact.zip
enname
, la ruta y el nombre seránMyPath/MyArtifact.zip
. - artefactos/ namespaceType
-
Solo se usa con el tipo de artefacto
S3
. No se usa para otros tipos de artefactos.El espacio de nombres del archivo o carpeta de salida de la compilación. ZIP Los valores válidos son
BUILD_ID
yNONE
. Se usaBUILD_ID
para insertar el ID de compilación en la ruta del ZIP archivo o carpeta de salida de la compilación. De lo contrario, utiliceNONE
. Si no especificas un valor paranamespaceType
, CodeBuild utilizapath
(si se especifica) yname
para determinar la ruta y el nombre del ZIP archivo o carpeta de salida de la compilación. Por ejemplo, si especificaMyPath
enpath
,BUILD_ID
ennamespaceType
yMyArtifact.zip
enname
, la ruta y el nombre seránMyPath/
.build-ID
/MyArtifact.zip - artifacts/name
-
Solo se usa con el tipo de artefacto
S3
. No se usa para otros tipos de artefactos.El nombre del ZIP archivo o la carpeta de salida de la compilación que contiene
location
. Por ejemplo, si especificaMyPath
enpath
yMyArtifact.zip
enname
, la ruta y el nombre seránMyPath/MyArtifact.zip
. - artefactos/ overrideArtifactName
-
Solo se usa con el tipo de artefacto de S3. No se usa para otros tipos de artefactos.
Opcional. Si se establece con
true
, el nombre especificado en el bloqueartifacts
del archivo de especificación de compilación anularáname
. Para obtener más información, consulte Referencia de especificación de compilación para CodeBuild. - artifacts/packaging
-
Solo se usa con el tipo de artefacto
S3
. No se usa para otros tipos de artefactos.Opcional. Especifica cómo empaquetar los artefactos. Los valores permitidos son:
- NONE
-
Cree una carpeta que contenga los artefactos de compilación. Este es el valor predeterminado.
- ZIP
-
Cree un ZIP archivo que contenga los artefactos de construcción.
secondaryArtifacts
Opcional. Matriz de ProjectArtifactsobjetos que contiene información sobre la configuración de los artefactos secundarios de un proyecto de construcción. Puede añadir hasta 12 artefactos secundarios. El objeto secondaryArtifacts
usa muchos de los mismos valores que utiliza el objeto artifacts.
cache
Obligatorio. ProjectCacheObjeto que contiene información sobre la configuración de caché de este proyecto de compilación. Para obtener más información, consulte Compilaciones en caché.
environment
Obligatorio. Un ProjectEnvironmentobjeto que contiene información sobre la configuración del entorno de compilación de este proyecto. Esta configuración incluye:
- environment/type
-
Obligatorio. El tipo del entorno de compilación. Para obtener más información, consulte escribir en la CodeBuild APIReferencia.
- environment/image
-
Obligatorio. El identificador de imagen de Docker usado por este entorno de compilación. Normalmente, este identificador se expresa como
image-name
:tag
. Por ejemplo, en el repositorio de Docker que CodeBuild utiliza para administrar sus imágenes de Docker, esto podría ser.aws/codebuild/standard:5.0
En Docker Hub,maven:3.3.9-jdk-8
. En AmazonECR,
. Para obtener más información, consulte Imágenes de Docker proporcionadas por CodeBuild.account-id
.dkr.ecr.region-id
.amazonaws.com/your-Amazon-ECR-repo-name
:tag
- entorno/ computeType
-
Obligatorio. Especifica los recursos de computación que utiliza este entorno de compilación. Para obtener más información, consulte computeTypela CodeBuild APIReferencia.
- environment/certificate
-
Opcional. El ARN del bucket de Amazon S3, el prefijo de ruta y la clave de objeto que contiene el certificado PEM codificado. La clave de objeto puede ser solo el archivo.pem o un archivo.zip que contenga el certificado codificado. PEM Por ejemplo, si el nombre del bucket de Amazon S3 es
, el prefijo de ruta es<my-bucket>
y el nombre de la clave de objeto es<cert>
, los formatos aceptables para<certificate.pem>
certificate
son
o<my-bucket/cert/certificate.pem>
arn:aws:s3:::
.<my-bucket/cert/certificate.pem>
- entorno/ environmentVariables
-
Opcional. Matriz de EnvironmentVariableobjetos que contiene las variables de entorno que quieres especificar para este entorno de compilación. Cada variable de entorno se expresa como un objeto que contiene un
name
,value
ytype
dename
,value
ytype
.La consola y AWS CLI los usuarios pueden ver todas las variables de entorno. Si no le preocupa que la variable de entorno esté visible, establezca
name
yvalue
, y establezcatype
conPLAINTEXT
.Le recomendamos que almacene las variables de entorno con valores confidenciales, como un identificador de clave de AWS acceso, una clave de acceso AWS secreta o una contraseña, como parámetro en el almacén de parámetros de Amazon EC2 Systems Manager o AWS Secrets Manager. Pues
name
, para ese parámetro almacenado, defina un identificador CodeBuild para la referencia.Si utiliza el almacén de parámetros de Amazon EC2 Systems Manager
value
, defina el nombre del parámetro tal como está almacenado en el almacén de parámetros. Establezcatype
enPARAMETER_STORE
. Utilizando un parámetro denominado/CodeBuild/dockerLoginPassword
como ejemplo, establezcaname
conLOGIN_PASSWORD
. Establezcavalue
en/CodeBuild/dockerLoginPassword
. Establezcatype
enPARAMETER_STORE
.importante
Si utiliza Amazon EC2 Systems Manager Parameter Store, le recomendamos que almacene los parámetros con nombres de parámetros que comiencen por
/CodeBuild/
(por ejemplo,/CodeBuild/dockerLoginPassword
). Puede utilizar la CodeBuild consola para crear un parámetro en Amazon EC2 Systems Manager. Seleccione Crear parámetro y siga las instrucciones del cuadro de diálogo. (En ese cuadro de diálogo, para la KMSclave, puede especificar la AWS KMS clave ARN de su 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 utiliza la CodeBuild consola para crear un parámetro, la consola empezará con el nombre del parámetro a/CodeBuild/
medida que se vaya almacenando. Para obtener más información, consulte el tutorial de Systems Manager Parameter Store y Systems Manager Parameter Store Console en la Guía del usuario de Amazon EC2 Systems Manager.Si su proyecto de compilación hace referencia a parámetros almacenados en el almacén de parámetros de Amazon EC2 Systems Manager, la función de servicio del proyecto de compilación debe permitir la
ssm:GetParameters
acción. Si ha elegido anteriormente un nuevo rol de servicio, CodeBuild incluya esta acción en el rol de servicio predeterminado para su proyecto de compilación. Sin embargo, si ha seleccionado Rol de servicio existente, deberá incluir esta acción en el rol de servicio por separado.Si su proyecto de compilación hace referencia a parámetros almacenados en el almacén de parámetros de Amazon EC2 Systems Manager con nombres de parámetros que no comienzan por y ha elegido Nueva función de servicio, debe actualizar esa función de servicio para permitir el acceso a los nombres de parámetros que no comiencen por
/CodeBuild/
./CodeBuild/
Esto es así porque el rol de servicio permite el acceso únicamente a los nombres de parámetro que empiezan por/CodeBuild/
.Si elige Nueva función de servicio, la función de servicio incluye el permiso para descifrar todos los parámetros del espacio de
/CodeBuild/
nombres del almacén de parámetros de 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 usa Secrets Manager, para
value
, defina el nombre del parámetro tal como está almacenado en Secrets Manager. Establezcatype
enSECRETS_MANAGER
. Utilizando un secreto denominado/CodeBuild/dockerLoginPassword
como ejemplo, establezcaname
conLOGIN_PASSWORD
. Establezcavalue
en/CodeBuild/dockerLoginPassword
. Establezcatype
enSECRETS_MANAGER
.importante
Si se utiliza Secrets Manager, recomendamos almacenar los secretos con nombres que comiencen por
/CodeBuild/
(por ejemplo,/CodeBuild/dockerLoginPassword
). Para obtener más información, consulte AWS Secrets Manager en la Guía del usuario de AWS Secrets Manager .Si el proyecto de compilación hace referencia a secretos almacenados Secrets Manager, el rol de servicio del proyecto de compilación debe permitir la acción
secretsmanager:GetSecretValue
. Si ha elegido anteriormente un nuevo rol de servicio, CodeBuild incluya esta acción en el rol de servicio predeterminado para su proyecto de compilación. Sin embargo, si ha seleccionado 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 secretos almacenados en Secrets Manager cuyos nombres no empiezan por
/CodeBuild/
y se selecciona Nuevo rol de servicio, es necesario actualizar ese rol de servicio para permitir el acceso a nombres de parámetro que no empiecen por/CodeBuild/
. Esto es así porque el rol de servicio permite el acceso únicamente a los nombres de secreto que empiezan por/CodeBuild/
.Si elige Nuevo rol de servicio, el rol de servicio incluye permisos para descifrar todos los secretos en el espacio de nombres de
/CodeBuild/
en Secrets Manager. -
- entorno/ registryCredential
-
Opcional. RegistryCredentialObjeto que especifica las credenciales que proporcionan acceso a un registro privado de Docker.
- entorno//credencial registryCredential
-
Especifica el nombre ARN o el nombre de las credenciales creadas con. AWS Managed Services Puede utilizar el nombre de las credenciales solo si existen en su región actual.
- entorno//registryCredentialcredentialProvider
-
El único valor válido es
SECRETS_MANAGER
.
Cuando se ha establecido:
-
imagePullCredentials
se debe establecer enSERVICE_ROLE
. -
La imagen no puede ser una imagen curada ni una ECR imagen de Amazon.
- entorno/tipo imagePullCredentials
-
Opcional. El tipo de credenciales que se CodeBuild utilizan para extraer imágenes de tu compilación. Hay dos valores válidos:
- CODEBUILD
-
CODEBUILD
especifica que CodeBuild usa sus propias credenciales. Debes editar tu política de ECR repositorios de Amazon para confiar en el director del CodeBuild servicio. - SERVICE_ROLE
-
Especifica que CodeBuild utiliza la función de servicio de su proyecto de compilación.
Cuando utilice una imagen de registro entre cuentas o privada, debe usar credenciales de
SERVICE_ROLE
. Cuando usas una imagen CodeBuild seleccionada, debes usarCODEBUILD
credenciales. - entorno/ privilegedMode
-
Establézcalo como
true
si va a usar este proyecto de compilación para crear imágenes de 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 hacerlo es iniciar el daemon Docker en la fase deinstall
de su archivo buildspec ejecutando los siguientes comandos de compilación. No ejecute estos comandos si especificó una imagen de entorno de compilación proporcionada por el soporte CodeBuild de Docker.nota
De forma predeterminada, el daemon de Docker está habilitado para las compilaciones que no son compiladas. VPC Si quieres usar contenedores de Docker para VPC compilaciones, consulta Runtime Privilege y Linux Capabilities
en el sitio web de Docker Docs y habilita el modo privilegiado. Además, Windows no admite el modo privilegiado. - 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"
serviceRole
Obligatorio. El rol ARN de servicio que se CodeBuild utiliza para interactuar con los servicios en nombre del usuario (por ejemplo,arn:aws:iam::
).account-id
:role/role-name
autoRetryLimit
Opcional. El número de reintentos automáticos adicionales tras una compilación fallida. Por ejemplo, si el límite de reintentos automáticos está establecido en 2, CodeBuild llamará al RetryBuild
API para volver a intentar automáticamente la compilación hasta 2 veces más.
timeoutInMinutes
Opcional. El número de minutos, entre 5 y 2160 (36 horas), tras el cual CodeBuild se detiene la compilación si no se completa. Si no se especifica, se usa el valor predeterminado de 60. Para determinar si una compilación se CodeBuild detuvo debido a un tiempo de espera y cuándo, ejecuta el batch-get-builds
comando. Para determinar si la compilación se ha detenido, busque en la salida un valor de buildStatus
de FAILED
. Para determinar cuándo se ha agotado el tiempo de espera de la compilación, busque en la salida el valor de endTime
asociado a un valor de phaseStatus
de TIMED_OUT
.
queuedTimeoutInMinutos
Opcional. El número de minutos, entre 5 y 480 (8 horas), tras los que CodeBuild se detiene la compilación si sigue en cola. Si no se especifica, se usa el valor predeterminado de 60.
encryptionKey
Opcional. El alias o ARN el alias AWS KMS key utilizado CodeBuild para cifrar el resultado de la compilación. Si especifica un alias, utilice el formato arn:aws:kms:
o si existe un alias, utilice el formato region-ID
:account-ID
:key/key-ID
alias/
. Si no se especifica, se utiliza la KMS clave AWS administrada para Amazon S3.key-alias
etiquetas
Opcional. Matriz de objetos Tag que proporcionan las etiquetas que desea asociar a este proyecto de compilación. Puede especificar hasta 50 etiquetas. Cualquier AWS servicio que admita etiquetas de proyectos de CodeBuild compilación puede utilizar estas etiquetas. Cada etiqueta se expresa como un objeto con key
y value
.
vpcConfig
Opcional. Un VpcConfigobjeto que contiene información sobre la VPC configuración del proyecto. Para obtener más información, consulte Úselo AWS CodeBuild con Amazon Virtual Private Cloud.
Estas propiedades incluyen:
- vpcId
-
Obligatorio. El VPC ID que CodeBuild utiliza. Ejecuta este comando para obtener una lista de todos los VPC IDs habitantes de tu región:
aws ec2 describe-vpcs --region
<region-ID>
- subnets
-
Obligatorio. Una matriz de subredes IDs que incluye los recursos utilizados por CodeBuild. Ejecute este comando para obtener lo siguiente: IDs
aws ec2 describe-subnets --filters "Name=vpc-id,Values=<vpc-id>" --region
<region-ID>
- securityGroupIds
-
Obligatorio. Matriz de grupos de seguridad IDs utilizada por CodeBuild para permitir el acceso a los recursos delVPC. Ejecute este comando para obtener lo IDs siguiente:
aws ec2 describe-security-groups --filters "Name=vpc-id,Values=
<vpc-id>
" --<region-ID>
badgeEnabled
Opcional. Especifica si se deben incluir insignias de construcción en el CodeBuild proyecto. Configúrelo como true
para activar las insignias de compilación o false
en caso contrario. Para obtener más información, consulte Cree una muestra de insignias con CodeBuild.
logsConfig
Un LogsConfigobjeto que contiene información sobre la ubicación de los registros de esta compilación.
- logsConfig/cloudWatchLogs
-
Un CloudWatchLogsConfigobjeto que contiene información sobre cómo insertar registros en CloudWatch Logs.
- logsConfig/S3Logs
-
Un LogsConfig objeto de S3 que contiene información sobre cómo enviar registros a Amazon S3.
fileSystemLocations
Opcional. Conjunto de ProjectFileSystemsLocationobjetos que contiene información sobre la EFS configuración de Amazon.
buildBatchConfig
Opcional. El buildBatchConfig
objeto es una ProjectBuildBatchConfigestructura que contiene la información de configuración de compilación por lotes del proyecto.
- buildBatchConfig/serviceRole
-
La función de servicio ARN del proyecto de creación por lotes.
- buildBatchConfig/combineArtifacts
-
Valor booleano que especifica si se deben combinar los artefactos de compilación de la compilación por lotes en una única ubicación de artefactos.
- buildBatchConfig/restricciones/ maximumBuildsAllowed
-
Número máximo de compilaciones permitidas.
- buildBatchConfig/restricciones/ computeTypesAllowed
-
Una matriz de cadenas que especifican los tipos de computación permitidos para la compilación por lotes. Consulte los valores en Tipos de computación del entorno de compilación.
- buildBatchConfig/timeoutInMinutes
-
Cantidad máxima de tiempo, en minutos, en que se debe completar la compilación por lotes.
- buildBatchConfig/batchReportMode
-
Especifica cómo se envían los informes de estado de compilación al proveedor de origen para la compilación por lotes. Los valores válidos son:
REPORT_AGGREGATED_BATCH
-
(Predeterminado) Agregue todos los estados de compilación en un único informe de estado.
REPORT_INDIVIDUAL_BUILDS
-
Envíe un informe de estado independiente para cada compilación individual.
concurrentBuildLimit
Establece el número máximo de versiones simultáneas que están permitidas para este proyecto.
Solo se inician compilaciones nuevas si el número actual de compilaciones es menor o igual que este límite. Si el número de compilaciones actual alcanza este límite, se regulan las compilaciones nuevas y no se ejecutan.
Creación del proyecto
Para crear el proyecto, vuelve a ejecutar el create-project
comando y pasa tu archivo: JSON
aws codebuild create-project --cli-input-json file://
<json-file>
Si se ejecuta correctamente, la JSON representación de un objeto del proyecto aparece en la salida de la consola. Consulte la sintaxis de CreateProject respuesta para ver un ejemplo de estos datos.
Excepto el nombre del proyecto de compilación, puede cambiar cualquiera de los ajustes del proyecto de compilación más adelante. Para obtener más información, consulte Cambiar la configuración de un proyecto de compilación (AWS CLI).
Para empezar a ejecutar una compilación, consulte Ejecutar una compilación (AWS CLI).
Si el código fuente está almacenado en un GitHub repositorio y desea CodeBuild reconstruirlo cada vez que se introduzca un cambio de código en el repositorio, consulteIniciar la ejecución de compilaciones automáticamente (AWS CLI).
Crear un proyecto de compilación (AWS SDKs)
Para obtener información sobre su uso AWS CodeBuild con AWS SDKs, consulte laReferencia de los SDK y las herramientas de AWS.
Crear un proyecto de compilación (AWS CloudFormation)
Para obtener información sobre el uso AWS CodeBuild con AWS CloudFormation, consulte la AWS CloudFormation plantilla CodeBuild en la Guía del AWS CloudFormation usuario.