

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.

# Ejecutor BuildLite autogestionado en AWS CodeBuild
<a name="buildkite-runner"></a>

Puedes configurar tu proyecto para configurar ejecutores de Buildkite autohospedados en CodeBuild contenedores para procesar tus trabajos de Buildkite. Puedes hacerlo configurando un webhook con tu CodeBuild proyecto y actualizando los pasos de YAML de Buildkite Pipeline para usar ejecutores autohospedados alojados en máquinas. CodeBuild 

Los pasos generales para configurar un CodeBuild proyecto para ejecutar tareas de Buildkite son los siguientes:
+ Ve a la CodeBuild consola y crea un CodeBuild proyecto con la configuración del tipo ejecutor de proyectos de Buildkite
+ Agregue un webhook de `job.scheduled` a su organización de Buildkite.
+ Actualice los pasos de YAML de canalización de Buildkite en Buildkite para configurar el entorno de compilación.

Para obtener un procedimiento más detallado, consulte [Tutorial: Configurar un CodeBuild ejecutor Buildkite alojado](sample-runner-buildkite.md). Esta función permite que sus trabajos de Buildkite se integren de forma nativa AWS, lo que proporciona seguridad y comodidad a través de funciones como IAM AWS Secrets Manager, AWS CloudTrail y Amazon VPC. Puede acceder a los tipos de instancias más recientes, incluidas las basadas en ARM.

# Acerca del ejecutor Buildkite alojado CodeBuild
<a name="buildkite-runner-about"></a>

Las siguientes son algunas de las preguntas más frecuentes sobre el ejecutor Buildkite alojado en CodeBuild él.

## ¿Cuándo debo incluir las anulaciones de instancias e imágenes en la etiqueta?
<a name="buildkite-runner-about-overrides"></a>

Puede incluir las anulaciones de instancias e imágenes en la etiqueta a fin de especificar distintos entornos de compilación para cada uno de sus trabajos de Buildkite. Esto se puede hacer sin necesidad de crear varios CodeBuild proyectos o webhooks. Por ejemplo, es útil cuando necesita usar una [matriz para trabajos de Buildkite](https://buildkite.com/docs/pipelines/configure/workflows/build-matrix).

```
agents:
  queue: "myQueue"
steps:
  - command: "echo \"Hello World\""
    agents:
      project: "codebuild-myProject"
      image: "{{matrix.os}}"
      instance-size: "{{matrix.size}}"
    matrix:
      setup:
        os:
          - "arm-3.0"
          - "al2-5.0"
        size:
          - "small"
          - "large"
```

## ¿Puedo CodeBuild crear webhooks en Buildkite automáticamente?
<a name="buildkite-runner-about-auto-create"></a>

Actualmente, Buildkite requiere que todos los webhooks se creen manualmente usando su consola. Puede seguir el tutorial en [Tutorial: Configurar un CodeBuild ejecutor Buildkite alojado](sample-runner-buildkite.md) para crear un webhook de Buildkite manualmente en la consola de Buildkite.

## ¿Puedo usarlos CloudFormation para crear webhooks en Buildkite?
<a name="buildkite-runner-about-cloudformation"></a>

CloudFormation Actualmente no es compatible con los webhooks de Buildkite Runner, ya que Buildkite requiere que los webhooks se creen manualmente desde su consola.

## ¿Qué regiones admiten el uso de un corredor de Buildkite alojado? CodeBuild
<a name="buildkite-runner-about-regions"></a>

CodeBuildLos ejecutores de Buildkite alojados en él son compatibles en todas las regiones. CodeBuild Para obtener más información sobre AWS las regiones en las que CodeBuild está disponible, consulta [AWS Servicios](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/) por región.

# Tutorial: Configurar un CodeBuild ejecutor Buildkite alojado
<a name="sample-runner-buildkite"></a>

Este tutorial te muestra cómo configurar tus CodeBuild proyectos para ejecutar trabajos de Buildkite. Para obtener más información sobre el uso de Buildkite con, consulte. CodeBuild [Ejecutor BuildLite autogestionado en AWS CodeBuild](buildkite-runner.md)<a name="sample-runner-buildkite-prerequisites"></a>

Para completar este tutorial, primero debe:
+ Tener acceso a una organización de Buildkite. Para obtener más información sobre cómo configurar una cuenta y una organización de Buildkite, puede seguir este [Tutorial de introducción](https://buildkite.com/docs/pipelines/getting-started).
+ Cree una canalización, un clúster y una cola de Buildkite configurados para usar ejecutores autoalojados. Para obtener más información sobre la configuración de estos recursos, puede consultar el [Tutorial de configuración de canalización de Buildkite](https://buildkite.com/docs/pipelines/create-your-own).  
![\[Compilación de un proyecto en Buildkite\]](http://docs.aws.amazon.com/es_es/codebuild/latest/userguide/images/buildkite-first.png)

## Paso 1: generación de un token de agente de Buildkite
<a name="w2aac26c33c12c13b7"></a>

En este paso, generarás un token de agente en Buildkite que se utilizará para autenticar a los corredores autohospedados. CodeBuild Para obtener más información sobre este recurso, consulte [Buildkite Agent Tokens](https://buildkite.com/docs/agent/v3/tokens). 

**Generación de un token de agente de Buildkite**

1. En el clúster de Buildkite, elija **Tokens de agente** y, a continuación, **Nuevo token**.

1. Agregue una descripción al token y haga clic en **Crear token**.

1. Guarda el valor del token del agente, ya que se utilizará más adelante durante la configuración del proyecto. CodeBuild   
![\[Tokens de agente en Buildkite\]](http://docs.aws.amazon.com/es_es/codebuild/latest/userguide/images/buildkite-createtoken.png)

## Paso 2: Crea un CodeBuild proyecto con un webhook
<a name="sample-runner-buildkite-create-project"></a>

**Para crear un CodeBuild proyecto con un webhook**

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

1. Cree un proyecto de compilación autoalojado. Para obtener más información, consulte [Creación de un proyecto de compilación (consola)](create-project.md#create-project-console) y [Ejecutar una compilación (consola)](run-build-console.md).
   +  En **Project Configurator**, seleccione **Proyecto de ejecutor**. En **Ejecutor**: 
     +  En **Proveedor de ejecutor**, elija **Buildkite**.
     + En **Token de agente de Buildkite**, seleccione **Crear un nuevo token de agente mediante la página de creación de secreto**. Se te pedirá que crees un nuevo código secreto AWS Secrets Manager con un valor secreto igual al token de agente de Buildkite que generaste anteriormente.
     + (Opcional) Si quieres usar credenciales CodeBuild administradas para tu trabajo, selecciona el proveedor del repositorio de origen de tu trabajo en las **opciones de credenciales de origen de Buildkite** y verifica que las credenciales estén configuradas para tu cuenta. Además, verifique que la canalización de Buildkite utilice **Extracción mediante HTTPS**.
**nota**  
Buildkite requiere credenciales de código fuente en el entorno de compilación para poder extraer el código fuente del trabajo. Consulte en [Autenticación de Buildkite en un repositorio privado](#sample-runner-buildkite-config) las opciones de credenciales de código fuente disponibles.
   + (Opcional) En **Entorno**: 
     + Elija una **Imagen del entorno** y una **Computación** compatibles. 

       Tenga en cuenta que tiene la opción de anular la configuración de imagen e instancia mediante una etiqueta en los pasos de YAML de Buildkite. Para obtener más información, consulte [Paso 4: actualización de los pasos de la canalización de Buildkite](#sample-runner-buildkite-update-pipeline).
   + (Opcional) En **Buildspec**: 
     + La buildspec se ignorará de forma predeterminada a menos que se agregue `buildspec-override: "true"` como etiqueta. En su lugar, las CodeBuild anulará para usar comandos que configurarán el ejecutor autohospedado.
**nota**  
CodeBuild no admite archivos de especificaciones de compilación para compilaciones de ejecutores autohospedados por Buildkite. Para las especificaciones de compilación integradas, tendrás que habilitarlas en tu especificación de compilación si has configurado las credenciales de fuente [ git-credential-helper](https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html#build-spec.env.git-credential-helper)gestionada CodeBuild 

1. Continúe con los valores predeterminados y, a continuación, elija **Crear el proyecto de compilación**.

1. Guarde los valores de **URL de carga útil** y **Secreto** de la ventana emergente **Crear webhook**. Siga las instrucciones de la ventana emergente para crear un nuevo webhook de organización de Buildkite o continúe con la siguiente sección.

## Paso 3: Crea un webhook en Buildkite CodeBuild
<a name="sample-runner-buildkite-codebuild-webhook"></a>

En este paso, utilizarás la **URL de carga útil** y los valores **secretos** del CodeBuild webhook para crear un nuevo webhook en Buildkite. Este webhook se usará para activar las compilaciones internas CodeBuild cuando se inicie un trabajo válido de Buildkite.

**Cómo crear un nuevo webhook en Buildkite**

1. Vaya a la página **Configuración** de la organización de Buildkite.

1. En **Integraciones**, seleccione **Servicios de notificación**.

1. Seleccione **Agregar** junto a la casilla **Webhook**. En la página **Agregar notificación de webhook**, use la siguiente configuración:

   1. En **URL de webhook**, agregue el valor de **URL de carga útil** guardado.

   1. En **Token**, verifica que la opción **Enviar el token como X-Buildkite-Token** esté seleccionada. Agregue el valor de **Secreto** de webhook al campo **Token**.

   1. En, compruebe que esté seleccionada **la opción Enviar el token como X-Buildkite-Token**. Agregue el valor de **Secreto** de webhook al campo **Token**.

   1. En **Eventos**, seleccione el evento del webhook `job.scheduled`.

   1. (Opcional) En **Canalizaciones**, puede elegir opcionalmente desencadenar solo las compilaciones de una canalización específica.

1. Seleccione **Agregar notificación de webhook.**

## Paso 4: actualización de los pasos de la canalización de Buildkite
<a name="sample-runner-buildkite-update-pipeline"></a>

En este paso, actualizará los pasos de la canalización de Buildkite para agregar las etiquetas necesarias y las anulaciones opcionales. Para ver la lista completa de las anulaciones de etiquetas admitidas, consulte [El ejecutor de Buildkite alojado en Buildkite admite anulaciones de CodeBuild etiquetas](buildkite-runner-update-labels.md).

**Actualización de los pasos de la canalización**

1. Vaya a la página de pasos de la canalización de Buildkite seleccionando la canalización de Buildkite, luego **Configuración** y, por último, **Pasos**.

   Si aún no lo ha hecho, elija **Convertir a pasos de YAML**.  
![\[Pasos para actualizar YAML.\]](http://docs.aws.amazon.com/es_es/codebuild/latest/userguide/images/buildkite-steps.png)

1. Como mínimo, tendrás que especificar una [etiqueta de agente de Buildkite](https://buildkite.com/docs/agent/v3/cli-start#agent-targeting) que haga referencia al nombre de tu canalización. CodeBuild El nombre del proyecto es necesario para vincular los ajustes AWS relacionados con tu trabajo de Buildkite a un proyecto específico. CodeBuild Al incluir el nombre del proyecto en el YAML, CodeBuild se pueden invocar trabajos con la configuración de proyecto correcta.

   ```
   agents:
     project: "codebuild-<project name>"
   ```

   A continuación, se muestra un ejemplo de pasos de canalización de Buildkite solo con la etiqueta del proyecto:

   ```
   agents:
     project: "codebuild-myProject"
   steps:
     - command: "echo \"Hello World\""
   ```

   También puede anular el tipo de computación e imagen en la etiqueta. Consulte [Calcule imágenes compatibles con el CodeBuild ejecutor Buildkite alojado](buildkite-runner-update-yaml.images.md) para obtener una lista de las imágenes disponibles. El tipo de computación y la imagen de la etiqueta anularán la configuración del entorno en el proyecto. Para anular la configuración de su entorno para una compilación de procesamiento CodeBuild EC2 o Lambda, utilice la siguiente sintaxis:

   ```
   agents:
     project: "codebuild-<project name>"
     image: "<environment-type>-<image-identifier>"
     instance-size: "<instance-size>"
   ```

   A continuación, se muestra un ejemplo de pasos de canalización de Buildkite con anulaciones de tamaño de imagen e instancia:

   ```
   agents:
     project: "codebuild-myProject"
     image: "arm-3.0"
     instance-size: "small"
   steps:
     - command: "echo \"Hello World\""
   ```

   Puede anular la flota utilizada para su compilación en la etiqueta. Al hacerlo, se anularán los valores de flota configurados en el proyecto para usar la flota especificada. Para obtener más información, consulte [Ejecución de compilaciones en flotas de capacidad reservada](https://docs.aws.amazon.com/codebuild/latest/userguide/fleets.html).

   Si quiere anular la configuración de la flota para una compilación de computación de Amazon EC2, utilice la siguiente sintaxis:

   ```
   agents:
     project: "codebuild-<project name>"
     fleet: "<fleet-name>"
   ```

   Para anular tanto la flota como la imagen utilizadas para la compilación, utilice la sintaxis siguiente:

   ```
   agents:
     project: "codebuild-<project name>"
     fleet: "<fleet-name>"
     image: "<environment-type>-<image-identifier>"
   ```

   A continuación, se muestra un ejemplo de pasos de canalización de Buildkite con anulaciones de flota e imagen:

   ```
   agents:
     project: "codebuild-myProject"
     fleet: "myFleet"
     image: "arm-3.0"
   steps:
     - command: "echo \"Hello World\""
   ```

1. Puede optar por ejecutar comandos buildspec integrados durante la compilación del ejecutor autoalojado en Buildkite (consulte [Ejecución de comandos buildspec durante las fases INSTALL, PRE\$1BUILD y POST\$1BUILD](sample-runner-buildkite-buildspec.md) para obtener más información). Para especificar que la CodeBuild compilación debe ejecutar los comandos buildspec durante la compilación del ejecutor autohospedado de Buildkite, utilice la siguiente sintaxis:

   ```
   agents:
     project: "codebuild-<project name>"
     buildspec-override: "true"
   ```

   A continuación, se muestra un ejemplo de canalización de Buildkite con anulaciones de buildspec:

   ```
   agents:
     project: "codebuild-myProject"
     buildspec-override: "true"
   steps:
     - command: "echo \"Hello World\""
   ```

1. De forma opcional, puedes proporcionar etiquetas distintas de las compatibles. CodeBuild Estas etiquetas se ignorarán para el fin de anular los atributos de la compilación, pero no provocarán un error de la solicitud de webhook. Por ejemplo, agregar `myLabel: “testLabel"` como etiqueta no impedirá que la compilación se ejecute.

## Paso 5: Revisa los resultados
<a name="sample-runner-buildkite-verify"></a>

Cada vez que se inicie un trabajo de Buildkite en tu cartera, CodeBuild recibirás un evento de webhook a través del `job.scheduled` webhook de Buildkite. Para cada trabajo de tu compilación de Buildkite, se CodeBuild iniciará una compilación para ejecutar un corredor efímero de Buildkite. El ejecutor es responsable de ejecutar un único trabajo de Buildkite. Una vez que se complete el trabajo, el ejecutor y el proceso de compilación asociado finalizarán de forma inmediata.

Para ver los registros de trabajos de flujo de trabajo, navegue hasta la canalización de Buildkite y seleccione la compilación más reciente (para desencadenar una nueva compilación, seleccione **Nueva compilación**). Una vez que la CodeBuild compilación asociada a cada uno de tus trabajos comience y recoja el trabajo, deberías ver los registros del trabajo en la consola de Buildkite

![\[Revise los resultados.\]](http://docs.aws.amazon.com/es_es/codebuild/latest/userguide/images/buildkite-log.png)


## Autenticación de Buildkite en un repositorio privado
<a name="sample-runner-buildkite-config"></a>

Si tiene un repositorio privado configurado en la canalización de Buildkite, Buildkite requiere [permisos adicionales en el entorno de compilación](https://buildkite.com/docs/agent/v3/github-ssh-keys) para extraer el repositorio, ya que Buildkite no vende credenciales a ejecutores autoalojados para que las extraigan de repositorios privados. Para autenticar el agente de ejecutor autoalojado en Buildkite en el repositorio de código fuente privado externo, puede usar una de las siguientes opciones.

**Para autenticarte con CodeBuild**

CodeBuild ofrece la gestión de credenciales gestionadas para los tipos de fuentes compatibles. Para usar las credenciales de CodeBuild origen para acceder al repositorio de fuentes de su trabajo, puede seguir los siguientes pasos:

1. En la CodeBuild consola, vaya a **Editar proyecto** o cree un CodeBuild proyecto nuevo siguiendo los pasos que se indican[Paso 2: Crea un CodeBuild proyecto con un webhook](#sample-runner-buildkite-create-project).

1. En **Opciones de credenciales de origen de Buildkite**, seleccione el proveedor de repositorio de origen del trabajo.

   1. Si desea utilizar CodeBuild credenciales a nivel de cuenta, compruebe que estén configuradas correctamente. Además, si tu proyecto tiene una especificación de compilación integrada configurada, comprueba que esté habilitada. [ git-credential-helper](https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html#build-spec.env.git-credential-helper)

   1. Si quieres usar credenciales a nivel de proyecto, selecciona **Usar CodeBuild credenciales de anulación solo para este proyecto y configura las credenciales para** tu proyecto.

1. En la configuración de la canalización de Buildkite, vaya a **Configuración del repositorio**. Establezca la configuración de extracción del repositorio de código fuente en **Extracción mediante HTTPS**  
![\[Revise los resultados.\]](http://docs.aws.amazon.com/es_es/codebuild/latest/userguide/images/buildkite-repo-https.png)

**Cómo autenticarse con secretos de Buildkite**

Buildkite mantiene un [complemento ssh-checkout](https://github.com/buildkite-plugins/git-ssh-checkout-buildkite-plugin) que se puede utilizar para autenticar el ejecutor autoalojado en un repositorio de código fuente externo mediante una clave ssh. El valor de clave se guarda como [Secreto de Buildkite](https://buildkite.com/docs/pipelines/security/secrets/buildkite-secrets) y el agente de ejecutor autoalojado en Buildkite lo recupera automáticamente al intentar acceder a un repositorio privado. Para configurar el complemento ssh-checkout para la canalización de Buildkite, puede seguir estos pasos:

1. Genere una clave ssh privada y pública con su dirección de correo electrónico, p. ej. `ssh-keygen -t rsa -b 4096 -C "myEmail@address.com"`

1. Agregue la clave pública al repositorio de código fuente privado. Por ejemplo, puedes seguir [esta guía](https://docs.github.com/en/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account) para añadir una clave a una GitHub cuenta.

1. Agregue una [nueva clave SSH secreta](https://buildkite.com/docs/pipelines/hosted-agents/code-access#private-repositories-with-other-providers-add-the-ssh-key-secret) al clúster de Buildkite. En el clúster de Buildkite, seleccione **Secretos** → **Nuevo secreto**. Agregue un nombre para el secreto en el campo **Clave** y agregue la clave SSH privada al campo **Valor**:  
![\[Revise los resultados.\]](http://docs.aws.amazon.com/es_es/codebuild/latest/userguide/images/buildkite-secret.png)

1. En la canalización de Buildkite, navegue hasta la configuración del repositorio y configure el proceso de extracción para que use **SSH**.  
![\[Revise los resultados.\]](http://docs.aws.amazon.com/es_es/codebuild/latest/userguide/images/buildkite-repo.png)

1. Actualice los pasos de YAML de la canalización para usar el complemento `git-ssh-checkout`. Por ejemplo, el siguiente archivo YAML de canalización utiliza la acción de extracción con la clave del secreto de Buildkite anterior:

   ```
   agents:
     project: "codebuild-myProject"
   steps:
     - command: "npm run build"
       plugins:
         - git-ssh-checkout#v0.4.1:
             ssh-secret-key-name: 'SOURCE_SSH_KEY'
   ```

1. Al ejecutar un trabajo de ejecución autohospedado en Buildkite CodeBuild, Buildkite ahora usará automáticamente el valor secreto que hayas configurado al acceder a tu repositorio privado

## Opciones de configuración del ejecutor
<a name="sample-buildkite-runner-auth"></a>

Puede especificar las siguientes variables de entorno en la configuración del proyecto para modificar la configuración de instalación de los ejecutores autoalojados:
+ `CODEBUILD_CONFIG_BUILDKITE_AGENT_TOKEN`: CodeBuild obtendrá el valor secreto configurado como el valor de esta variable de entorno para registrar el agente de ejecución autohospedado AWS Secrets Manager de Buildkite. Esta variable de entorno debe ser de tipo `SECRETS_MANAGER` y el valor debe ser el nombre del secreto en Secrets Manager. Se requiere una variable de entorno de token de agente de Buildkite para todos los proyectos de ejecutor de Buildkite.
+ `CODEBUILD_CONFIG_BUILDKITE_CREDENTIAL_DISABLE`: De forma predeterminada, CodeBuild cargará las credenciales de origen a nivel de cuenta o proyecto en el entorno de compilación, ya que el agente de Buildkite utiliza estas credenciales para acceder al repositorio fuente de la tarea. Para deshabilitar este comportamiento, puede agregar esta variable de entorno al proyecto con el valor establecido en `true`, lo que evitará que las credenciales de código fuente se carguen en el entorno de compilación.

# Ejecución de comandos buildspec durante las fases INSTALL, PRE\$1BUILD y POST\$1BUILD
<a name="sample-runner-buildkite-buildspec"></a>

De forma predeterminada, CodeBuild ignora cualquier comando de buildspec al ejecutar una compilación autohospedada de Buildkite Runner. Para ejecutar comandos buildspec durante la compilación, 

```
buildspec-override: "true"
```

 se puede agregar como sufijo a la etiqueta:

```
agents:
  project: "codebuild-<project name>"
  buildspec-override: "true"
```

Al usar este comando, CodeBuild se creará una carpeta llamada `buildkite-runner` carpeta de origen principal del contenedor. Cuando el ejecutor de Buildkite se inicia durante la fase `BUILD`, el ejecutor se ejecutará en el directorio `buildkite-runner`.

Existen varias limitaciones al usar una anulación de buildspec en una compilación de Buildkite autoalojada:
+ El agente de Buildkite requiere que haya credenciales de código fuente en el entorno de compilación para extraer el repositorio de código fuente del trabajo. Si utilizas las credenciales CodeBuild de origen para la autenticación, tendrás que habilitarlas `git-credential-helper` en tu buildspec. Por ejemplo, puede usar la siguiente builspec para habilitar `git-credential-helper` en las compilaciones de Buildkite:

  ```
  version: 0.2
  env:
    git-credential-helper: yes
  phases:
    pre_build:
      commands:
         - echo "Hello World"
  ```
+ CodeBuild no ejecutará los comandos buildspec durante la `BUILD` fase, ya que el ejecutor autohospedado se ejecuta en la fase. `BUILD`
+ CodeBuild no admite los archivos buildspec para las compilaciones de Buildkite Runner. Solo se admiten buildspecs integradas para ejecutores autoalojados en Buildlkite
+ Si un comando de compilación falla en la `INSTALL` fase `PRE_BUILD` o, no CodeBuild se iniciará el ejecutor autohospedado y será necesario cancelar la tarea de Buildkite manualmente.

# Configuración de un ejecutor de Buildkite mediante programación
<a name="sample-runner-buildkite-CLI"></a>

Para configurar un proyecto de ejecutor de Buildkite mediante programación, deberá configurar los siguientes recursos:

**Cómo crear un ejecutor de Buildkite mediante programación**

1. Cree un token de agente de Buildkite y guárdelo en texto sin formato en AWS Secrets Manager.

1. Configura un CodeBuild proyecto con la configuración que prefieras. Deberá configurar los siguientes atributos adicionales:

   1. Un valor de entorno con nombre `CODEBUILD_CONFIG_BUILDKITE_AGENT_TOKEN`, tipo `SECRETS_MANAGER` y un valor igual al token de agente de Buildkite asociado al clúster de Buildkite.

   1. Tipo de código fuente igual a `NO_SOURCE`

   1. Permisos para acceder al secreto creado en el paso 1 en el rol de servicio del proyecto

   Por ejemplo, puede usar el siguiente comando para crear un proyecto de ejecutor de Buildkite válido a través de la CLI:

   ```
   aws codebuild create-project \
   --name buildkite-runner-project \
   --source "{\"type\": \"NO_SOURCE\",\"buildspec\":\"\"}" \
   --environment "{\"image\":\"aws/codebuild/amazonlinux-x86_64-standard:5.0\",\"type\":\"LINUX_CONTAINER\",\"computeType\":\"BUILD_GENERAL1_MEDIUM\",\"environmentVariables\":[{\"name\":\"CODEBUILD_CONFIG_BUILDKITE_AGENT_TOKEN\",\"type\":\"SECRETS_MANAGER\",\"value\":\"<buildkite-secret-name>\"}]}" \
   --artifacts "{\"type\": \"NO_ARTIFACTS\"}" \
   --service-role <service-role>
   ```

1. Cree un webhook de ejecutor de Buildkite en el proyecto creado en el paso 2. Deberá usar las siguientes opciones de configuración al crear el webhook:

   1. **build-type** debe ser igual `RUNNER_BUILDKITE_BUILD`

   1. Un filtro con un tipo `EVENT` y un patrón igual a `WORKFLOW_JOB_QUEUED` 

   Por ejemplo, puede usar el siguiente comando para crear un proyecto de ejecutor de webhook válido a través de la CLI:

   ```
   aws codebuild create-webhook \
   --project-name buildkite-runner-project \
   --filter-groups "[[{\"type\":\"EVENT\",\"pattern\":\"WORKFLOW_JOB_QUEUED\"}]]" \
   --build-type RUNNER_BUILDKITE_BUILD
   ```

1. Guarde los valores de **URL de carga útil** y **Secreto** devueltos por la llamada `create-webhook` y use las credenciales para crear un webhook en la consola de Buildkite. Puedes consultar el paso 3: Crear un CodeBuild webhook en Buildkite [Tutorial: Configurar un CodeBuild ejecutor Buildkite alojado](sample-runner-buildkite.md) para obtener una guía sobre cómo configurar este recurso.

# Solución de problemas del webhook en caso de compilaciones fallidas o un trabajo pendientes
<a name="buildkite-runner-troubleshoot-webhook"></a>

 **Problema: ** 

El webhook que ha configurado en [Tutorial: Configurar un CodeBuild ejecutor Buildkite alojado](sample-runner-buildkite.md) no funciona o el trabajo del flujo de trabajo está pendiente en Buildkite.

 **Posibles causas:** 
+ Puede que el evento **job.scheduled** del webhook no pueda desencadenar una compilación. Revise los registros de **Respuesta** para ver la respuesta o el mensaje de error.
+ Tu CodeBuild compilación falla antes de iniciar el agente de ejecución autohospedado de Buildkite para que se encargue de tu trabajo.

 **Soluciones recomendadas:** 

Cómo depurar eventos de webhook de Buildkite fallidos:

1. **En la configuración de tu organización de Buildkite, ve a los **Servicios de Notificación**, selecciona tu CodeBuild webhook y, a continuación, busca el registro de solicitudes.**

1. Busque el evento de webhook `job.scheduled` asociado al trabajo de Buildkite bloqueado. Puede usar el campo de ID de trabajo en la carga útil del webhook para correlacionar el evento del webhook con el trabajo de Buildkite.

1. Seleccione la pestaña **Respuesta** y compruebe el cuerpo de la respuesta. Compruebe que el código de estado de **Respuesta** es `200` y el cuerpo de **Respuesta** no contiene ningún mensaje inesperado.  
![\[Respuesta para el webhook.\]](http://docs.aws.amazon.com/es_es/codebuild/latest/userguide/images/buildkite-request.png)

# Solución de problemas de permisos del webhook
<a name="buildkite-runner-troubleshoot-webhook-permissions"></a>

 **Problema: ** 

La tarea de Buildkite no puede acceder al repositorio de código fuente del trabajo debido a problemas con los permisos.

 **Posibles causas:** 
+ CodeBuild no tiene permisos suficientes para consultar el repositorio de origen del trabajo.
+ La configuración del repositorio de la canalización está configurada para que las credenciales CodeBuild administradas se comprueben mediante SSH.

 **Soluciones recomendadas:** 
+ Compruebe que CodeBuild tiene configurados los permisos suficientes para consultar el repositorio de origen del trabajo. Además, compruebe que el rol de servicio de su CodeBuild proyecto tenga permisos suficientes para acceder a la opción de permiso de origen configurada.
+ Comprueba que tu canalización de Buildkite esté configurada para utilizar el proceso de pago mediante HTTPS si utilizas credenciales de repositorio de fuentes CodeBuild gestionadas.

# El ejecutor de Buildkite alojado en Buildkite admite anulaciones de CodeBuild etiquetas
<a name="buildkite-runner-update-labels"></a>

En las etiquetas de agente de los pasos de canalización de Buildkite, puede proporcionar una variedad de anulaciones de etiquetas que modifiquen la compilación del ejecutor autoalojado. Cualquier compilación que no reconozca se CodeBuild ignorará, pero no rechazará tu solicitud de webhook. Por ejemplo, el siguiente YAML de flujo de trabajo incluye anulaciones para imagen, tamaño de instancia, flota y buildspec:

```
agents:
  queue: "myQueue"
steps:
  - command: "echo \"Hello World\""
    agents:
      project: "codebuild-myProject"
      image: "{{matrix.os}}"
      instance-size: "{{matrix.size}}"
      buildspec-override: "true"
    matrix:
      setup:
        os:
          - "arm-3.0"
          - "al2-5.0"
        size:
          - "small"
          - "large"
```

 `project:codebuild-<project-name>` (obligatorio)
+ Ejemplo: `project: "codebuild-myProject"`
+ Necesario para todas las configuraciones de pasos de canalización de Buildkite. *<project name>*debe ser igual al nombre del proyecto para el que está configurado el webhook del ejecutor autohospedado.

`queue: "<queue-name>"`
+ Ejemplo: `queue: "<queue-name>"`
+ Se usa para enrutar los trabajos de Buildkite a una cola específica. Consulte [Buildkite Agent Queue Tag](https://buildkite.com/docs/agent/v3/cli-start#the-queue-tag) para obtener más información.

 `image: "<environment-type>-<image-identifier>"` 
+ Ejemplo: `image: "arm-3.0"`
+ Anula la imagen y el tipo de entorno utilizados al iniciar la compilación del ejecutor autoalojado con una imagen seleccionada. Para obtener más información sobre los valores admitidos, consulte [Calcule imágenes compatibles con el CodeBuild ejecutor Buildkite alojado](buildkite-runner-update-yaml.images.md).

  1. Para anular la imagen y el tipo de entorno utilizados con una imagen personalizada, utilice `image: "custom-<environment-type>-<custom-image-identifier>"`

  1. Ejemplo: 

     ```
     image:
           "custom-arm-public.ecr.aws/codebuild/amazonlinux-aarch64-standard:3.0"
     ```
**nota**  
Si la imagen personalizada reside en un registro privado, debes configurar las credenciales de registro adecuadas en tu CodeBuild proyecto.

`instance-size: "<instance-size>"`
+ Ejemplo: `instance-size: "medium"`
+ Anula el tipo de instancia utilizado al iniciar la compilación del ejecutor autoalojado. Para obtener más información sobre los valores admitidos, consulte [Calcule imágenes compatibles con el CodeBuild ejecutor Buildkite alojado](buildkite-runner-update-yaml.images.md).

`fleet: "<fleet-name>"`
+ Ejemplo: `fleet: "myFleet"`
+ Anula la configuración de flota establecida en el proyecto para usar la flota especificada. Para obtener más información, consulte [Ejecución de compilaciones en flotas de capacidad reservada](https://docs.aws.amazon.com/codebuild/latest/userguide/fleets.html).

`buildspec-override: "<boolean>"`
+ Ejemplo: `buildspec-override: "true"`
+ Permite que la compilación ejecute comandos buildspec en las fases `INSTALL`, `PRE_BUILD` y `POST_BUILD` si está establecido en `true`.

# Calcule imágenes compatibles con el CodeBuild ejecutor Buildkite alojado
<a name="buildkite-runner-update-yaml.images"></a>

En la etiqueta que configuró[Ejecutor BuildLite autogestionado en AWS CodeBuild](buildkite-runner.md), puede anular la configuración del entorno de Amazon EC2 utilizando los valores de las tres primeras columnas. CodeBuild proporciona las siguientes imágenes informáticas de Amazon EC2. Para obtener más información acerca de 

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/codebuild/latest/userguide/buildkite-runner-update-yaml.images.html)

Además, puede anular la configuración del entorno de Lambda mediante los siguientes valores. Para obtener más información sobre la computación CodeBuild Lambda, consulte. [Ejecute compilaciones en el AWS Lambda cómputo](lambda.md) CodeBuild admite las siguientes imágenes de procesamiento Lambda:

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/codebuild/latest/userguide/buildkite-runner-update-yaml.images.html)

Para obtener más información, consulte [Modos y tipos de computación del entorno de compilación](build-env-ref-compute-types.md) y [Imágenes de Docker proporcionadas por CodeBuild](build-env-ref-available.md).