

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Executador autogerenciado do Buildkite em AWS CodeBuild
<a name="buildkite-runner"></a>

Você pode configurar seu projeto para configurar executores do Buildkite auto-hospedados em CodeBuild contêineres para processar seus trabalhos do Buildkite. Isso pode ser feito configurando um webhook usando seu CodeBuild projeto e atualizando as etapas YAML do pipeline Buildkite para usar executores auto-hospedados hospedados em máquinas. CodeBuild 

As etapas de alto nível para configurar um CodeBuild projeto para executar trabalhos do Buildkite são as seguintes:
+ Navegue até o CodeBuild console e crie um CodeBuild projeto com a configuração do tipo de executor do projeto Buildkite runner
+ Adicione um webhook `job.scheduled` à organização do Buildkite.
+ Atualize as etapas do YAML do pipeline do Buildkite no Buildkite para configurar o ambiente de compilação.

Para obter um procedimento mais detalhado, consulte [Tutorial: Configurar um executor CodeBuild Buildite hospedado](sample-runner-buildkite.md). Esse recurso permite que seus trabalhos do Buildkite obtenham integração nativa AWS, o que fornece segurança e conveniência por meio de recursos como IAM AWS CloudTrail e Amazon VPC. AWS Secrets Manager Você pode acessar os tipos de instância mais recentes, incluindo instâncias baseadas no ARM.

# Sobre o executor CodeBuild Buildkite hospedado
<a name="buildkite-runner-about"></a>

A seguir estão algumas perguntas comuns sobre o executor CodeBuild Buildkite hospedado.

## Quando devo incluir as substituições de imagem e instância no rótulo?
<a name="buildkite-runner-about-overrides"></a>

Você pode incluir as substituições de imagem e instância no rótulo para especificar um ambiente de compilação diferente para cada um dos trabalhos do Buildkite. Isso pode ser feito sem a necessidade de criar vários CodeBuild projetos ou webhooks. Por exemplo, isso é útil quando você precisa usar uma [matriz para os trabalhos do 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"
```

## Posso CodeBuild criar webhooks no Buildkite automaticamente?
<a name="buildkite-runner-about-auto-create"></a>

Atualmente, o Buildkite exige que todos os webhooks sejam criados manualmente usando o console. Você pode seguir o tutorial em [Tutorial: Configurar um executor CodeBuild Buildite hospedado](sample-runner-buildkite.md) para criar um webhook do Buildkite manualmente no console do Buildkite.

## Posso usar CloudFormation para criar webhooks do Buildkite?
<a name="buildkite-runner-about-cloudformation"></a>

CloudFormation atualmente não é compatível com webhooks de execução do Buildkite, pois o Buildkite exige que os webhooks sejam criados manualmente usando seu console.

## Quais regiões oferecem suporte ao uso de um executor CodeBuild Buildkite hospedado?
<a name="buildkite-runner-about-regions"></a>

CodeBuildcorredores Buildkite hospedados são suportados em todas as regiões. CodeBuild Para obter mais informações sobre AWS regiões onde CodeBuild está disponível, consulte [AWS Serviços por região](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/).

# Tutorial: Configurar um executor CodeBuild Buildite hospedado
<a name="sample-runner-buildkite"></a>

Este tutorial mostra como configurar seus CodeBuild projetos para executar trabalhos do Buildkite. Para obter mais informações sobre como usar o Buildkite com, consulte. CodeBuild [Executador autogerenciado do Buildkite em AWS CodeBuild](buildkite-runner.md)<a name="sample-runner-buildkite-prerequisites"></a>

Para concluir este tutorial, você deve primeiramente:
+ Ter acesso a uma organização do Buildkite. Consulte mais informações sobre como configurar uma conta e uma organização do Buildkite em [Getting Started Tutorial](https://buildkite.com/docs/pipelines/getting-started).
+ Crie um pipeline, um cluster e uma fila do Buildkite configurados para usar executores auto-hospedados. Consulte mais informações sobre como configurar esses recursos em [Buildkite Pipeline Setup Tutorial](https://buildkite.com/docs/pipelines/create-your-own).  
![\[Criar um projeto no Buildkite\]](http://docs.aws.amazon.com/pt_br/codebuild/latest/userguide/images/buildkite-first.png)

## Etapa 1: gerar um token de agente do Buildkite
<a name="w2aac26c33c12c13b7"></a>

Nesta etapa, você gerará um token de agente no Buildkite que será usado para autenticar os executores auto-hospedados. CodeBuild Consulte mais informações sobre esse recurso em [Buildkite Agent Tokens](https://buildkite.com/docs/agent/v3/tokens). 

**Como gerar um token de agente do Buildkite**

1. No cluster do Buildkite, escolha **Tokens de agente** e **Novo token**.

1. Adicione uma descrição ao token e clique em **Criar token**.

1. Salve o valor do token do agente, pois ele será usado posteriormente durante a configuração do CodeBuild projeto.  
![\[Tokens de agente no Buildkite\]](http://docs.aws.amazon.com/pt_br/codebuild/latest/userguide/images/buildkite-createtoken.png)

## Etapa 2: criar um CodeBuild projeto com um webhook
<a name="sample-runner-buildkite-create-project"></a>

**Para criar um CodeBuild projeto com um webhook**

1. Abra o AWS CodeBuild console em [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1. Crie um projeto de compilação auto-hospedado. Para obter informações, consulte [Criar um projeto de compilação (console)](create-project.md#create-project-console) e [Executar uma compilação (console)](run-build-console.md).
   +  Em **Configuração do projeto**, selecione **Projeto de executor**. Em **Executor:** 
     +  Em **Provedor de executor**, escolha **Buildkite**.
     + Em **Token de agente do Buildkite**, escolha **Criar um token de agente usando a página de criação secreta**. Você será solicitado a criar um novo segredo AWS Secrets Manager com um valor secreto igual ao token do agente Buildkite que você gerou acima.
     + (Opcional) Se você quiser usar credenciais CodeBuild gerenciadas para seu trabalho, selecione o provedor do repositório de origem do seu trabalho nas **opções de credenciais de origem do Buildkite e verifique se as credenciais** estão configuradas para sua conta. Além disso, verifique se o pipeline do Buildkite usa o **Checkout via HTTPS**.
**nota**  
O Buildkite requer credenciais de origem no ambiente de compilação para extrair a origem do trabalho. Consulte as opções de credenciais de origem disponíveis em [Autenticar o Buildkite em um repositório privado](#sample-runner-buildkite-config).
   + (Opcional) Em **Ambiente**: 
     + Escolha uma **Imagem de ambiente** e **Computação** compatíveis. 

       Observe que você tem a opção de substituir as configurações de imagem e instância usando um rótulo nas etapas de YAML do Buildkite. Para obter mais informações, consulte [Etapa 4: atualizar as etapas do pipeline do Buildkite](#sample-runner-buildkite-update-pipeline).
   + (Opcional) Em **Buildspec**: 
     + O buildspec será ignorado por padrão, a menos que `buildspec-override: "true"` seja adicionado como rótulo. Em vez disso, o CodeBuild substituirá para usar comandos que configurarão o executor auto-hospedado.
**nota**  
CodeBuild não suporta arquivos buildspec para compilações de executores auto-hospedados do Buildkite. Para especificações de construção em linha, você precisará habilitar [ git-credential-helper](https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html#build-spec.env.git-credential-helper)em seu buildspec se tiver configurado credenciais de origem gerenciada CodeBuild 

1. Continue com os valores padrão e escolha **Criar projeto de compilação**.

1. Salve o **URL da carga útil** e os valores de **Segredo** no pop-up **Criar webhook**. Siga as instruções no pop-up para criar um webhook da organização do Buildkite ou continue para a próxima seção.

## Etapa 3: Crie um CodeBuild webhook no Buildkite
<a name="sample-runner-buildkite-codebuild-webhook"></a>

Nesta etapa, você usará os valores **Payload URL** e **Secret** do CodeBuild webhook para criar um novo webhook no Buildkite. Esse webhook será usado para acionar compilações CodeBuild quando um trabalho válido do Buildkite for iniciado.

**Como criar um webhook no Buildkite**

1. Acesse a página de **Configurações** da organização do Buildkite.

1. Em **Integrações**, selecione **Serviços de notificação**.

1. Escolha **Adicionar** ao lado da caixa **Webhook**. Na página **Adicionar notificação de webhook**, use a seguinte configuração:

   1. Em **URL do webhook**, adicione o valor salvo de **URL de carga útil**.

   1. Em **Token**, verifique se a opção **Enviar o token como X-Buildkite-Token** está selecionada. Adicione o valor de **Segredo** do webhook ao campo **Token**.

   1. Em, verifique se a opção **Enviar o token como X-Buildkite-Token** está selecionada. Adicione o valor de **Segredo** do webhook ao campo **Token**.

   1. Em **Eventos**, selecione o evento `job.scheduled` do webhook.

   1. (Opcional) Em **Pipelines**, você pode optar por acionar somente compilações para um pipeline específico.

1. Escolha **Adicionar notificação de webhook**.

## Etapa 4: atualizar as etapas do pipeline do Buildkite
<a name="sample-runner-buildkite-update-pipeline"></a>

Nessa etapa, você atualiza as etapas do pipeline do Buildkite para adicionar os rótulos necessários e as substituições opcionais. Consulte a lista completa de versões compatíveis em [Substituições de rótulos suportadas pelo executor Buildkite CodeBuild hospedado](buildkite-runner-update-labels.md).

**Atualizar as etapas do pipeline**

1. Acesse a página de etapas do pipeline do Buildkite selecionando o pipeline do Buildkite, escolhendo **Configurações** e **Etapas**.

   Se ainda não tiver feito isso, escolha **Converter em etapas do YAML.**  
![\[Etapas para atualizar o YAML.\]](http://docs.aws.amazon.com/pt_br/codebuild/latest/userguide/images/buildkite-steps.png)

1. No mínimo, você precisará especificar uma [tag do agente Buildkite](https://buildkite.com/docs/agent/v3/cli-start#agent-targeting) referenciando o nome do seu pipeline. CodeBuild O nome do projeto é necessário para vincular as configurações AWS relacionadas do seu trabalho no Buildkite a um projeto específico. CodeBuild Ao incluir o nome do projeto no YAML, CodeBuild é permitido invocar trabalhos com as configurações corretas do projeto.

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

   Veja a seguir um exemplo de etapas do pipeline do Buildkite com apenas a tag do rótulo do projeto:

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

   Você também pode substituir a imagem e o tipo de computação no rótulo. Para obter uma lista das imagens disponíveis, consulte [Imagens de computação suportadas pelo executor CodeBuild Buildkite hospedado](buildkite-runner-update-yaml.images.md). O tipo de computação e a imagem no rótulo substituirão as configurações do ambiente no projeto. Para substituir suas configurações de ambiente para uma compilação de computação CodeBuild EC2 ou Lambda, use a seguinte sintaxe:

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

   Veja a seguir um exemplo de etapas do pipeline do Buildkite com substituições de imagens e tamanhos de instância:

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

   Você pode substituir a frota usada para a compilação no rótulo. Isso substituirá as configurações de frota definidas no projeto para usar a frota especificada. Consulte mais informações em [ Executar compilações em frotas de capacidade reservada](https://docs.aws.amazon.com/codebuild/latest/userguide/fleets.html).

   Para substituir as configurações da frota para uma compilação computacional do Amazon EC2, use a seguinte sintaxe:

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

   Para substituir a frota e a imagem usadas para a compilação, use a seguinte sintaxe:

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

   Veja a seguir um exemplo de etapas do pipeline do Buildkite com substituições de frota e imagem:

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

1. Você pode optar por executar comandos de buildspec em linha durante a compilação do executor do Buildkite auto-hospedado (consulte mais detalhes em [Executar os comandos de buildspec nas fases INSTALL, PRE\$1BUILD e POST\$1BUILD](sample-runner-buildkite-buildspec.md)). Para especificar que a CodeBuild compilação deve executar comandos buildspec durante a compilação do executor autohospedado do Buildkite, use a seguinte sintaxe:

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

   Veja a seguir um exemplo de um pipeline do Buildkite com uma substituição de buildspec:

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

1. Opcionalmente, você pode fornecer rótulos fora dos CodeBuild compatíveis. Esses rótulos serão ignorados com o objetivo de substituir os atributos da compilação, mas não falharão na solicitação do webhook. Por exemplo, adicionar `myLabel: “testLabel"` como rótulo não impedirá a execução da compilação.

## Etapa 5: analise seus resultados
<a name="sample-runner-buildkite-verify"></a>

Sempre que um trabalho do Buildkite for iniciado em seu pipeline, CodeBuild receberá um evento de webhook por meio do `job.scheduled` webhook do Buildkite. Para cada trabalho em sua compilação do Buildkite, CodeBuild iniciará uma compilação para executar um executor efêmero do Buildkite. O executor é responsável por executar um único trabalho do Buildkite. Depois que o trabalho for concluído, o executor e o processo de compilação associado serão encerrados imediatamente.

Para visualizar os logs de trabalho do fluxo de trabalho, acesse o pipeline do Buildkite e selecione a compilação mais recente (você pode acionar uma nova compilação escolhendo **Nova compilação**). Depois que a CodeBuild compilação associada a cada um dos seus trabalhos começar e continuar com o trabalho, você deverá ver os registros do trabalho no console do Buildkite

![\[Analise os resultados.\]](http://docs.aws.amazon.com/pt_br/codebuild/latest/userguide/images/buildkite-log.png)


## Autenticar o Buildkite em um repositório privado
<a name="sample-runner-buildkite-config"></a>

Se você tem um repositório privado configurado no pipeline do Buildkite, o Buildkite exige [permissões adicionais no ambiente de compilação](https://buildkite.com/docs/agent/v3/github-ssh-keys) para extrair o repositório, pois o Buildkite não vende credenciais para executores auto-hospedados extraírem de repositórios privados. Para autenticar o agente executor auto-hospedado do Buildkite no repositório externo de origem privada, você pode usar uma das opções a seguir.

**Para autenticar com CodeBuild**

CodeBuild oferece tratamento gerenciado de credenciais para tipos de fontes compatíveis. Para usar as credenciais de CodeBuild origem para extrair o repositório de origem do seu trabalho, você pode usar as seguintes etapas:

1. No CodeBuild console, navegue até **Editar projeto** ou crie um novo CodeBuild projeto usando as etapas em[Etapa 2: criar um CodeBuild projeto com um webhook](#sample-runner-buildkite-create-project).

1. Em **Opções de credencial de origem do Buildkite**, selecione o provedor do repositório de origem do trabalho.

   1. Se você quiser usar CodeBuild credenciais no nível da conta, verifique se elas estão configuradas corretamente. Além disso, se seu projeto tiver um buildspec embutido configurado, verifique se ele está habilitado. [ git-credential-helper](https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html#build-spec.env.git-credential-helper)

   1. Se você quiser usar CodeBuild credenciais em nível de projeto, selecione **Usar credenciais de substituição somente para este projeto** e configure credenciais para seu projeto.

1. Nas configurações do pipeline do Buildkite, acesse **Configurações do repositório**. Defina as configurações de checkout do repositório de origem como **Checkout via HTTPS**  
![\[Analise os resultados.\]](http://docs.aws.amazon.com/pt_br/codebuild/latest/userguide/images/buildkite-repo-https.png)

**Como fazer a autenticação com os segredos do Buildkite**

O Buildkite mantém um [plug-in de ssh-checkout](https://github.com/buildkite-plugins/git-ssh-checkout-buildkite-plugin) que pode ser usado para autenticar o executor auto-hospedado em um repositório de origem externo usando uma chave SSH. O valor da chave é armazenado como um [segredo do Buildkite](https://buildkite.com/docs/pipelines/security/secrets/buildkite-secrets) e obtido automaticamente pelo agente de executor auto-hospedado do Buildkite ao tentar extrair um repositório privado. Para configurar o plug-in ssh-checkout do pipeline do Buildkite, siga estas etapas:

1. Gere uma chave SSH pública e privada usando o endereço de e-mail, por exemplo `ssh-keygen -t rsa -b 4096 -C "myEmail@address.com"`

1. Adicione a chave pública ao repositório de origem privado. Por exemplo, você pode seguir [este guia](https://docs.github.com/en/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account) para adicionar uma chave a uma GitHub conta.

1. Adicione um [novo segredo de chave SSH](https://buildkite.com/docs/pipelines/hosted-agents/code-access#private-repositories-with-other-providers-add-the-ssh-key-secret) ao cluster do Buildkite. No cluster do Buildkite, selecione **Segredos** → **Novo segredo**. Adicione um nome para o segredo no campo **Chave** e adicione a chave SSH privada no campo **Valor**:  
![\[Analise os resultados.\]](http://docs.aws.amazon.com/pt_br/codebuild/latest/userguide/images/buildkite-secret.png)

1. No pipeline do Buildkite, acesse as configurações do repositório e defina o checkout para usar **SSH**.  
![\[Analise os resultados.\]](http://docs.aws.amazon.com/pt_br/codebuild/latest/userguide/images/buildkite-repo.png)

1. Atualize as etapas do YAML do pipeline para usar o plug-in `git-ssh-checkout`. Por exemplo, o arquivo YAML do pipeline a seguir usa a ação de checkout com a chave secreta do Buildkite acima:

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

1. Ao executar um trabalho de execução auto-hospedado do Buildkite CodeBuild, o Buildkite agora usará automaticamente seu valor secreto configurado ao extrair seu repositório privado

## Opções de configuração do executor
<a name="sample-buildkite-runner-auth"></a>

É possível especificar as seguintes variáveis de ambiente na configuração do projeto para modificar a configuração dos executores auto-hospedados:
+ `CODEBUILD_CONFIG_BUILDKITE_AGENT_TOKEN`: CodeBuild buscará o valor secreto configurado como o valor dessa variável de ambiente para registrar o agente AWS Secrets Manager executor auto-hospedado do Buildkite. Essa variável de ambiente deve ser do tipo `SECRETS_MANAGER` e o valor deve ser o nome do segredo no Secrets Manager. Uma variável de ambiente do token do agente do Buildkite é necessária para todos os projetos do executor do Buildkite.
+ `CODEBUILD_CONFIG_BUILDKITE_CREDENTIAL_DISABLE`: por padrão, CodeBuild carregará as credenciais de origem em nível de conta ou projeto no ambiente de compilação, pois essas credenciais são usadas pelo agente Buildkite para extrair o repositório de origem do trabalho. Para desabilitar esse comportamento, você pode adicionar essa variável de ambiente ao projeto com o valor definido como `true`, o que impedirá que as credenciais de origem sejam carregadas no ambiente de compilação.

# Executar os comandos de buildspec nas fases INSTALL, PRE\$1BUILD e POST\$1BUILD
<a name="sample-runner-buildkite-buildspec"></a>

Por padrão, CodeBuild ignora qualquer comando buildspec ao executar uma compilação auto-hospedada do executor Buildkite. Para executar comandos de buildspec durante a compilação, 

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

 pode ser adicionado como um sufixo ao rótulo:

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

Ao usar esse comando, CodeBuild criará uma pasta chamada `buildkite-runner` na pasta de origem primária do contêiner. Quando o executor do Buildkite é iniciado durante a fase `BUILD`, o executor é executado no diretório `buildkite-runner`.

Há várias limitações ao usar uma substituição de buildspec em uma compilação auto-hospedada do Buildkite:
+ O agente do Buildkite exige que as credenciais de origem existam no ambiente de compilação para extrair o repositório de origem do trabalho. Se você usar credenciais de CodeBuild origem para autenticação, precisará habilitar `git-credential-helper` em seu buildspec. Por exemplo, é possível usar o seguinte buildspec para habilitar `git-credential-helper` para as compilações do Buildkite:

  ```
  version: 0.2
  env:
    git-credential-helper: yes
  phases:
    pre_build:
      commands:
         - echo "Hello World"
  ```
+ CodeBuild não executará comandos buildspec durante a `BUILD` fase, pois o executor auto-hospedado é executado na fase. `BUILD`
+ CodeBuild não oferece suporte a arquivos buildspec para compilações de executores do Buildkite. Somente buildspecs em linha são compatíveis com executores auto-hospedados do Buildlkite
+ Se um comando de compilação falhar na `INSTALL` fase `PRE_BUILD` ou, o executor auto-hospedado não CodeBuild será iniciado e a tarefa do Buildkite precisará ser cancelada manualmente.

# Configurar um executor do Buildkite programaticamente
<a name="sample-runner-buildkite-CLI"></a>

Para configurar programaticamente um projeto de executor do Buildkite, você precisa configurar os seguintes recursos:

**Como criar um executor do Buildkite programaticamente**

1. Crie um token de agente do Buildkite e salve o token em texto simples no AWS Secrets Manager.

1. Configure um CodeBuild projeto com sua configuração preferida. Você precisa configurar os seguintes atributos adicionais:

   1. Um valor de ambiente com nome `CODEBUILD_CONFIG_BUILDKITE_AGENT_TOKEN`, tipo `SECRETS_MANAGER` e um valor igual ao do token de agente do Buildkite associado ao cluster do Buildkite.

   1. Tipo de origem igual a `NO_SOURCE`

   1. Permissões para acessar o segredo criado na etapa 1 no perfil de serviço do projeto

   Por exemplo, é possível usar o seguinte comando para criar um projeto de executor válido do Buildkite por meio da 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. Crie um webhook do executor do Buildkite no projeto criado na etapa 2. Você precisa usar as seguintes opções de configuração ao criar o webhook:

   1. O **tipo de compilação** deve ser igual a `RUNNER_BUILDKITE_BUILD`

   1. Um filtro com tipo `EVENT` e padrão igual a `WORKFLOW_JOB_QUEUED` 

   Por exemplo, é possível usar o seguinte comando para criar um webhook de executor válido do Buildkite por meio da CLI:

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

1. Salve os valores de **URL da carga útil** e **Segredo** retornados pela chamada a `create-webhook` e use as credenciais para criar um webhook no console do Buildkite. Você pode consultar a Etapa 3: Crie um CodeBuild webhook no Buildkite [Tutorial: Configurar um executor CodeBuild Buildite hospedado](sample-runner-buildkite.md) para obter um guia sobre como configurar esse recurso.

# Solucionar o problema do webhook em caso de falhas de compilação ou de um trabalho travado
<a name="buildkite-runner-troubleshoot-webhook"></a>

 **Problema: ** 

O webhook configurado em [Tutorial: Configurar um executor CodeBuild Buildite hospedado](sample-runner-buildkite.md) não está funcionando ou o trabalho de fluxo de trabalho está travado no Buildkite.

 **Causas possíveis:** 
+ O evento de **job.scheduled** do webhook pode não estar conseguindo acionar uma compilação. Revise os logs de **Resposta** para ver a resposta ou a mensagem de erro.
+ Sua CodeBuild compilação falha antes de iniciar o agente executor auto-hospedado do Buildkite para realizar seu trabalho.

 **Soluções recomendadas:** 

Como depurar eventos de webhook do Buildkite que falharam:

1. **Nas configurações da sua organização Buildkite, navegue até os **Serviços de Notificação**, selecione seu CodeBuild webhook e, em seguida, encontre o Registro de Solicitações.**

1. Encontre o evento `job.scheduled` do webhook associado ao trabalho travado no Buildkite. Você pode usar o campo de ID do trabalho na carga útil do webhook para correlacionar o evento do webhook ao trabalho do Buildkite.

1. Selecione a guia **Resposta** e verifique o corpo da resposta. Verifique se o código de status da **Resposta** é `200` e se o corpo da **Resposta** não contém nenhuma mensagem inesperada.  
![\[Resposta para o webhook.\]](http://docs.aws.amazon.com/pt_br/codebuild/latest/userguide/images/buildkite-request.png)

# Solucionar problemas de permissão do webhook
<a name="buildkite-runner-troubleshoot-webhook-permissions"></a>

 **Problema: ** 

O trabalho do Buildkite falha ao fazer checkout do repositório de origem do trabalho devido a problemas de permissão.

 **Causas possíveis:** 
+ CodeBuild não tem permissões suficientes para verificar o repositório de origem do trabalho.
+ As configurações do repositório do pipeline estão definidas para serem finalizadas usando SSH para credenciais CodeBuild gerenciadas.

 **Soluções recomendadas:** 
+ Verifique se CodeBuild tem permissões suficientes configuradas para verificar o repositório de origem do trabalho. Além disso, verifique se a função de serviço do seu CodeBuild projeto tem permissões suficientes para acessar a opção de permissão de origem configurada.
+ Verifique se seu pipeline do Buildkite está configurado para usar o checkout usando HTTPS se você estiver usando credenciais de repositório de origem CodeBuild gerenciada.

# Substituições de rótulos suportadas pelo executor Buildkite CodeBuild hospedado
<a name="buildkite-runner-update-labels"></a>

Nos rótulos de tag do agente das etapas do pipeline do Buildkite, você pode fornecer uma variedade de substituições de rótulo que modificam a compilação do executor auto-hospedado. Todas as compilações não reconhecidas por CodeBuild serão ignoradas, mas não falharão em sua solicitação de webhook. Por exemplo, o YAML do fluxo de trabalho a seguir inclui substituições para imagem, tamanho da instância, frota e 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>`(obrigatório)
+ Exemplo: `project: "codebuild-myProject"`
+ Necessário para todas as configurações de etapas do pipeline do Buildite. *<project name>*deve ser igual ao nome do projeto para o qual o webhook do executor auto-hospedado está configurado.

`queue: "<queue-name>"`
+ Exemplo: `queue: "<queue-name>"`
+ Usado para rotear trabalhos do Buildkite para uma fila específica. Consulte mais informações em [Buildkite Agent Queue Tag](https://buildkite.com/docs/agent/v3/cli-start#the-queue-tag).

 `image: "<environment-type>-<image-identifier>"` 
+ Exemplo: `image: "arm-3.0"`
+ Substitui a imagem e o tipo de ambiente usados ao iniciar a compilação do executor auto-hospedado com uma imagem selecionada. Para saber mais sobre os valores compatíveis, consulte [Imagens de computação suportadas pelo executor CodeBuild Buildkite hospedado](buildkite-runner-update-yaml.images.md).

  1. Para substituir a imagem e o tipo de ambiente usados por uma imagem personalizada, use `image: "custom-<environment-type>-<custom-image-identifier>"`

  1. Exemplo: 

     ```
     image:
           "custom-arm-public.ecr.aws/codebuild/amazonlinux-aarch64-standard:3.0"
     ```
**nota**  
Se a imagem personalizada residir em um registro privado, você deverá configurar as credenciais de registro apropriadas em seu CodeBuild projeto.

`instance-size: "<instance-size>"`
+ Exemplo: `instance-size: "medium"`
+ Substitui o tipo de instância usado ao iniciar a compilação do executor auto-hospedado. Para saber mais sobre os valores compatíveis, consulte [Imagens de computação suportadas pelo executor CodeBuild Buildkite hospedado](buildkite-runner-update-yaml.images.md).

`fleet: "<fleet-name>"`
+ Exemplo: `fleet: "myFleet"`
+ Substitui as configurações de frota definidas no projeto para usar a frota especificada. Consulte mais informações em [ Executar compilações em frotas de capacidade reservada](https://docs.aws.amazon.com/codebuild/latest/userguide/fleets.html).

`buildspec-override: "<boolean>"`
+ Exemplo: `buildspec-override: "true"`
+ Permite que a compilação execute comandos buildspec nas fases `INSTALL`, `PRE_BUILD` e `POST_BUILD` se definida como `true`.

# Imagens de computação suportadas pelo executor CodeBuild Buildkite hospedado
<a name="buildkite-runner-update-yaml.images"></a>

Na etiqueta em que você configurou[Executador autogerenciado do Buildkite em AWS CodeBuild](buildkite-runner.md), você pode substituir as configurações do seu ambiente Amazon EC2 usando os valores nas três primeiras colunas. CodeBuild fornece as seguintes imagens computacionais do Amazon EC2. Para obter mais informações sobre 

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

Além disso, você pode substituir as configurações do ambiente Lambda usando os valores a seguir. Para obter mais informações sobre a computação CodeBuild Lambda, consulte. [Execute compilações em computação AWS Lambda](lambda.md) CodeBuild é compatível com as seguintes imagens de computação Lambda:

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

Para obter mais informações, consulte [Modos e tipos de computação do ambiente de compilação](build-env-ref-compute-types.md) e [Imagens do Docker fornecidas por CodeBuild](build-env-ref-available.md).