

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.

# Ejecutar una compilación (AWS CLI)
<a name="run-build-cli"></a>

**nota**  
 CodePipeline Para ejecutar una compilación con AWS CodeBuild, omita estos pasos y siga las instrucciones que se indican en[Cree una canalización que utilice CodeBuild (AWS CLI)](how-to-create-pipeline-cli.md).  
Para obtener más información sobre el uso de AWS CLI with CodeBuild, consulta la[Referencia de la línea de comandos](cmd-ref.md).

1. Ejecute el comando `start-build` de una de las siguientes formas:

   ```
   aws codebuild start-build --project-name {{<project-name>}}
   ```

   Utilice esta opción si desea ejecutar una compilación que utilice la última versión del artefacto de entrada de la compilación y la configuración existente del proyecto de compilación.

   ```
   aws codebuild start-build --generate-cli-skeleton
   ```

   Utilice esta opción si desea ejecutar una versión de compilación con una versión anterior del artefacto de entrada de compilación o si desea anular la configuración de los artefactos de salida de compilación, variables de entorno, especificación de compilación o período de tiempo de espera de compilación predeterminado.

1. Si ejecuta el **start-build** comando con la `--project-name` opción, {{<project-name>}} sustitúyalo por el nombre del proyecto de compilación y, a continuación, vaya al paso 6 de este procedimiento. Para obtener una lista de proyectos de compilación, consulte [Visualización de los nombres de los proyectos de compilación](view-project-list.md).

1. Si ejecuta el comando **start-build** con la opción `--idempotency-token`, se incluye un identificador único en el que se distingue entre mayúsculas y minúsculas, o token, con la solicitud de `start-build`. El token es válido durante 5 minutos después de la solicitud. Si repites la `start-build` solicitud con el mismo token, pero cambias un parámetro, se produce un error de CodeBuild discordancia entre los parámetros.

1. Si ejecuta el **start-build** comando con la `--generate-cli-skeleton` opción, JSON-formatted los datos aparecen en la salida. Copie los datos en un archivo (por ejemplo`{{start-build.json}}`) en una ubicación del equipo o instancia local en la que AWS CLI esté instalado. Modifique los datos copiados para que coincidan con el siguiente formato y guarde los resultados:

   ```
   {
     "projectName": "{{projectName}}",
     "sourceVersion": "{{sourceVersion}}",
     "artifactsOverride": {
       "type": "{{type}}",
       "location": "{{location}}",
       "path": "{{path}}",
       "namespaceType": "{{namespaceType}}",
       "name": "{{artifactsOverride-name}}",
       "packaging": "{{packaging}}"
     },
     "buildspecOverride": "{{buildspecOverride}}",
     "cacheOverride": {
       "location": "{{cacheOverride-location}}",
       "type": "{{cacheOverride-type}}"
     },
     "certificateOverride": "{{certificateOverride}}",
     "computeTypeOverride": "{{computeTypeOverride}}",
     "environmentTypeOverride": "{{environmentTypeOverride}}",
     "environmentVariablesOverride": {
       "name": "{{environmentVariablesOverride-name}}",
       "value": "{{environmentVariablesValue}}",
       "type": "{{environmentVariablesOverride-type}}"
     },
     "gitCloneDepthOverride": "{{gitCloneDepthOverride}}",
     "imageOverride": "{{imageOverride}}",
     "idempotencyToken": "{{idempotencyToken}}",
     "insecureSslOverride": "{{insecureSslOverride}}",
     "privilegedModeOverride": "{{privilegedModeOverride}}",
     "queuedTimeoutInMinutesOverride": "{{queuedTimeoutInMinutesOverride}}",
     "reportBuildStatusOverride": "{{reportBuildStatusOverride}}",
     "timeoutInMinutesOverride": "{{timeoutInMinutesOverride}}",
     "sourceAuthOverride": "{{sourceAuthOverride}}",
     "sourceLocationOverride": "{{sourceLocationOverride}}",
     "serviceRoleOverride": "{{serviceRoleOverride}}",
     "sourceTypeOverride": "{{sourceTypeOverride}}"
   }
   ```

   Reemplace los siguientes marcadores de posición:
   + {{projectName}}: cadena obligatoria. El nombre del proyecto de compilación que desea usar para esta compilación. 
   + {{sourceVersion}}: Cadena opcional. Una versión del código fuente que se va a compilar, como la siguiente:
     + Para Amazon S3, el ID de versión correspondiente a la versión del archivo ZIP de entrada que desea compilar. Si no {{sourceVersion}} se especifica, se utiliza la última versión.
     + Para CodeCommit, el ID de confirmación que corresponde a la versión del código fuente que quieres compilar. Si no {{sourceVersion}} se especifica, se utiliza el ID de confirmación HEAD de la rama predeterminada. (No puedes especificar un nombre de etiqueta{{sourceVersion}}, pero puedes especificar el ID de confirmación de la etiqueta).
     + 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 crear. 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 {{sourceVersion}} se especifica, se utiliza el ID de confirmación HEAD de la rama predeterminada. 
     + 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 {{sourceVersion}} se especifica, se utiliza el ID de confirmación HEAD de la rama predeterminada. 
   + Los siguientes marcadores de posición son para `artifactsOverride`.
     + {{type}}: opcional. El tipo de artefacto de salida de la compilación que invalida el definido en el proyecto de compilación para esta compilación.
     + {{location}}: opcional. La ubicación del artefacto de salida de la compilación que invalida la definida en el proyecto de compilación para esta compilación.
     + {{path}}: opcional. La ruta del artefacto de salida de la compilación que invalida la definida en el proyecto de compilación para esta compilación.
     + {{namespaceType}}: opcional. El tipo de ruta del artefacto de salida de la compilación que invalida el definido en el proyecto de compilación para esta compilación.
     + {{name}}: opcional. El nombre del artefacto de salida de la compilación que invalida el definido en el proyecto de compilación para esta compilación.
     + {{packaging}}: opcional. El tipo de empaquetado del artefacto de salida de la compilación que invalida el definido en el proyecto de compilación para esta compilación.
   + {{buildspecOverride}}: opcional. Declaración de buildspec que invalida la declaración definida en el proyecto de esta compilación. Si se establece este valor, puede ser una definición de buildspec en línea, la ruta a un archivo de buildspec alternativo en relación con el valor de la variable de entorno `CODEBUILD_SRC_DIR` incorporada, o la ruta a un bucket de S3. El bucket de S3 debe estar en la misma región de AWS que el proyecto de compilación. Especifique el archivo buildspec utilizando su ARN (por ejemplo, `arn:aws:s3:::{{<my-codebuild-sample2>}}/buildspec.yml`). 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. 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).
   + Los siguientes marcadores de posición son para `cacheOverride`.
     + {{cacheOverride-location}}: opcional. La ubicación de un objeto `ProjectCache` para esta compilación que anula el objeto `ProjectCache` especificado en el proyecto de compilación. `cacheOverride` es opcional y toma un objeto `ProjectCache`. `location` es obligatorio en un objeto `ProjectCache`.
     + {{cacheOverride-type}}: opcional. El tipo de un objeto `ProjectCache` para esta compilación que anula el objeto `ProjectCache` especificado en el proyecto de compilación. `cacheOverride` es opcional y toma un objeto `ProjectCache`. `type` es obligatorio en un objeto `ProjectCache`.
   + {{certificateOverride}}: opcional. El nombre de un certificado para esta compilación que sustituye el especificado en el proyecto de compilación.
   + {{environmentTypeOverride}}: opcional. Un tipo de contenedor para esta compilación que sustituye el especificado en el proyecto de compilación. La cadena válida actual es `LINUX_CONTAINER`.
   + Los siguientes marcadores de posición son para `environmentVariablesOverride`.
     + {{environmentVariablesOverride-name}}: opcional. El nombre de una variable de entorno del proyecto de compilación cuyo valor desea invalidar para esta compilación.
     + {{environmentVariablesOverride-type}}: opcional. El tipo de variable de entorno del proyecto de compilación cuyo valor desea invalidar para esta compilación.
     + {{environmentVariablesValue}}: opcional. El valor de la variable de entorno definida en el proyecto de compilación que desea invalidar para esta compilación.
   + {{gitCloneDepthOverride}}: opcional. El valor de **Git clone depth** en el proyecto de compilación cuyo valor desea invalidar para esta compilación. Si el tipo de origen es Amazon S3, este valor no se admite.
   + {{imageOverride}}: opcional. El nombre de una imagen para esta compilación que sustituye el especificado en el proyecto de compilación.
   + {{idempotencyToken}}: opcional. Una cadena que sirve de token para especificar que la solicitud de compilación es idempotente. Puede elegir cualquier cadena de 64 caracteres o menos. El token es válido durante 5 minutos después de la solicitud de inicio de la compilación. Si repites la solicitud de inicio de compilación con el mismo token, pero cambias un parámetro, se generará un error de CodeBuild discordancia entre los parámetros. 
   + {{insecureSslOverride}}: booleano opcional que especifica si se debe anular la configuración de TLS insegura especificada en el proyecto de compilación. La configuración de TLS no segura determina si deben omitirse las advertencias de TLS al conectarse al código fuente del proyecto. Esta anulación solo se aplica si la fuente de la compilación es Enterprise Server. GitHub 
   + {{privilegedModeOverride}}: booleano opcional. Si se establece en true, la compilación sustituye el modo privilegiado en el proyecto de compilación.
   +  {{queuedTimeoutInMinutesOverride}}: número entero opcional que especifica el número de minutos que se permite que una compilación permanezca en cola antes de que se agote el tiempo de espera. Su valor mínimo es de cinco minutos y su valor máximo es 480 minutos (ocho horas). 
   + {{reportBuildStatusOverride}}: booleano opcional que especifica si se debe enviar al proveedor de fuentes 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á un mensaje no válidoInputException .
   + {{sourceAuthOverride}}: cadena opcional. Un tipo de autorización para esta compilación que sustituye la definida en el proyecto de compilación. Esta anulación solo se aplica si la fuente del proyecto de compilación es Bitbucket o. GitHub
   + {{sourceLocationOverride}}: cadena opcional. Una ubicación que sustituye la ubicación de código fuente de este proyecto por la definida en el proyecto de compilación.
   + {{serviceRoleOverride}}: Cadena opcional. El nombre de un rol de servicio para esta compilación que sustituye el especificado en el proyecto de compilación.
   + {{sourceTypeOverride}}: Cadena opcional. Un tipo de entrada de código fuente para esta compilación que sustituye la entrada de código fuente definida en el proyecto de compilación. Las cadenas válidas son `NO_SOURCE`, `CODECOMMIT`, `CODEPIPELINE`, `GITHUB`, `S3`, `BITBUCKET` y `GITHUB_ENTERPRISE`.
   + {{timeoutInMinutesOverride}}: Número opcional. El número de minutos de tiempo de espera de la compilación que invalida el definido en el proyecto de compilación para esta compilación. 

   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 de parámetros de Amazon EC2 Systems Manager. CodeBuild puede usar un parámetro almacenado en el almacén de parámetros de Amazon EC2 Systems Manager solo si el nombre de ese parámetro comienza `/CodeBuild/` por (por ejemplo`/CodeBuild/dockerLoginPassword`,). Puede utilizar la CodeBuild consola para crear un parámetro en Amazon EC2 Systems Manager. Elija **Crear un parámetro** y siga las instrucciones. (En ese cuadro de diálogo, en **Clave de KMS**, puede especificar si lo desea el ARN de una clave de AWS KMS 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 inicia el parámetro con el momento en que `/CodeBuild/` se está almacenando. Sin embargo, si utiliza la consola del almacén de parámetros de Amazon EC2 Systems Manager para crear un parámetro, el nombre del parámetro debe comenzar por `/CodeBuild/` y debe establecer **Tipo** en **Cadena segura**. Para obtener más información, consulte [Almacenamiento de parámetros de AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html) y [Tutorial : Crear y probar un parámetro de cadena de caracteres (consola)](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-console.html) 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 anteriormente seleccionaste **Crear un nuevo rol de servicio en tu cuenta**, CodeBuild incluye automáticamente esta acción en el rol de servicio predeterminado de tu proyecto de compilación. Sin embargo, si se ha seleccionado **Seleccionar un rol de servicio existente de su cuenta**, debe incluir esta acción en su rol de servicio por separado.

   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 de la variable de entorno 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 del archivo buildspec tiene la prioridad más baja.

   Para obtener información sobre los valores válidos para estos marcadores de posición, consulte [Crear un proyecto de compilación (AWS CLI)](create-project.md#create-project-cli). Para obtener una lista de las últimas opciones de configuración de un proyecto de compilación, consulte [Visualización de los detalles de un proyecto de compilación](view-project-details.md).

1. Cambie al directorio que contiene el archivo que acaba de guardar y ejecute de nuevo el comando `start-build`.

   ```
   aws codebuild start-build --cli-input-json file://start-build.json
   ```

1. Si el comando se ejecuta correctamente, aparecerán datos similares a los que se describen en el procedimiento [Para ejecutar la compilación](getting-started-overview.md#getting-started-run-build-cli) en el resultado.

Para trabajar con información detallada acerca de esta compilación, anote el valor de `id` en la salida y después consulte [Ver detalles de las compilaciones (AWS CLI)](view-build-details.md#view-build-details-cli).