

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
<a name="create-project"></a>

Puede usar la AWS CodeBuild consola o AWS CLI los AWS SDK para crear un proyecto de compilación.

**Topics**
+ [Requisitos previos](#create-project-prerequisites)
+ [Creación de un proyecto de compilación (consola)](#create-project-console)
+ [Crear un proyecto de compilación (AWS CLI)](#create-project-cli)
+ [Crea un proyecto de compilación (AWS SDK)](#create-project-sdks)
+ [Crear un proyecto de compilación (CloudFormation)](#create-project-cloud-formation)

## Requisitos previos
<a name="create-project-prerequisites"></a>

Antes de crear un proyecto de compilación, responda las preguntas de [Planificación de una compilación](planning.md).

## Creación de un proyecto de compilación (consola)
<a name="create-project-console"></a>

Abre la AWS CodeBuild consola en. [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home)

 Si se muestra 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.

**Topics**
+ [Configuración del proyecto](#create-project-console-project-config)
+ [origen](#create-project-console-source)
+ [Entorno](#create-project-console-environment)
+ [Buildspec](#create-project-console-buildspec)
+ [Configuración de lotes](#create-project-console-batch-config)
+ [Artefactos](#create-project-console-artifacts)
+ [Registros](#create-project-console-logs)

### Configuración del proyecto
<a name="create-project-console-project-config"></a>

**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](sample-build-badges.md).  
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**  <a name="enable-concurrent-build-limit.console"></a>
(Opcional) Si desea limitar el número de compilaciones simultáneas del proyecto, siga los pasos siguientes:  

1. Seleccione **Restringir el número de compilaciones simultáneas que puede iniciar este proyecto**.

1. 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
<a name="create-project-console-source"></a>

**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:  
CodeBuild no es compatible con Bitbucket Server.

------
#### [ Amazon S3 ]

 **Bucket**   
Seleccione el nombre del bucket de entrada que contiene el código fuente. 

 **Clave de objeto de S3 o carpeta de S3**   
Introduzca el nombre del archivo ZIP o la ruta a la carpeta que contiene el código fuente. Introduzca una barra diagonal (/) para descargarlo todo en el bucket de S3. 

 **Versión de fuente**   
Introduzca el ID de versión del objeto que representa la compilación del archivo de entrada. Para obtener más información, consulte [Ejemplo de versión fuente con AWS CodeBuild](sample-source-version.md). 

------
#### [ CodeCommit ]

 **Repositorio**   
Seleccione el repositorio que desea utilizar.

**Tipo de referencia**  
Seleccione **Ramificación**, **Etiqueta de Git** o **ID de confirmación** para especificar la versión de su código fuente. Para obtener más información, consulte [Ejemplo de versión fuente con AWS CodeBuild](sample-source-version.md).  
Recomendamos seleccionar nombres de ramificaciones de Git que no parezcan identificadores de confirmación, como `811dd1ba1aba14473856cee38308caed7190c0d` o `5392f7`. Esto ayuda a evitar que la retirada desde Git colisione con confirmaciones reales.

 **Profundidad del clon de Git**   
Elija crear un clon superficial con un historial truncado en el número de confirmaciones especificado. Si desea un clon completo, elija **Completo**. 

**Submódulos de Git**  
Seleccione **Usar submódulos de Git** si desea incluir submódulos de Git en el repositorio. 

------
#### [ Bitbucket ]

 **Credencial**   
Elija **Credencial de origen predeterminada** o **Credencial de origen personalizada** y siga las instrucciones para administrar la credencial de origen predeterminada o personalizar la credencial de origen.

 **Tipo de conexión**   
Elige **OAuth **CodeConnections****, **contraseña de aplicación** o **token de acceso personal al** que deseas conectarte. CodeBuild

 **Conexión**   
Seleccione una conexión de Bitbucket o un secreto de Secrets Manager para conectarse mediante el tipo de conexión especificado.

 **Repositorio**   
Elija **Repositorio en mi cuenta de Bitbucket** o **Repositorio público** y especifique la URL del repositorio.

 **Versión de fuente**   
Introduzca una ramificación, un ID de confirmación, una etiqueta o una referencia y un ID de confirmación. Para obtener más información, consulte [Ejemplo de versión fuente con AWS CodeBuild](sample-source-version.md)   
Recomendamos seleccionar nombres de ramificaciones de Git que no parezcan identificadores de confirmación, como `811dd1ba1aba14473856cee38308caed7190c0d` o `5392f7`. Esto ayuda a evitar que la retirada desde Git colisione con confirmaciones reales.

 **Profundidad del clon de Git**   
Seleccione **Git clone depth (Profundidad del clon de Git)** para crear un clon superficial con un historial truncado en el número de confirmaciones especificado. Si desea un clon completo, elija **Completo**. 

**Submódulos de Git**  
Seleccione **Usar submódulos de Git** si desea incluir submódulos de Git en el repositorio. 

**Estado de la compilación**  
Seleccione **Notificar los estados de compilación al proveedor de fuentes al inicio y al final de las compilaciones** si desea que se notifique el estado del inicio y finalización de la compilación al proveedor de fuentes.   
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](access-tokens.md).  
En **Contexto de estado**, introduzca el valor que se debe utilizar en el parámetro `name` en el estado de confirmación de Bitbucket. Para obtener más información, consulte [compilación](https://developer.atlassian.com/bitbucket/api/2/reference/resource/repositories/%7Bworkspace%7D/%7Brepo_slug%7D/commit/%7Bnode%7D/statuses/build) en la documentación de la API de Bitbucket.  
En **URL de destino**, introduzca el valor que se debe utilizar en el parámetro `url` en el estado de confirmación de Bitbucket. Para obtener más información, consulte [compilación](https://developer.atlassian.com/bitbucket/api/2/reference/resource/repositories/%7Bworkspace%7D/%7Brepo_slug%7D/commit/%7Bnode%7D/statuses/build) en la documentación de la API de Bitbucket.  
El estado de una compilación activada por un webhook siempre se notifica al proveedor de origen. Para que se notifique al proveedor de fuentes el estado de una compilación iniciada desde la consola o desde una llamada a la API, es necesario seleccionar esta opción.  
Si las compilaciones de un proyecto se activan mediante un webhook, es necesario enviar una nueva confirmación al repositorio para que se aplique cualquier cambio en esta opción.

En **los eventos de webhook de fuente principal**, selecciona **Reconstruir cada vez que se introduzca un cambio de código en este repositorio** si quieres CodeBuild compilar el código fuente cada vez que se inserte un cambio de código en este repositorio. Para obtener más información acerca de los webhooks y los grupos de filtros, consulte [Eventos de webhooks de Bitbucket](bitbucket-webhook.md).

------
#### [ GitHub ]

 **Credencial**   
Elija **Credencial de origen predeterminada** o **Credencial de origen personalizada** y siga las instrucciones para administrar la credencial de origen predeterminada o personalizar la credencial de origen.

 **Tipo de conexión**   
Elige el **token de acceso personal**, de **OAuth** o de **GitHub aplicación** al que deseas conectarte. CodeBuild

 **Conexión**   
Selecciona una GitHub conexión o un secreto de Secrets Manager para conectarte a través del tipo de conexión especificado.

 **Repositorio**   
Seleccione **Repositorio en mi GitHub cuenta**, **Repositorio público** o **webhook GitHub con alcance** e introduzca la URL del repositorio.

 **Versión de fuente**   
Introduzca una ramificación, un ID de confirmación, una etiqueta o una referencia y un ID de confirmación. Para obtener más información, consulte [Ejemplo de versión fuente con AWS CodeBuild](sample-source-version.md)   
Recomendamos seleccionar nombres de ramificaciones de Git que no parezcan identificadores de confirmación, como `811dd1ba1aba14473856cee38308caed7190c0d` o `5392f7`. Esto ayuda a evitar que la retirada desde Git colisione con confirmaciones reales.

 **Profundidad del clon de Git**   
Seleccione **Git clone depth (Profundidad del clon de Git)** para crear un clon superficial con un historial truncado en el número de confirmaciones especificado. Si desea un clon completo, elija **Completo**. 

**Submódulos de Git**  
Seleccione **Usar submódulos de Git** si desea incluir submódulos de Git en el repositorio. 

**Estado de la compilación**  
Seleccione **Notificar los estados de compilación al proveedor de fuentes al inicio y al final de las compilaciones** si desea que se notifique el estado del inicio y finalización de la compilación al proveedor de fuentes.   
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](access-tokens.md).  
**En el contexto de estado**, introduce el valor que se va a utilizar para el `context` parámetro en el estado de GitHub confirmación. Para obtener más información, consulta Cómo [crear un estado de confirmación](https://developer.github.com/v3/repos/statuses/#create-a-commit-status) en la guía para GitHub desarrolladores.  
En la **URL de destino**, introduce el valor que se va a utilizar para el `target_url` parámetro en el estado de GitHub confirmación. Para obtener más información, consulta Cómo [crear un estado de confirmación](https://developer.github.com/v3/repos/statuses/#create-a-commit-status) en la guía para GitHub desarrolladores.  
El estado de una compilación activada por un webhook siempre se notifica al proveedor de origen. Para que se notifique al proveedor de fuentes el estado de una compilación iniciada desde la consola o desde una llamada a la API, es necesario seleccionar esta opción.  
Si las compilaciones de un proyecto se activan mediante un webhook, es necesario enviar una nueva confirmación al repositorio para que se aplique cualquier cambio en esta opción.

En **los eventos de webhook de código fuente principal**, selecciona **Reconstruir cada vez que se envíe un cambio de código a este repositorio** si quieres CodeBuild compilar el código fuente cada vez que se inserte un cambio de código en este repositorio. Para obtener más información acerca de los webhooks y los grupos de filtros, consulte [GitHub eventos de webhook](github-webhook.md).

------
#### [ GitHub Enterprise Server ]

 **Credencial**   
Elija **Credencial de origen predeterminada** o **Credencial de origen personalizada** y siga las instrucciones para administrar la credencial de origen predeterminada o personalizar la credencial de origen.

 **Tipo de conexión**   
Elige un **CodeConnections****token de acceso personal** al que deseas conectarte CodeBuild.

 **Conexión**   
Seleccione una conexión GitHub empresarial o un secreto de Secrets Manager para conectarse a través del tipo de conexión especificado.

 **Repositorio**   
Elija **Repositorio en mi cuenta GitHub GitHub empresarial** **o webhook de ámbito empresarial** e introduzca la URL del repositorio.

**Versión de fuente**  
Introduzca una solicitud de recuperación, ramificación, ID de confirmación, etiqueta o referencia y un ID de confirmación. Para obtener más información, consulte [Ejemplo de versión fuente con AWS CodeBuild](sample-source-version.md).   
Recomendamos seleccionar nombres de ramificaciones de Git que no parezcan identificadores de confirmación, como `811dd1ba1aba14473856cee38308caed7190c0d` o `5392f7`. Esto ayuda a evitar que la retirada desde Git colisione con confirmaciones reales.

**Profundidad del clon de Git**  
Seleccione **Git clone depth (Profundidad del clon de Git)** para crear un clon superficial con un historial truncado en el número de confirmaciones especificado. Si desea un clon completo, elija **Completo**. 

**Submódulos de Git**  
Seleccione **Usar submódulos de Git** si desea incluir submódulos de Git en el repositorio. 

**Estado de la compilación**  
Seleccione **Notificar los estados de compilación al proveedor de fuentes al inicio y al final de las compilaciones** si desea que se notifique el estado del inicio y finalización de la compilación al proveedor de fuentes.   
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](access-tokens.md).  
**En el contexto de estado**, introduce el valor que se va a utilizar para el `context` parámetro en el estado de GitHub confirmación. Para obtener más información, consulta Cómo [crear un estado de confirmación](https://developer.github.com/v3/repos/statuses/#create-a-commit-status) en la guía para GitHub desarrolladores.  
En la **URL de destino**, introduce el valor que se va a utilizar para el `target_url` parámetro en el estado de GitHub confirmación. Para obtener más información, consulta Cómo [crear un estado de confirmación](https://developer.github.com/v3/repos/statuses/#create-a-commit-status) en la guía para GitHub desarrolladores.  
El estado de una compilación activada por un webhook siempre se notifica al proveedor de origen. Para que se notifique al proveedor de fuentes el estado de una compilación iniciada desde la consola o desde una llamada a la API, es necesario seleccionar esta opción.  
Si las compilaciones de un proyecto se activan mediante un webhook, es necesario enviar una nueva confirmación al repositorio para que se aplique cualquier cambio en esta opción.

**SSL no segura**  
Selecciona **Activar SSL inseguro** para ignorar las advertencias de SSL al conectarte al repositorio de proyectos de tu GitHub empresa. 

En **Eventos de webhook de fuente principal**, selecciona **Reconstruir cada vez que se inserte un cambio de código en este repositorio** si quieres CodeBuild compilar el código fuente cada vez que se inserte un cambio de código en este repositorio. Para obtener más información acerca de los webhooks y los grupos de filtros, consulte [GitHub eventos de webhook](github-webhook.md).

------
#### [ GitLab ]

 **Credencial**   
Elija **Credencial de origen predeterminada** o **Credencial de origen personalizada** y siga las instrucciones para administrar la credencial de origen predeterminada o personalizar la credencial de origen.

 **Tipo de conexión**   
**CodeConnections**se utiliza para conectarse GitLab a. CodeBuild

 **Conexión**   
Seleccione una GitLab conexión a través de la cual conectarse CodeConnections.

 **Repositorio**   
Seleccione el repositorio que desea utilizar.

 **Versión de fuente**   
Introduzca un ID de solicitud de extracción, una ramificación, un ID de confirmación, un etiqueta o referencia y un ID de confirmación. Para obtener más información, consulte [Ejemplo de versión fuente con AWS CodeBuild](sample-source-version.md).   
Recomendamos seleccionar nombres de ramificaciones de Git que no parezcan identificadores de confirmación, como `811dd1ba1aba14473856cee38308caed7190c0d` o `5392f7`. Esto ayuda a evitar que la retirada desde Git colisione con confirmaciones reales.

 **Profundidad del clon de Git**   
Seleccione **Git clone depth (Profundidad del clon de Git)** para crear un clon superficial con un historial truncado en el número de confirmaciones especificado. Si desea un clon completo, elija **Completo**. 

**Estado de la compilación**  
Seleccione **Notificar los estados de compilación al proveedor de fuentes al inicio y al final de las compilaciones** si desea que se notifique el estado del inicio y finalización de la compilación al proveedor de fuentes.   
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](access-tokens.md).

------
#### [ GitLab Self Managed ]

 **Credencial**   
Elija **Credencial de origen predeterminada** o **Credencial de origen personalizada** y siga las instrucciones para administrar la credencial de origen predeterminada o personalizar la credencial de origen.

 **Tipo de conexión**   
**CodeConnections**se utiliza para conectarse a GitLab Self Managed CodeBuild.

 **Conexión**   
Seleccione una conexión GitLab autogestionada a través de la cual conectarse CodeConnections.

 **Repositorio**   
Seleccione el repositorio que desea utilizar.

 **Versión de fuente**   
Introduzca un ID de solicitud de extracción, una ramificación, un ID de confirmación, un etiqueta o referencia y un ID de confirmación. Para obtener más información, consulte [Ejemplo de versión fuente con AWS CodeBuild](sample-source-version.md).   
Recomendamos seleccionar nombres de ramificaciones de Git que no parezcan identificadores de confirmación, como `811dd1ba1aba14473856cee38308caed7190c0d` o `5392f7`. Esto ayuda a evitar que la retirada desde Git colisione con confirmaciones reales.

 **Profundidad del clon de Git**   
Seleccione **Git clone depth (Profundidad del clon de Git)** para crear un clon superficial con un historial truncado en el número de confirmaciones especificado. Si desea un clon completo, elija **Completo**. 

**Estado de la compilación**  
Seleccione **Notificar los estados de compilación al proveedor de fuentes al inicio y al final de las compilaciones** si desea que se notifique el estado del inicio y finalización de la compilación al proveedor de fuentes.   
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](access-tokens.md).

------

### Entorno
<a name="create-project-console-environment"></a>

**Modelo de aprovisionamiento**  
Realice una de las siguientes acciones:  
+ Para usar flotas bajo demanda gestionadas por AWS CodeBuild, elija **On-demand**. Con flotas bajo demanda, CodeBuild proporciona computación para sus compilaciones. Las máquinas se destruyen cuando finaliza la construcción. On-demand las flotas están totalmente gestionadas e incluyen capacidades de escalado automático para hacer frente a los picos de demanda.
+ **Para utilizar 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 información, consulte [Ejecución de compilaciones en flotas de capacidad reservada](fleets.md).

**Imagen del entorno**  <a name="environment-image.console"></a>
Realice una de las siguientes acciones:  
+ 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 **Tipo de entorno**, elija **ARM**, **Linux**, **GPU de Linux** o **Windows**. Si elige **Otro registro**, en **URL de registro externo**, introduzca el nombre y etiqueta de la imagen de Docker en Docker Hub, usando el formato `{{docker repository}}/{{docker image name}}`. Si elige **Amazon ECR**, utilice el **repositorio de Amazon ECR** y la imagen de **Amazon ECR para elegir la imagen** de Docker en su cuenta. AWS 
+ Para usar una imagen de Docker privada, elija **Imagen personalizada**. En **Tipo de entorno**, elija **ARM**, **Linux**, **GPU de Linux** o **Windows**. 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. Es necesario crear las credenciales con Secrets Manager. Para obtener más información, consulte [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/) en la *Guía del usuario de AWS Secrets Manager *.
CodeBuild reemplaza las imágenes de Docker personalizadas`ENTRYPOINT`.

**Computación**  
Realice una de las siguientes acciones:  
+ Para usar la computación de EC2, elija **EC2**. La computación de EC2 ofrece flexibilidad optimizada durante las ejecuciones de acciones.
+ Para usar la computación de Lambda, elija **Lambda**. La computación de 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. Además, Lambda también escala de forma automática, por lo que las compilaciones no esperan en cola para ejecutarse. Para obtener información, consulte [Ejecute compilaciones en el AWS Lambda cómputo](lambda.md).

**Rol de servicio**  
Realice una de las siguientes acciones:  
+ 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 **ARN de rol**, seleccione el rol de servicio.
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**    
**Auto-retry limit**  
Especifique el número de reintentos automáticos adicionales tras una compilación con errores. Por ejemplo, si el límite de reintentos automáticos está establecido en 2, CodeBuild llamará a la `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 ha completado. Si se dejan los campos de **horas** y **minutos** en blanco, se usará el valor predeterminado de 60 minutos.  
**Privilegiado**  
(Opcional) Seleccione **Habilite esta marca si desea compilar imágenes de Docker o desea que sus compilaciones obtengan privilegios elevados** solo si pretende usar este proyecto de compilación para compilar 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 por el soporte CodeBuild de Docker.  
De forma predeterminada, el daemon de Docker está habilitado para compilaciones sin VPC. Si quiere usar contenedores de Docker para las compilaciones de VPC, consulte [Runtime Privilege and Linux Capabilities](https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities) en el sitio web de Docker Docs y habilite 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 CodeBuild trabajar con tu VPC:  
+ Para la **VPC**, elija el ID de VPC que utilice. CodeBuild 
+ Para las subredes de **VPC, elija las subredes** que incluyen los recursos que utiliza. CodeBuild 
+ Para los grupos de **seguridad de VPC, elija los grupos** de seguridad que se CodeBuild utilizan para permitir el acceso a los recursos de las VPC.
Para obtener más información, consulte [Úselo AWS CodeBuild con Amazon Virtual Private Cloud](vpc-support.md).  
**Computación**  
Seleccione una de las opciones disponibles.  
**Credencial de registro**  
Especifique una credencial de registro cuando el proyecto esté configurado con una imagen de registro no privada.  
Esta credencial solo se utilizará si las imágenes se sustituyen por las de registros privados.  
**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.   
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**.  
Se recomienda almacenar 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 AWS Secrets Manager de parámetros de Amazon EC2 Systems Manager o.   
Si utiliza el almacén de parámetros de Amazon EC2 Systems Manager, en **Tipo**, elija **Parámetro**. En **Nombre**, introduzca un identificador CodeBuild para la referencia. En **Valor**, escriba el nombre del parámetro tal 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**, escriba `LOGIN_PASSWORD`. En **Valor**, introduzca `/CodeBuild/dockerLoginPassword`.   
Si utiliza el almacén de parámetros de Amazon EC2 Systems Manager, 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 **clave KMS**, puede especificar el ARN de una AWS KMS clave 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 comienza con el nombre del parámetro a `/CodeBuild/` medida que se almacena. Para obtener más información, consulte [Almacén de parámetros de Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-paramstore.html) y [Tutorial de la consola del almacén de parámetros de Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-walk.html#sysman-paramstore-console) en la *Guí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 de Amazon EC2 Systems Manager, el rol de servicio del proyecto de compilación debe permitir la acción `ssm:GetParameters`. Si seleccionaste **Nueva función de servicio** anteriormente, 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 parámetros que se encuentran en el almacén de parámetros de Amazon EC2 Systems Manager cuyos nombres no empiezan por `/CodeBuild/` y ha seleccionado **Nuevo rol de servicio**, debe 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 parámetro que empiezan por `/CodeBuild/`.  
Si se selecciona **Nuevo rol de servicio**, el rol de servicio incluye permisos para descifrar todos los parámetros en el espacio de nombres de `/CodeBuild/` en el 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 de `my_value` y establece una variable de entorno denominada `MY_VAR` con un valor de `other_value`, `my_value` se reemplaza por `other_value`. Asimismo, si la imagen de Docker ya contiene una variable de entorno denominada `PATH` con un valor de `/usr/local/sbin:/usr/local/bin` y establece una variable de entorno denominada `PATH` 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**, introduce un identificador para CodeBuild hacer referencia. En **Valor**, introduzca un `reference-key` utilizando el patrón `{{secret-id}}:{{json-key}}:{{version-stage}}:{{version-id}}`. Para obtener información, consulte [Secrets Manager reference-key in the buildspec file](build-spec-ref.md#secrets-manager-build-spec).  
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](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) 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
<a name="create-project-console-buildspec"></a>

**Especificaciones de compilación**  
Realice una 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 el archivo de especificación de compilación usa un nombre o una ubicación diferentes, introduzca su ruta desde la raíz de la fuente en el **nombre de la especificación de compilación** (por ejemplo, `buildspec-two.yml` o `configuration/buildspec.yml`). Si el archivo de especificación de compilación está en un bucket de S3, debe estar en la misma región de AWS que el proyecto de compilación. Especifique el archivo de especificación de compilación mediante 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 archivo `buildspec.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 fase `build`. 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 fase `build`, añada un archivo `buildspec.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 la [Referencia de la especificación de compilación](build-spec-ref.md).

### Configuración de lotes
<a name="create-project-console-batch-config"></a>

Es posible ejecutar un conjunto de compilaciones como una sola operación. Para obtener más información, consulte [Ejecución de compilaciones en lotes](batch-build.md).

**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 llamar al `StartBuild``StopBuild`, y a `RetryBuild` las acciones 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` y `RetryBuild` 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 lote**  
Seleccione los tipos de computación permitidos para el lote. Seleccione todos los que correspondan.

**Flotas permitidas para lote**  
Seleccione las flotas permitidas 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.  
**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
<a name="create-project-console-artifacts"></a>

**Tipo**  
Realice una de las siguientes acciones:  
+ Si no desea crear ningún artefacto de salida de la compilación, elija **No artifacts**. Por ejemplo, puede interesar esta opción 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, seleccione **Amazon S3** y, 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 **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 **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](build-spec-ref.md#build-spec-ref-syntax).
  + 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 de `files` en [Sintaxis de buildspec](build-spec-ref.md#build-spec-ref-syntax).
  + 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:  

1. Para **Source identifier (Identificador de artefacto)**, escriba un valor que tenga como máximo 128 caracteres, únicamente de tipo alfanumérico y guiones bajos.

1. Elija **Add artifact (Añadir artefacto)**.

1. Siga los pasos anteriores para configurar los artefactos secundarios.

1. 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. Este es el valor predeterminado.
+ Para utilizar una clave administrada por el cliente para cifrar los artefactos de salida de la compilación, en **Clave de cifrado**, introduzca el ARN de la clave administrada por el cliente. 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](build-spec-ref.md#build-spec-ref-syntax). Para obtener más información acerca del almacenamiento en caché, consulte [Almacenamiento de las compilaciones en caché para mejorar el rendimiento](build-caching.md). 

### Registros
<a name="create-project-console-logs"></a>

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 logs**  
Seleccione **registros de CloudWatch **.  
**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)
<a name="create-project-cli"></a>

Para obtener más información sobre cómo usar el AWS CLI con CodeBuild, consulta la[Referencia de la línea de comandos](cmd-ref.md).

Para crear un proyecto de CodeBuild construcción utilizando el AWS CLI, debe crear una estructura de JSON-formatted [proyecto](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_Project.html), rellenar la estructura y ejecutar el [https://docs.aws.amazon.com/cli/latest/reference/codebuild/create-project.html](https://docs.aws.amazon.com/cli/latest/reference/codebuild/create-project.html)comando para crear el proyecto.

### Creación del archivo JSON
<a name="cp-cli-create-file"></a>

Cree un archivo JSON mínimo con el comando [https://docs.aws.amazon.com/cli/latest/reference/codebuild/create-project.html](https://docs.aws.amazon.com/cli/latest/reference/codebuild/create-project.html), mediante la opción `--generate-cli-skeleton`:

```
aws codebuild create-project --generate-cli-skeleton > {{<json-file>}}
```

Esto crea un archivo JSON con la ruta y el nombre de archivo especificados por{{<json-file>}}.

### Rellenar el archivo JSON
<a name="cp-cli-fill-in-file"></a>

Modifique los datos de JSON como se indica a continuación 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>}}"
      ],
      "fleetsAllowed": [
        "{{<fleet-name>}}"
      ]
    },
    "timeoutInMins": {{<batch-timeout>}},
    "batchReportMode": "REPORT_AGGREGATED_BATCH" | "REPORT_INDIVIDUAL_BUILDS"
  },
  "concurrentBuildLimit": {{<concurrent-build-limit>}}
}
```

Sustituya lo siguiente:

#### **name**
<a name="cli.project-name"></a>

Obligatorio. El nombre de este proyecto de compilación. Este nombre debe ser único en todos los proyectos de compilación de tu AWS cuenta.

#### **description**
<a name="cli.description"></a>

Opcional. La descripción de este proyecto de compilación.

#### **origen**
<a name="cli.source"></a>

Obligatorio. Un [ProjectSource](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectSource.html)objeto 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**](#cli.secondarysources). Esta configuración incluye lo siguiente:

source/**type**  <a name="cli.source.type"></a>
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 el `buildspec` atributo para especificar una YAML-formatted cadena para tu especificación de compilación. Para obtener más información, consulte [Creación de un proyecto de compilación sin un origen](no-source.md).

source/**location**  <a name="cli.source.location"></a>
Obligatorio a menos que lo establezcas. {{<source-type>}} `CODEPIPELINE` La ubicación del código fuente para el tipo de repositorio especificado.  
+ Para CodeCommit, la URL del clon HTTPS 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 archivo ZIP que contiene el código fuente y la especificación de compilación. Por ejemplo:
  + Para un archivo ZIP ubicado en la raíz del bucket de entrada: `{{<bucket-name>}}/{{<object-name>}}.zip`.
  + Para un archivo ZIP ubicado en una subcarpeta del bucket de entrada: `{{<bucket-name>}}/{{<subfoler-path>}}/{{<object-name>}}.zip`.
+ Para GitHub, la URL del clon HTTPS del repositorio que contiene el código fuente y el archivo buildspec. La dirección URL debe 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, la URL del clon HTTP o HTTPS del 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.

  1. Cree un token de acceso personal en GitHub Enterprise Server.

  1. 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](https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/) en el sitio web de GitHub ayuda. 

  1. Cuando utilice la consola para crear su CodeBuild proyecto, en **Source**, para **Source provider**, elija **GitHubEnterprise**.

  1. 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 la GitLab versión GitLab autogestionada, la URL del clon HTTPS del repositorio que contiene el código fuente y el archivo buildspec. Ten en cuenta que, si lo usas GitLab, la URL debe contener gitlab.com. Si utilizas la opción de GitLab autogestión, no es necesario que la URL contenga gitlab.com. Debes conectar tu AWS cuenta a tu cuenta GitLab o GitLab a tu cuenta autogestionada. Para ello, utilice la consola de CodeBuild para crear un proyecto de compilación.
  + En el panel de navegación de Herramientas para desarrolladores, elija **Configuración**, **Conexiones** y, después, **Crear conexión**. En esta página, cree una conexión GitLab o una conexión GitLab autogestionada y, a continuación, seleccione **Conectar a GitLab**.
+ Para Bitbucket, la URL clon HTTPS al repositorio que contiene el código fuente y el archivo buildspec. La dirección URL debe 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. 

  1. 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 para`source`. 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/ git CloneDepth**  <a name="cli.source.gitclonedepth"></a>
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**  <a name="cli.source.buildspec"></a>
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 compilación. Especifique el archivo buildspec utilizando su ARN (por ejemplo, `arn:aws:s3:::{{<my-codebuild-sample2>}}/buildspec.yml`). Para obtener más información, consulte [Nombre de archivo y ubicación de almacenamiento de buildspec](build-spec-ref.md#build-spec-ref-name-storage).

source/**auth**  <a name="cli.source.auth"></a>
Contiene información sobre la configuración de autorización para acceder CodeBuild al código fuente que se va a compilar.

source/auth/**tipo**  <a name="cli.source.auth.type"></a>
Obligatorio. El tipo de autorización que se usará. Los valores válidos son los siguientes:  
+ `OAUTH`
+ `CODECONNECTIONS`
+ `SECRETS_MANAGER`

source/auth/**recurso**  <a name="cli.source.auth.resource"></a>
Opcional. El valor del recurso que se aplica al tipo de autorización especificado. Puede ser el ARN de Secrets Manager o el ARN. CodeConnections 

**fuente/ informe BuildStatus**  <a name="cli.source.reportbuildstatus"></a>
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](access-tokens.md).

**fuente/ compilación StatusConfig**  <a name="cli.source.buildstatusconfig"></a>
Contiene información que define cómo 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` o `BITBUCKET`.    
source/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 el `context` 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
```  
source/buildStatusConfig**/URL de destino**  
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 el `target_url` parámetro del estado de GitHub confirmación.  
Por ejemplo, es posible establecer la `targetUrl` y `https://aws.amazon.com/codebuild/{{<path to build>}}` y el estado de la confirmación se vinculará a esta URL.  
También puedes incluir variables de CodeBuild entorno en el `targetUrl` para añadir información adicional a la URL. Por ejemplo, para añadir la región de compilación a la URL, establezca `targetUrl` 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/ git SubmodulesConfig**  <a name="cli.source.gitsubmodulesconfig"></a>
Opcional. Información acerca de la configuración de submódulos de Git. Se utiliza CodeCommit únicamente GitHub con GitHub Enterprise Server y Bitbucket.     
source/gitSubmodulesConfig**/FetchSubmódulos**  
Establezca `fetchSubmodules` en `true` si desea incluir submódulos de Git en el repositorio. Los submódulos de Git que se incluyan deben estar configurados como HTTPS.

fuente/ **InsecureSsl**  <a name="cli.source.insecuressl"></a>
Opcional. Se utiliza únicamente con GitHub Enterprise Server. Establezca este valor `true` para ignorar las advertencias de TLS al conectarse al repositorio de proyectos de GitHub Enterprise Server. El valor predeterminado es `false`. `InsecureSsl` debe utilizarse con fines de prueba únicamente. No debe utilizarse en un entorno de producción.

source/**sourceIdentifier**  <a name="cli.source.sourceidentifier"></a>
Identificador definido por el usuario para la fuente del proyecto. Opcional para la fuente principal. Obligatorio para las fuentes secundarias.

#### **secondarySources**
<a name="cli.secondarysources"></a>

Opcional. Conjunto de [ProjectSource](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectSource.html)objetos 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**](#cli.source). En un objeto de fuente secundario, `sourceIdentifier` es obligatorio.

#### **secundario SourceVersions**
<a name="cli.secondarysourceversions"></a>

Opcional. Una matriz de objetos [ProjectSourceVersion](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectSourceVersion.html). Si se especifica `secondarySourceVersions` en el nivel de compilación, prevalece sobre esto. 

#### **sourceVersion**
<a name="cli.sourceversion"></a>

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 ramificación, se usa el ID de confirmación HEAD de la ramificación. Si no se especifica, se usa el ID de confirmación HEAD de la ramificación personalizada. 
+ Para GitLab: el ID de confirmación, el ID de la solicitud de extracción, el nombre de la sucursal, 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](sample-source-version.md).
+ 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 ramificación, se usa el ID de confirmación HEAD de la ramificación. Si no se especifica, se usa el ID de confirmación HEAD de la ramificación personalizada. 
+ En Amazon S3, el ID de versión del objeto que representa el archivo ZIP 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](sample-source-version.md). 

#### **artifacts**
<a name="cli.artifacts"></a>

Obligatorio. Un [ProjectArtifacts](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectArtifacts.html)objeto 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](#cli.secondaryartifacts). Esta configuración incluye lo siguiente: 

artifacts/**type**  <a name="cli.artifacts.type"></a>
Obligatorio. El tipo de artefacto de salida de la compilación. Los valores válidos son los siguientes:   
+ `CODEPIPELINE`
+ `NO_ARTIFACTS`
+ `S3`

artifacts/**location**  <a name="cli.artifacts.location"></a>
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**  <a name="cli.artifacts.path"></a>
Solo se usa con el tipo de artefacto `S3`. No se usa para otros tipos de artefactos.  
Ruta del bucket de salida para colocar el archivo ZIP o la carpeta. Si no especifica un valor para`path`, CodeBuild utiliza `namespaceType` (si se ha especificado) y `name` para determinar la ruta y el nombre de la carpeta o archivo ZIP de salida de la compilación. Por ejemplo, si especifica `MyPath` en `path` y `MyArtifact.zip` en `name`, la ruta y el nombre serán `MyPath/MyArtifact.zip`. 

**artefactos/ NamespaceType**  <a name="cli.artifacts.namespacetype"></a>
Solo se usa con el tipo de artefacto `S3`. No se usa para otros tipos de artefactos.  
Espacio de nombres y archivo ZIP o carpeta de salida de la compilación. Los valores válidos son `BUILD_ID` y `NONE`. Utilice `BUILD_ID` para insertar el ID de compilación en la ruta del archivo ZIP o carpeta de salida de la compilación. De lo contrario, utilice `NONE`. Si no especifica un valor para`namespaceType`, CodeBuild utiliza `path` (si se ha especificado) y `name` para determinar la ruta y el nombre de la carpeta o archivo ZIP de salida de la compilación. Por ejemplo, si especifica `MyPath` en `path`, `BUILD_ID` en `namespaceType` y `MyArtifact.zip` en `name`, la ruta y el nombre serán `MyPath/{{build-ID}}/MyArtifact.zip`. 

artifacts/**name**  <a name="cli.artifacts.name"></a>
Solo se usa con el tipo de artefacto `S3`. No se usa para otros tipos de artefactos.  
Nombre del archivo ZIP o la carpeta de salida de la compilación dentro de `location`. Por ejemplo, si especifica `MyPath` en `path` y `MyArtifact.zip` en `name`, la ruta y el nombre serán `MyPath/MyArtifact.zip`. 

**artefactos/ anulación ArtifactName**  <a name="cli.artifacts.overrideartifactname"></a>
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 bloque `artifacts` 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](build-spec-ref.md). 

artifacts/**packaging**  <a name="cli.artifacts.packaging"></a>
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 archivo ZIP que contenga los artefactos de compilación.

#### SecondaryArtifacts
<a name="cli.secondaryartifacts"></a>

Opcional. Matriz de [ProjectArtifacts](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectArtifacts.html)objetos 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**](#cli.artifacts). 

#### cache
<a name="cli.cache"></a>

Obligatorio. [ProjectCache](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectCache.html)Objeto que contiene información sobre la configuración de caché de este proyecto de compilación. Para obtener más información, consulte [Almacenamiento de las compilaciones en caché](build-caching.md). 

#### entorno
<a name="cli.environment"></a>

Obligatorio. Un [ProjectEnvironment](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectEnvironment.html)objeto que contiene información sobre la configuración del entorno de compilación de este proyecto. Esta configuración incluye:

environment/**type**  <a name="cli.environment.type"></a>
Obligatorio. El tipo del entorno de compilación. Para obtener más información, consulta el [artículo](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectEnvironment.html#CodeBuild-Type-ProjectEnvironment-type) en la *referencia CodeBuild de la API*.

environment/**image**  <a name="cli.environment.image"></a>
Obligatorio. El identificador de imagen de Docker usado por este entorno de compilación. Típicamente, 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 Amazon ECR, `{{account-id}}.dkr.ecr.{{region-id}}.amazonaws.com/{{your-Amazon-ECR-repo-name}}:{{tag}}`. Para obtener más información, consulte [Imágenes de Docker proporcionadas por CodeBuild](build-env-ref-available.md). 

environment/**computeType**  <a name="cli.environment.computetype"></a>
Obligatorio. Especifica los recursos de computación que utiliza este entorno de compilación. *Para obtener más información, consulte [ComputEtype](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectEnvironment.html#CodeBuild-Type-ProjectEnvironment-computeType) en CodeBuild la referencia de la API.*

environment/**certificate**  <a name="cli.environment.certificate"></a>
Opcional. El ARN del bucket de Amazon S3, el prefijo de ruta y la clave de objeto que contiene el certificado. PEM-encoded La clave de objeto puede ser solo el archivo.pem o un archivo.zip que contenga el certificado. PEM-encoded Por ejemplo, si el nombre del bucket de Amazon S3 es `{{<my-bucket>}}`, el prefijo de ruta es `{{<cert>}}` y el nombre de la clave de objeto es `{{<certificate.pem>}}`, los formatos aceptables para `certificate` son `{{<my-bucket/cert/certificate.pem>}}` o `arn:aws:s3:::{{<my-bucket/cert/certificate.pem>}}`.

environment/**environmentVariables**  <a name="cli.environment.environmentvariables"></a>
Opcional. Matriz de [EnvironmentVariable](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_EnvironmentVariable.html)objetos que contiene las variables de entorno que desea especificar para este entorno de compilación. Cada variable de entorno se expresa como un objeto que contiene un `name`, `value` y `type` de `name`, `value` y `type`.   
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` y `value`, y establezca `type` con `PLAINTEXT`.  
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 AWS Secrets Manager de parámetros de Amazon EC2 Systems Manager o. 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. Establece `type` en `PARAMETER_STORE`. Utilizando un parámetro denominado `/CodeBuild/dockerLoginPassword` como ejemplo, establezca `name` con `LOGIN_PASSWORD`. Establece `value` en `/CodeBuild/dockerLoginPassword`. Establece `type` en `PARAMETER_STORE`.   
Si utiliza el almacén de parámetros de Amazon EC2 Systems Manager, 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 **clave KMS**, puede especificar el ARN de una AWS KMS clave 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 comienza con el nombre del parámetro a `/CodeBuild/` medida que se almacena. Para obtener más información, consulte [Almacén de parámetros de Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-paramstore.html) y [Tutorial de la consola del almacén de parámetros de Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-walk.html#sysman-paramstore-console) en la *Guí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 de Amazon EC2 Systems Manager, el rol de servicio del proyecto de compilación debe permitir la acción `ssm:GetParameters`. Si seleccionaste **Nueva función de servicio** anteriormente, 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 parámetros que se encuentran en el almacén de parámetros de Amazon EC2 Systems Manager cuyos nombres no empiezan por `/CodeBuild/` y ha seleccionado **Nuevo rol de servicio**, debe 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 parámetro que empiezan por `/CodeBuild/`.  
Si se selecciona **Nuevo rol de servicio**, el rol de servicio incluye permisos para descifrar todos los parámetros en el espacio de nombres de `/CodeBuild/` en el 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 de `my_value` y establece una variable de entorno denominada `MY_VAR` con un valor de `other_value`, `my_value` se reemplaza por `other_value`. Asimismo, si la imagen de Docker ya contiene una variable de entorno denominada `PATH` con un valor de `/usr/local/sbin:/usr/local/bin` y establece una variable de entorno denominada `PATH` 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. Establece `type` en `SECRETS_MANAGER`. Utilizando un secreto denominado `/CodeBuild/dockerLoginPassword` como ejemplo, establezca `name` con `LOGIN_PASSWORD`. Establece `value` en `/CodeBuild/dockerLoginPassword`. Establece `type` en `SECRETS_MANAGER`.  
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](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) 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 seleccionaste un **nuevo rol de servicio** anteriormente, CodeBuild incluye esta acción en el rol de servicio predeterminado para tu proyecto de construcció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.

environment/**registryCredential**  <a name="cli.environment.registrycredential"></a>
Opcional. Un [RegistryCredential](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_RegistryCredential.html)objeto que especifica las credenciales que proporcionan acceso a un registro de Docker privado.     
environment/registryCredential**/credencial**  
Especifica el ARN o nombre de las credenciales creadas mediante AWS Managed Services. Puede utilizar el nombre de las credenciales solo si existen en su región actual.  
environment/registryCredential**/Proveedor de credenciales**  
El único valor válido es `SECRETS_MANAGER`.
Cuando se ha establecido:   
+ `imagePullCredentials` se debe establecer en `SERVICE_ROLE`.
+ La imagen no puede ser una imagen seleccionada ni una imagen de Amazon ECR.

environment/**imagePullCredentialsType**  <a name="cli.environment.imagepullcredentialstype"></a>
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. Debe editar la política de repositorios de Amazon ECR para confiar en el principal 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 usar `CODEBUILD` credenciales. 

environment/**privilegedMode**  <a name="cli.environment.privilegedmode"></a>
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 de `install` de su archivo buildspec ejecutando los siguientes comandos de compilación. No ejecute estos comandos si especificó una imagen del entorno de compilación proporcionada por CodeBuild compatible con Docker.  
De forma predeterminada, el daemon de Docker está habilitado para compilaciones sin VPC. Si quiere usar contenedores de Docker para las compilaciones de VPC, consulte [Runtime Privilege and Linux Capabilities](https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities) en el sitio web de Docker Docs y habilite 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
<a name="cli.servicerole"></a>

Obligatorio. El ARN del rol 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}}`).

#### auto RetryLimit
<a name="cli.autoretrylimit"></a>

Opcional. El número de reintentos automáticos adicionales tras una compilación con errores. Por ejemplo, si el límite de reintentos automáticos está establecido en 2, CodeBuild llamará a la `RetryBuild` API para volver a intentar automáticamente la compilación hasta 2 veces más.

#### tiempo de espera InMinutes
<a name="cli.timeoutinminutes"></a>

Opcional. El número de minutos, entre 5 y 2160 (36 horas), tras los cuales 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`. 

#### en cola TimeoutInMinutes
<a name="cli.queuedtimeoutinminutes"></a>

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
<a name="cli.encryptionkey"></a>

Opcional. El alias o el ARN del AWS KMS key utilizado por CodeBuild para cifrar el resultado de la compilación. Si especifica un alias, utilice el formato `arn:aws:kms:{{region-ID}}:{{account-ID}}:key/{{key-ID}}` o si existe un alias, utilice el formato `alias/{{key-alias}}`. Si no se especifica, se utiliza la clave de KMS AWS administrada para Amazon S3.

#### etiquetas
<a name="cli.tags"></a>

Opcional. Matriz de objetos [Tag](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_Tag.html) 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
<a name="cli.vpcconfig"></a>

Opcional. Un [VpcConfig](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_VpcConfig.html)objeto que contiene información sobre la configuración de la VPC del proyecto. Para obtener más información, consulte [Úselo AWS CodeBuild con Amazon Virtual Private Cloud](vpc-support.md).

Estas propiedades incluyen: 

vpcId  
Obligatorio. El ID de VPC que CodeBuild utiliza. Ejecute este comando para obtener una lista de todos los ID de la VPC de su región:  

```
aws ec2 describe-vpcs --region {{<region-ID>}}
```

subnets  
Obligatorio. Conjunto de identificadores de subred que incluyen los recursos utilizados por. CodeBuild Para obtener estos ID, ejecute este comando:  

```
aws ec2 describe-subnets --filters "Name=vpc-id,Values=<vpc-id>" --region {{<region-ID>}}
```

seguridad GroupIds  
Obligatorio. Conjunto de ID de grupos de seguridad que utiliza CodeBuild para permitir el acceso a los recursos de la VPC. Para obtener estos ID, ejecute este comando:  

```
aws ec2 describe-security-groups --filters "Name=vpc-id,Values={{<vpc-id>}}" --{{<region-ID>}}
```

#### badgeEnabled
<a name="cli.badgeenabled"></a>

Opcional. Especifica si se deben incluir distintivos de construcción en el proyecto. CodeBuild 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](sample-build-badges.md).

#### logsConfig
<a name="cli.logsconfig"></a>

Un [LogsConfig](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_LogsConfig.html)objeto que contiene información sobre la ubicación de los registros de esta compilación.

**LogsConfig/ cloud WatchLogs**  <a name="cli.logsconfig.cloudwatchlogs"></a>
[CloudWatchLogsConfig](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_CloudWatchLogsConfig.html)Objeto que contiene información sobre cómo enviar registros a Logs. CloudWatch 

logsConfig/**s3Logs**  <a name="cli.logsconfig.s3logs"></a>
[S3LogsConfig](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_S3LogsConfig.html)Objeto que contiene información sobre cómo enviar registros a Amazon S3.

#### archivo SystemLocations
<a name="cli.filesystemlocations"></a>

Opcional. Conjunto de [ProjectFileSystemsLocation](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectFileSystemLocation.html)objetos que contiene información sobre la configuración de Amazon EFS. 

#### construir BatchConfig
<a name="cli.buildbatchconfig"></a>

Opcional. El `buildBatchConfig` objeto es una [ProjectBuildBatchConfig](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectBuildBatchConfig.html)estructura que contiene la información de configuración de construcción por lotes del proyecto.

buildBatchConfig/**ServiceRole**  
ARN del rol de servicio para el proyecto de compilación por lotes.

**build/CombineArtifacts BatchConfig**  
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/restrictions**/**máximo BuildsAllowed  
Número máximo de compilaciones permitidas.

buildBatchConfig/restrictions/**calcular TypesAllowed**  
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](https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html). 

buildBatchConfig/restrictions/**Flotas permitidas**  
Matriz de cadenas que especifican las flotas que se permiten para la compilación por lotes. Consulte [Ejecución de compilaciones en flotas de capacidad reservada](https://docs.aws.amazon.com/codebuild/latest/userguide/fleets.html) para obtener más información. 

**compilar/tiempo de espera BatchConfig InMinutes**  
Cantidad máxima de tiempo, en minutos, en que se debe completar la compilación por lotes.

**compilarBatchConfig/lote ReportMode**   
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.

#### concurrente BuildLimit
<a name="cli.concurrentbuildlimit"></a>

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
<a name="cp-cli-create-project"></a>

Para crear el proyecto, vuelva a ejecutar el comando **[https://docs.aws.amazon.com/cli/latest/reference/codebuild/create-project.html](https://docs.aws.amazon.com/cli/latest/reference/codebuild/create-project.html)** pasando su archivo JSON:

```
aws codebuild create-project --cli-input-json file://{{<json-file>}}
```

Si se ejecuta correctamente, la salida de la consola muestra la representación en JSON de un objeto [Project](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_Project.html). Consulte la [sintaxis de CreateProject respuesta](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_CreateProject.html#API_CreateProject_ResponseSyntax) 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)](change-project.md#change-project-cli).

Para empezar a ejecutar una compilación, consulte [Ejecutar una compilación (AWS CLI)](run-build-cli.md).

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, consulte[Iniciar la ejecución de compilaciones automáticamente (AWS CLI)](run-build-cli-auto-start.md).

## Crea un proyecto de compilación (AWS SDK)
<a name="create-project-sdks"></a>

Para obtener información sobre su uso AWS CodeBuild con los AWS SDK, consulta la. [AWS Referencia de SDK y herramientas](sdk-ref.md)

## Crear un proyecto de compilación (CloudFormation)
<a name="create-project-cloud-formation"></a>

Para obtener información sobre el uso AWS CodeBuild con CloudFormation, consulte [la CloudFormation plantilla CodeBuild](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html) en la *Guía del AWS CloudFormation usuario*.