

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Buildkite runner autogestito in AWS CodeBuild
<a name="buildkite-runner"></a>

Puoi configurare il tuo progetto per configurare i runner Buildkite ospitati autonomamente in CodeBuild contenitori per elaborare i tuoi job Buildkite. Questo può essere fatto configurando un webhook utilizzando il CodeBuild progetto e aggiornando i passaggi YAML della pipeline di Buildkite per utilizzare runner ospitati autonomamente ospitati su macchine. CodeBuild 

I passaggi di alto livello per configurare un progetto per eseguire i job di Buildkite sono i seguenti: CodeBuild 
+ Passa alla CodeBuild console e crea un CodeBuild progetto con la configurazione del tipo Buildkite runner (project runner).
+ Aggiungi un `job.scheduled` webhook alla tua organizzazione Buildkite.
+ Aggiorna i passaggi YAML della pipeline di Buildkite in Buildkite per configurare il tuo ambiente di compilazione.

Per una procedura più dettagliata, vedi. [Tutorial: configura un CodeBuild Buildkite runner ospitato](sample-runner-buildkite.md) Questa funzionalità consente ai lavori di Buildkite di ottenere l'integrazione nativa con AWS, che offre sicurezza e praticità attraverso funzionalità come IAM e Amazon VPC. Gestione dei segreti AWS AWS CloudTrail Puoi accedere ai tipi di istanze più recenti, incluse le istanze basate su ARM.

# Informazioni sul Buildkite runner CodeBuild ospitato
<a name="buildkite-runner-about"></a>

Di seguito sono riportate alcune domande comuni sul runner Buildkite -hosted CodeBuild.

## Quando devo includere l'immagine e le sostituzioni delle istanze nell'etichetta?
<a name="buildkite-runner-about-overrides"></a>

Puoi includere le sostituzioni di immagini e istanze nell'etichetta per specificare un ambiente di compilazione diverso per ciascuno dei tuoi lavori Buildkite. Questo può essere fatto senza la necessità di creare più CodeBuild progetti o webhook. Ad esempio, questo è utile quando è necessario utilizzare una [matrice per i lavori 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"
```

## È possibile CodeBuild creare webhook all'interno di Buildkite automaticamente?
<a name="buildkite-runner-about-auto-create"></a>

Attualmente, Buildkite richiede che tutti i webhook vengano creati manualmente utilizzando la loro console. Puoi seguire il tutorial su [Tutorial: configura un CodeBuild Buildkite runner ospitato](sample-runner-buildkite.md) per creare manualmente un webhook Buildkite nella console Buildkite.

## Posso usare CloudFormation per creare webhook Buildkite?
<a name="buildkite-runner-about-cloudformation"></a>

CloudFormation attualmente non è supportato per i webhook Buildkite runner, poiché Buildkite richiede che i webhook vengano creati manualmente utilizzando la loro console.

## Quali regioni supportano l'utilizzo di un Buildkite runner ospitato? CodeBuild
<a name="buildkite-runner-about-regions"></a>

CodeBuildI runner Buildkite -hosted sono supportati in tutte le regioni. CodeBuild [Per ulteriori informazioni sulle AWS regioni in cui CodeBuild è disponibile, consulta AWS Servizi per regione.](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/)

# Tutorial: configura un CodeBuild Buildkite runner ospitato
<a name="sample-runner-buildkite"></a>

Questo tutorial mostra come configurare i tuoi CodeBuild progetti per eseguire i job di Buildkite. Per ulteriori informazioni sull'utilizzo di Buildkite, vedere. CodeBuild [Buildkite runner autogestito in AWS CodeBuild](buildkite-runner.md)<a name="sample-runner-buildkite-prerequisites"></a>

Per completare questo tutorial, è necessario innanzitutto:
+ Avere accesso a un'organizzazione Buildkite. [Per ulteriori informazioni sulla configurazione di un account e di un'organizzazione Buildkite, puoi seguire questo tutorial introduttivo.](https://buildkite.com/docs/pipelines/getting-started)
+ Crea una pipeline, un cluster e una coda di Buildkite configurati per utilizzare runner ospitati autonomamente. [Per ulteriori informazioni sulla configurazione di queste risorse, puoi fare riferimento al Buildkite Pipeline Setup Tutorial.](https://buildkite.com/docs/pipelines/create-your-own)  
![\[Crea un progetto in Buildkite\]](http://docs.aws.amazon.com/it_it/codebuild/latest/userguide/images/buildkite-first.png)

## Passaggio 1: generare un token agente Buildkite
<a name="w2aac26c33c12c13b7"></a>

In questo passaggio, genererai un token agente all'interno di Buildkite che verrà utilizzato per autenticare i runner ospitati autonomamente. CodeBuild [Per ulteriori informazioni su questa risorsa, consulta Buildkite Agent Tokens.](https://buildkite.com/docs/agent/v3/tokens) 

**Per generare un token dell'agente Buildkite**

1. **Nel tuo cluster Buildkite, scegli **Agent Tokens**, quindi scegli Nuovo token.**

1. **Aggiungi una descrizione al token e fai clic su Crea token.**

1. Salva il valore del token dell'agente, poiché verrà utilizzato in seguito durante la configurazione CodeBuild del progetto.  
![\[Token dell'agente in Buildkite\]](http://docs.aws.amazon.com/it_it/codebuild/latest/userguide/images/buildkite-createtoken.png)

## Fase 2: Creare un CodeBuild progetto con un webhook
<a name="sample-runner-buildkite-create-project"></a>

**Per creare un CodeBuild progetto con un webhook**

1. Apri la AWS CodeBuild console su [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1. Crea un progetto di compilazione ospitato autonomamente. Per informazioni, consulta [Creare un progetto di compilazione (console)](create-project.md#create-project-console) e [Esecuzione di una compilazione (console)](run-build-console.md).
   +  Nella **configurazione del progetto**, seleziona Progetto **Runner**. In **Runner**: 
     +  **Per il **provider Runner**, scegli Buildkite.**
     + Per il **token dell'agente Buildkite, scegli Crea un nuovo token** **agente utilizzando** la pagina di creazione segreta. Ti verrà richiesto di creare un nuovo token segreto Gestione dei segreti AWS con un valore segreto uguale al token dell'agente Buildkite che hai generato sopra.
     + (Facoltativo) Se desideri utilizzare credenziali CodeBuild gestite per il tuo lavoro, seleziona il provider del repository di origine del tuo lavoro nelle **opzioni delle credenziali di origine di Buildkite e verifica che le credenziali** siano configurate per il tuo account. **Inoltre, verifica che la tua pipeline Buildkite utilizzi Checkout utilizzando HTTPS.**
**Nota**  
Buildkite richiede le credenziali di origine all'interno dell'ambiente di compilazione per estrarre il codice sorgente del tuo lavoro. Vedi le opzioni di [Autenticazione di Buildkite su un repository privato](#sample-runner-buildkite-config) credenziali di origine disponibili.
   + (Facoltativo) In **Environment**: 
     + Scegli un'**immagine Environment** supportata e **Calcola**. 

       Nota che hai la possibilità di sovrascrivere le impostazioni dell'immagine e dell'istanza utilizzando un'etichetta nei passaggi YAML di Buildkite. Per ulteriori informazioni, consulta [Fase 4: Aggiorna i passaggi della pipeline di Buildkite](#sample-runner-buildkite-update-pipeline).
   + **(Facoltativo) In Buildspec:** 
     + Il tuo buildspec verrà ignorato per impostazione predefinita a meno che non venga aggiunto come etichetta. `buildspec-override: "true"` Invece, lo CodeBuild sovrascriverà per utilizzare i comandi che configureranno il runner self-hosted.
**Nota**  
CodeBuild non supporta i file buildspec per le build di runner self-hosted di Buildkite. Per le specifiche di compilazione in linea, dovrai abilitarle nel tuo buildspec se hai configurato le credenziali di origine gestite [ git-credential-helper](https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html#build-spec.env.git-credential-helper) CodeBuild 

1. **Continua con i valori predefiniti, quindi scegli Crea progetto di compilazione.**

1. Salva l'**URL del payload** e i valori **segreti** dal popup **Create Webhook**. Segui le istruzioni nel popup per creare un nuovo webhook dell'organizzazione Buildkite o continua con la sezione successiva.

## Fase 3: Crea un webhook all'interno di Buildkite CodeBuild
<a name="sample-runner-buildkite-codebuild-webhook"></a>

In questo passaggio, utilizzerai i valori **Payload URL** e **Secret** del CodeBuild webhook per creare un nuovo webhook all'interno di Buildkite. Questo webhook verrà utilizzato per attivare le build entro CodeBuild l'avvio di un job Buildkite valido.

**Per creare un nuovo webhook in Buildkite**

1. **Vai alla pagina delle impostazioni della tua organizzazione Buildkite.**

1. **In **Integrazioni**, seleziona Servizi di notifica.**

1. Scegli **Aggiungi** accanto alla casella **Webhook**. Nella pagina **Aggiungi notifica Webhook**, utilizza la seguente configurazione:

   1. In **Webhook URL**, aggiungi il valore dell'URL di **payload** salvato.

   1. In **Token**, verificate che **l'opzione Invia il token come X-Buildkite-Token sia selezionata**. Aggiungi il valore **segreto** del tuo webhook al campo **Token**.

   1. In, verifica che l'opzione **Invia il token come X-Buildkite-Token** sia selezionata. Aggiungi il valore **segreto** del tuo webhook al campo **Token**.

   1. In **Eventi**, seleziona l'evento `job.scheduled` webhook.

   1. (Facoltativo) In **Pipelines, puoi facoltativamente scegliere di attivare solo le build per una pipeline** specifica.

1. **Scegliete Aggiungi notifica Webhook.**

## Fase 4: Aggiorna i passaggi della pipeline di Buildkite
<a name="sample-runner-buildkite-update-pipeline"></a>

In questo passaggio, aggiornerai i passaggi della tua pipeline Buildkite per aggiungere le etichette necessarie e le sostituzioni opzionali. Per l'elenco completo delle sostituzioni di etichette supportate, consulta. [Le sostituzioni delle etichette sono supportate con il runner Buildkite ospitato CodeBuild](buildkite-runner-update-labels.md)

**Aggiorna i passaggi della pipeline**

1. ****Vai alla pagina dei passaggi della pipeline Buildkite selezionando la pipeline Buildkite, scegliendo Impostazioni e quindi scegliendo Steps.****

   **Se non l'hai già fatto, scegli Converti in passaggi YAML.**  
![\[Passaggi per aggiornare YAML.\]](http://docs.aws.amazon.com/it_it/codebuild/latest/userguide/images/buildkite-steps.png)

1. Come minimo, dovrai specificare un [tag dell'agente Buildkite](https://buildkite.com/docs/agent/v3/cli-start#agent-targeting) che faccia riferimento al nome della tua pipeline. CodeBuild Il nome del progetto è necessario per collegare le impostazioni AWS relative del job Buildkite a un progetto specifico. CodeBuild Includendo il nome del progetto in YAML, CodeBuild è consentito richiamare lavori con le impostazioni di progetto corrette.

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

   Di seguito è riportato un esempio di passaggi della pipeline di Buildkite con solo il tag di etichetta del progetto:

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

   Puoi anche sovrascrivere l'immagine e il tipo di calcolo nell'etichetta. [Immagini di calcolo supportate con il runner Buildkite ospitato CodeBuild](buildkite-runner-update-yaml.images.md)Per un elenco delle immagini disponibili, consulta la sezione. Il tipo di calcolo e l'immagine nell'etichetta sovrascriveranno le impostazioni di ambiente del progetto. Per sovrascrivere le impostazioni dell'ambiente per una build di calcolo CodeBuild EC2 o Lambda, usa la seguente sintassi:

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

   Di seguito è riportato un esempio di passaggi della pipeline di Buildkite con sostituzioni delle dimensioni di immagini e istanze:

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

   Puoi sovrascrivere la flotta utilizzata per la tua build nell'etichetta. Ciò sovrascriverà le impostazioni del parco veicoli configurate nel progetto per utilizzare il parco veicoli specificato. Per ulteriori informazioni, consulta [Esegui build su flotte a capacità riservata](https://docs.aws.amazon.com/codebuild/latest/userguide/fleets.html).

   Per sovrascrivere le impostazioni del tuo parco macchine per una build di calcolo Amazon EC2, usa la seguente sintassi:

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

   Per sovrascrivere sia la flotta che l'immagine utilizzate per la build, usa la seguente sintassi:

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

   Di seguito è riportato un esempio di passaggi della pipeline di Buildkite con sostituzioni di flotta e immagini:

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

1. Puoi scegliere di eseguire i comandi buildspec in linea durante la build del runner Buildkite ospitata autonomamente (vedi per maggiori dettagli). [Esegui i comandi buildspec per le fasi INSTALL, PRE\$1BUILD e POST\$1BUILD](sample-runner-buildkite-buildspec.md) Per specificare che la CodeBuild build deve eseguire i comandi buildspec durante la build del runner self-hosted di Buildkite, utilizzate la seguente sintassi:

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

   Di seguito è riportato un esempio di pipeline Buildkite con un override buildspec:

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

1. Facoltativamente, puoi fornire etichette diverse da quelle supportate. CodeBuild Queste etichette verranno ignorate allo scopo di sovrascrivere gli attributi della build, ma non falliranno la richiesta del webhook. Ad esempio, l'aggiunta `myLabel: “testLabel"` come etichetta non impedirà l'esecuzione della build.

## Passaggio 5: rivedi i risultati
<a name="sample-runner-buildkite-verify"></a>

Ogni volta che viene avviato un job Buildkite nella tua pipeline, CodeBuild riceverà un evento webhook tramite il `job.scheduled` webhook Buildkite. Per ogni job della tua build di Buildkite, CodeBuild inizierai una build per far funzionare un temporaneo Buildkite runner. Il runner è responsabile dell'esecuzione di un singolo job Buildkite. Una volta completato il lavoro, il runner e il processo di compilazione associato verranno immediatamente interrotti.

**Per visualizzare i registri dei lavori del flusso di lavoro, accedi alla pipeline di Buildkite e seleziona la build più recente (puoi attivare una nuova build scegliendo Nuova build).** Una volta avviata la CodeBuild build associata a ciascuno dei tuoi lavori e dopo aver avviato il lavoro, dovresti vedere i log relativi al lavoro all'interno della console Buildkite

![\[Rivedi i risultati.\]](http://docs.aws.amazon.com/it_it/codebuild/latest/userguide/images/buildkite-log.png)


## Autenticazione di Buildkite su un repository privato
<a name="sample-runner-buildkite-config"></a>

Se hai un repository privato configurato all'interno della tua pipeline di Buildkite, Buildkite richiede [autorizzazioni aggiuntive all'interno dell'ambiente di compilazione per estrarre il repository, poiché Buildkite non vende credenziali](https://buildkite.com/docs/agent/v3/github-ssh-keys) a runner ospitati autonomamente perché recuperino da repository privati. Per autenticare l'agente runner self-hosted di Buildkite nel tuo repository di sorgenti private esterne, puoi utilizzare una delle seguenti opzioni.

**Per autenticarsi con CodeBuild**

CodeBuild offre la gestione gestita delle credenziali per i tipi di sorgenti supportati. Per utilizzare le credenziali di CodeBuild origine per estrarre l'archivio dei sorgenti del lavoro, è possibile utilizzare i seguenti passaggi:

1. Nella CodeBuild console, accedi a **Modifica progetto** o crea un nuovo CodeBuild progetto utilizzando la procedura descritta in. [Fase 2: Creare un CodeBuild progetto con un webhook](#sample-runner-buildkite-create-project)

1. In **Opzioni relative alle credenziali di origine di Buildkite**, seleziona il provider del repository di origine del tuo lavoro.

   1. Se desideri utilizzare CodeBuild credenziali a livello di account, verifica che siano configurate correttamente. Inoltre, se il tuo progetto ha un buildspec in linea configurato, verifica che sia abilitato. [ git-credential-helper](https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html#build-spec.env.git-credential-helper)

   1. Se desideri utilizzare credenziali a livello di progetto, seleziona **Usa CodeBuild credenziali di sostituzione solo per questo progetto e imposta le credenziali per il tuo progetto**.

1. **Nelle impostazioni della pipeline Buildkite, vai a Impostazioni del repository.** **Imposta le impostazioni di check-out del repository di origine su Checkout usando HTTPS**  
![\[Rivedi i risultati.\]](http://docs.aws.amazon.com/it_it/codebuild/latest/userguide/images/buildkite-repo-https.png)

**Per autenticarsi con i segreti di Buildkite**

Buildkite mantiene un [plugin ssh-checkout](https://github.com/buildkite-plugins/git-ssh-checkout-buildkite-plugin) che può essere usato per autenticare il runner self-hosted in un repository di sorgenti esterno usando una chiave ssh. Il valore della chiave viene memorizzato come [segreto Buildkite e recuperato automaticamente dall'agente runner self-hosted di Buildkite](https://buildkite.com/docs/pipelines/security/secrets/buildkite-secrets) quando si tenta di aprire un repository privato. Per configurare il plugin ssh-checkout per la tua pipeline Buildkite, puoi utilizzare i seguenti passaggi:

1. Genera una chiave ssh privata e pubblica usando il tuo indirizzo email, ad es. `ssh-keygen -t rsa -b 4096 -C "myEmail@address.com"`

1. Aggiungi la chiave pubblica al tuo archivio sorgente privato. Ad esempio, puoi seguire [questa guida](https://docs.github.com/en/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account) per aggiungere una chiave a un GitHub account.

1. Aggiungi una [nuova chiave SSH segreta](https://buildkite.com/docs/pipelines/hosted-agents/code-access#private-repositories-with-other-providers-add-the-ssh-key-secret) al tuo cluster Buildkite. ****All'interno del tuo cluster Buildkite, seleziona Segreti → Nuovo segreto.**** **Aggiungi un nome per il tuo segreto nel campo **Chiave e aggiungi la tua chiave** SSH privata nel campo Valore:**  
![\[Rivedi i risultati.\]](http://docs.aws.amazon.com/it_it/codebuild/latest/userguide/images/buildkite-secret.png)

1. **All'interno della tua pipeline Buildkite, accedi alle impostazioni del tuo repository e imposta il checkout per utilizzare SSH.**  
![\[Rivedi i risultati.\]](http://docs.aws.amazon.com/it_it/codebuild/latest/userguide/images/buildkite-repo.png)

1. Aggiorna i passaggi YAML della pipeline per utilizzare il plug-in. `git-ssh-checkout` Ad esempio, il seguente file YAML della pipeline utilizza l'azione di checkout con la precedente chiave segreta Buildkite:

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

1. Quando si esegue un job di runner self-hosted di Buildkite all'interno CodeBuild, Buildkite ora utilizzerà automaticamente il valore segreto configurato durante l'estrazione del repository privato

## Opzioni di configurazione di Runner
<a name="sample-buildkite-runner-auth"></a>

È possibile specificare le seguenti variabili di ambiente nella configurazione del progetto per modificare la configurazione di installazione dei runner ospitati autonomamente:
+ `CODEBUILD_CONFIG_BUILDKITE_AGENT_TOKEN`: CodeBuild recupererà il valore segreto configurato come valore di questa variabile di ambiente da per registrare il Gestione dei segreti AWS runner agent self-hosted Buildkite. Questa variabile di ambiente deve essere di tipo `SECRETS_MANAGER` e il valore deve essere il nome del segreto in Secrets Manager. Una variabile di ambiente del token Buildkite Agent è richiesta per tutti i progetti Buildkite runner.
+ `CODEBUILD_CONFIG_BUILDKITE_CREDENTIAL_DISABLE`: Per impostazione predefinita, CodeBuild caricherà le credenziali di origine a livello di account o progetto nell'ambiente di compilazione, poiché queste credenziali vengono utilizzate dall'agente Buildkite per estrarre l'archivio di origine del lavoro. Per disabilitare questo comportamento, puoi aggiungere questa variabile di ambiente al tuo progetto con il valore impostato su`true`, che impedirà il caricamento delle credenziali di origine nell'ambiente di compilazione.

# Esegui i comandi buildspec per le fasi INSTALL, PRE\$1BUILD e POST\$1BUILD
<a name="sample-runner-buildkite-buildspec"></a>

Per impostazione predefinita, CodeBuild ignora qualsiasi comando buildspec quando si esegue una build Buildkite runner ospitata autonomamente. Per eseguire i comandi buildspec durante la compilazione, 

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

 può essere aggiunto come suffisso all'etichetta:

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

Utilizzando questo comando, CodeBuild creerà una cartella chiamata `buildkite-runner` nella cartella di origine principale del contenitore. Quando il runner Buildkite si avvia durante la `BUILD` fase, il runner verrà eseguito nella directory. `buildkite-runner`

Esistono diverse limitazioni quando si utilizza un override di buildspec in una build Buildkite ospitata autonomamente:
+ L'agente Buildkite richiede che le credenziali di origine esistano all'interno dell'ambiente di compilazione per recuperare l'archivio dei sorgenti del lavoro. Se utilizzi le credenziali CodeBuild di origine per l'autenticazione, dovrai abilitarle nel tuo buildspec. `git-credential-helper` Ad esempio, puoi usare il seguente buildspec da abilitare per le tue build Buildkite: `git-credential-helper`

  ```
  version: 0.2
  env:
    git-credential-helper: yes
  phases:
    pre_build:
      commands:
         - echo "Hello World"
  ```
+ CodeBuild non eseguirà i comandi buildspec durante la fase, poiché il runner self-hosted viene eseguito durante la `BUILD` fase. `BUILD`
+ CodeBuild non supporta i file buildspec per le build di Buildkite runner. Per i runner self-hosted di Buildlkite sono supportate solo le specifiche di build in linea
+ Se un comando build fallisce nella `INSTALL` fase `PRE_BUILD` or, non CodeBuild avvierà il runner self-hosted e il job Buildkite dovrà essere annullato manualmente.

# Configurazione di un Buildkite runner a livello di codice
<a name="sample-runner-buildkite-CLI"></a>

Per configurare un progetto Buildkite runner in modo programmatico, dovrai configurare le seguenti risorse:

**Per creare un Buildkite runner a livello di codice**

1. Crea un token dell'agente Buildkite e salva il token in testo semplice all'interno. Gestione dei segreti AWS

1. Configura un CodeBuild progetto con la tua configurazione preferita. Dovrai configurare i seguenti attributi aggiuntivi:

   1. Un valore di ambiente con nome `CODEBUILD_CONFIG_BUILDKITE_AGENT_TOKEN``SECRETS_MANAGER`, tipo e un valore uguale al token dell'agente Buildkite associato al cluster Buildkite.

   1. Tipo di sorgente uguale a `NO_SOURCE`

   1. Autorizzazioni per accedere al segreto creato nella fase 1 del ruolo di servizio del progetto

   Ad esempio, puoi utilizzare il seguente comando per creare un progetto Buildkite runner valido tramite 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. Crea un webhook Buildkite runner sul progetto creato nel passaggio 2. Dovrai utilizzare le seguenti opzioni di configurazione durante la creazione del webhook:

   1. **build-type deve essere uguale** a `RUNNER_BUILDKITE_BUILD`

   1. Un filtro con tipo `EVENT` e pattern uguali a `WORKFLOW_JOB_QUEUED` 

   Ad esempio, puoi utilizzare il seguente comando per creare un webhook Buildkite runner valido tramite 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. Salva l'**URL di payload** e i valori **Secret** restituiti dalla `create-webhook` chiamata e usa le credenziali per creare un webhook all'interno della console Buildkite. Puoi fare riferimento al Passaggio 3: Crea un CodeBuild webhook all'interno di Buildkite [Tutorial: configura un CodeBuild Buildkite runner ospitato](sample-runner-buildkite.md) per una guida su come configurare questa risorsa.

# Risolvi i problemi relativi al webhook per le build fallite o per un lavoro sospeso
<a name="buildkite-runner-troubleshoot-webhook"></a>

 **Problema:** 

Il webhook che hai configurato [Tutorial: configura un CodeBuild Buildkite runner ospitato](sample-runner-buildkite.md) non funziona o il tuo processo di workflow è bloccato in Buildkite.

 **Possibili cause:** 
+ Il tuo evento webhook **job.scheduled** potrebbe non riuscire ad attivare una build. Esamina i registri delle risposte per visualizzare la **risposta** o il messaggio di errore.
+ La tua CodeBuild build fallisce prima di avviare l'agente runner self-hosted di Buildkite per gestire il tuo lavoro.

 **Soluzioni consigliate:** 

Per eseguire il debug degli eventi webhook Buildkite non riusciti:

1. **Nelle impostazioni della tua organizzazione Buildkite, vai a **Notification Services**, seleziona il tuo CodeBuild webhook e poi trova il registro delle richieste.**

1. Trova l'evento `job.scheduled` webhook associato al tuo lavoro Buildkite bloccato. Puoi utilizzare il campo ID del lavoro all'interno del payload del webhook per correlare l'evento webhook al tuo lavoro Buildkite.

1. Seleziona la scheda **Risposta e controlla il corpo della risposta**. Verifica che il codice di stato della **risposta** sia `200` impostato e che il corpo della **risposta** non contenga messaggi imprevisti.  
![\[Risposta per il webhook.\]](http://docs.aws.amazon.com/it_it/codebuild/latest/userguide/images/buildkite-request.png)

# Risolvi i problemi di autorizzazione del webhook
<a name="buildkite-runner-troubleshoot-webhook-permissions"></a>

 **Problema:** 

Il job Buildkite non riesce a eseguire il checkout del repository dei sorgenti del lavoro a causa di problemi di autorizzazione.

 **Possibili cause:** 
+ CodeBuild non dispone di autorizzazioni sufficienti per il check-out dell'archivio dei sorgenti del lavoro.
+ Le impostazioni del repository della pipeline sono impostate per il check-out utilizzando SSH per le credenziali gestite. CodeBuild

 **Soluzioni consigliate:** 
+ Verifica CodeBuild che siano configurate autorizzazioni sufficienti per accedere all'archivio dei sorgenti del lavoro. Inoltre, verifica che il ruolo di servizio del CodeBuild progetto disponga di autorizzazioni sufficienti per accedere all'opzione di autorizzazione di origine configurata.
+ Verifica che la tua pipeline Buildkite sia configurata per utilizzare il checkout tramite HTTPS se utilizzi credenziali del repository di origine gestito. CodeBuild 

# Le sostituzioni delle etichette sono supportate con il runner Buildkite ospitato CodeBuild
<a name="buildkite-runner-update-labels"></a>

Nella tua pipeline Buildkite Steps Agent Tag Labels, puoi fornire una serie di sostituzioni di etichette che modificano la build del runner ospitato autonomamente. Tutte le build non riconosciute da CodeBuild verranno ignorate ma non falliranno la richiesta del webhook. Ad esempio, il seguente flusso di lavoro YAML include sostituzioni per immagine, dimensione dell'istanza, flotta 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>`(richiesto)
+ Ad esempio: `project: "codebuild-myProject"`
+ Obbligatorio per tutte le configurazioni delle fasi della pipeline di Buildkite. *<project name>*deve essere uguale al nome del progetto per il quale è configurato il webhook runner self-hosted.

`queue: "<queue-name>"`
+ Ad esempio: `queue: "<queue-name>"`
+ Utilizzato per indirizzare i lavori Buildkite a una coda specifica. Vedi il [Buildkite Agent Queue](https://buildkite.com/docs/agent/v3/cli-start#the-queue-tag) Tag per ulteriori informazioni.

 `image: "<environment-type>-<image-identifier>"` 
+ Ad esempio: `image: "arm-3.0"`
+ Sostituisce l'immagine e il tipo di ambiente utilizzati quando si avvia la build self-hosted runner con un'immagine curata. Per maggiori informazioni sui valori supportati, consulta. [Immagini di calcolo supportate con il runner Buildkite ospitato CodeBuild](buildkite-runner-update-yaml.images.md)

  1. Per sovrascrivere l'immagine e il tipo di ambiente utilizzati con un'immagine personalizzata, usa `image: "custom-<environment-type>-<custom-image-identifier>"`

  1. Esempio: 

     ```
     image:
           "custom-arm-public.ecr.aws/codebuild/amazonlinux-aarch64-standard:3.0"
     ```
**Nota**  
Se l'immagine personalizzata si trova in un registro privato, è necessario configurare le credenziali di registro appropriate nel progetto. CodeBuild 

`instance-size: "<instance-size>"`
+ Ad esempio: `instance-size: "medium"`
+ Sostituisce il tipo di istanza utilizzato all'avvio della build self-hosted runner. Per maggiori informazioni sui valori supportati, consulta. [Immagini di calcolo supportate con il runner Buildkite ospitato CodeBuild](buildkite-runner-update-yaml.images.md)

`fleet: "<fleet-name>"`
+ Ad esempio: `fleet: "myFleet"`
+ Sostituisce le impostazioni del parco veicoli configurate nel progetto per utilizzare il parco veicoli specificato. Per ulteriori informazioni, consulta [Run si basa su flotte a capacità riservata](https://docs.aws.amazon.com/codebuild/latest/userguide/fleets.html).

`buildspec-override: "<boolean>"`
+ Ad esempio: `buildspec-override: "true"`
+ Consente alla build di eseguire i comandi buildspec nelle fasi, e `INSTALL` `PRE_BUILD``POST_BUILD`, se impostata su. `true`

# Immagini di calcolo supportate con il runner Buildkite ospitato CodeBuild
<a name="buildkite-runner-update-yaml.images"></a>

Nell'etichetta in cui hai configurato[Buildkite runner autogestito in AWS CodeBuild](buildkite-runner.md), puoi sovrascrivere le impostazioni dell'ambiente Amazon EC2 utilizzando i valori nelle prime tre colonne. CodeBuild fornisce le seguenti immagini di calcolo di Amazon EC2. Per ulteriori informazioni sull' 

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

Inoltre, puoi sovrascrivere le impostazioni dell'ambiente Lambda utilizzando i seguenti valori. Per ulteriori informazioni sul calcolo CodeBuild Lambda, vedere. [Esegui build su calcolo AWS Lambda](lambda.md) CodeBuild supporta le seguenti immagini di calcolo Lambda:

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

Per ulteriori informazioni, consultare [Modi e tipi di calcolo dell'ambiente di creazione](build-env-ref-compute-types.md) e [Immagini Docker fornite da CodeBuild](build-env-ref-available.md).