

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à.

# GitHub I runner Actions ospitati autonomamente in AWS CodeBuild
<a name="action-runner-overview"></a>

Puoi configurare il tuo progetto per configurare gli GitHub Actions runner ospitati autonomamente in CodeBuild contenitori per elaborare i GitHub job del flusso di lavoro Actions. Questo può essere fatto configurando un webhook utilizzando il CodeBuild progetto e aggiornando il flusso di lavoro GitHub Actions YAML per utilizzare runner ospitati autonomamente ospitati su macchine. CodeBuild 

I passaggi di alto livello per configurare un CodeBuild progetto per l'esecuzione GitHub dei job Actions sono i seguenti:

1. Se non l'hai già fatto, crea un token di accesso personale o connettiti a un' OAuth app a cui connettere il tuo progetto. GitHub

1. Accedi alla CodeBuild console e crea un CodeBuild progetto con un webhook e configura i filtri webhook.

1. Aggiorna il tuo flusso di lavoro GitHub Actions in YAML GitHub per configurare il tuo ambiente di compilazione.

Per una procedura più dettagliata, consulta. [Tutorial: configura un GitHub Actions CodeBuild runner ospitato](action-runner.md)

Questa funzionalità consente ai job del flusso di lavoro GitHub Actions di ottenere l'integrazione nativa con AWS, il che offre sicurezza e praticità attraverso funzionalità come IAM AWS CloudTrail, Gestione dei segreti AWS integrazione e Amazon VPC. Puoi accedere ai tipi di istanze più recenti, incluse le istanze basate su ARM.

**Topics**
+ [Informazioni su CodeBuild GitHub -hosted Actions runner](action-runner-questions.md)
+ [Tutorial: configura un GitHub Actions CodeBuild runner ospitato](action-runner.md)
+ [Risolvi i problemi relativi al webhook](action-runner-troubleshoot-webhook.md)
+ [Le sostituzioni delle etichette sono supportate con il runner -hosted Actions CodeBuild GitHub](sample-github-action-runners-update-labels.md)
+ [Immagini di calcolo supportate con il runner -hosted Actions CodeBuild GitHub](sample-github-action-runners-update-yaml.images.md)

# Informazioni su CodeBuild GitHub -hosted Actions runner
<a name="action-runner-questions"></a>

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

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

Puoi includere le sostituzioni di immagini e istanze nell'etichetta per specificare un ambiente di compilazione diverso per ciascuno dei processi del flusso di lavoro Actions. GitHub Questa operazione può essere eseguita senza la necessità di creare più CodeBuild progetti o webhook. Ad esempio, ciò è utile quando è necessario utilizzare una [matrice per i lavori del flusso di lavoro](https://docs.github.com/en/actions/using-jobs/using-a-matrix-for-your-jobs).

```
name: Hello World
on: [push]
jobs:
  Hello-World-Job:
    runs-on:
      - codebuild-myProject-${{ github.run_id }}-${{ github.run_attempt }}
        image:${{ matrix.os }}
        instance-size:${{ matrix.size }}
    strategy:
      matrix:
        include:
          - os: arm-3.0
            size: small
          - os: linux-5.0
            size: large
    steps:
      - run: echo "Hello World!"
```

**Nota**  
Le virgolette potrebbero essere necessarie se `runs-on` sono presenti più etichette contenenti il contesto GitHub Actions.

## Posso usare CloudFormation per questa funzionalità?
<a name="action-runner-cfn"></a>

Sì, puoi includere un gruppo di filtri nel tuo CloudFormation modello che specifichi un filtro GitHub Actions workflow Job Event nel webhook del progetto.

```
Triggers:
  Webhook: true
  FilterGroups:
    - - Type: EVENT
        Pattern: WORKFLOW_JOB_QUEUED
```

Per ulteriori informazioni, consulta [Filtra gli eventi GitHub webhook ()CloudFormation](github-webhook-events-cfn.md).

Se hai bisogno di aiuto per configurare le credenziali del progetto nel tuo CloudFormation modello, consulta [AWS::CodeBuild::SourceCredential](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-sourcecredential.html)la *Guida per l'AWS CloudFormation utente* per ulteriori informazioni.

## Come posso mascherare i segreti quando utilizzo questa funzione?
<a name="action-runner-secrets"></a>

Per impostazione predefinita, i segreti stampati nel registro non sono mascherati. Se desideri mascherare i tuoi segreti, puoi usare la seguente sintassi:. `::add-mask::value` Quello che segue è un esempio di come puoi usare questa sintassi nel tuo YAML:

```
name: Secret Job
on: [push]
jobs:
  Secret-Job:
    runs-on: codebuild-myProject-${{ github.run_id }}-${{ github.run_attempt }}
    env:
      SECRET_NAME: "secret-name"
    steps:
      - run: echo "::add-mask::$SECRET_NAME"
```

Per ulteriori informazioni, vedere [Mascherare un valore in un accesso](https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#masking-a-value-in-a-log). GitHub

## Posso ricevere eventi webhook di GitHub Actions da più repository all'interno di un singolo progetto?
<a name="action-runner-webhooks"></a>

CodeBuild supporta webhook di livello organizzativo e globale, che ricevono eventi da un'organizzazione o un'impresa specifica. Per ulteriori informazioni, consulta [GitHub webhook globali e organizzativi](github-global-organization-webhook.md).

## Quali aree geografiche supportano l'utilizzo di un Actions CodeBuild runner ospitato GitHub ?
<a name="action-runner-hosted-regions"></a>

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

## Quali piattaforme supportano l'utilizzo di un GitHub Actions runner CodeBuild ospitato?
<a name="action-runner-platform"></a>

CodeBuild-hosted GitHub Actions runner sono supportati sia su Amazon [AWS Lambda](lambda.md)EC2 che su Compute. Puoi utilizzare le seguenti piattaforme: Amazon Linux 2, Amazon Linux 2023, Ubuntu e Windows Server Core 2019. Per ulteriori informazioni, consultare [Immagini di calcolo EC2](ec2-compute-images.md) e [Immagini di calcolo Lambda](lambda-compute-images.md).

# Tutorial: configura un GitHub Actions CodeBuild runner ospitato
<a name="action-runner"></a>

Questo tutorial mostra come configurare i CodeBuild progetti per eseguire i job GitHub Actions. Per ulteriori informazioni sull'utilizzo di GitHub Actions, CodeBuild vedere[Tutorial: configura un GitHub Actions CodeBuild runner ospitato](#action-runner).<a name="sample-github-action-runners-prerequisites"></a>

Per completare questo tutorial, è necessario innanzitutto:
+ Connettiti con un token di accesso personale, un segreto, un'app o OAuth GitHub un'app di Secrets Manager. Se desideri connetterti con un' OAuth app, devi utilizzare la CodeBuild console per farlo. Se desideri creare un token di accesso personale, puoi utilizzare la CodeBuild console o utilizzare l'[ImportSourceCredentials API](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ImportSourceCredentials.html). Per ulteriori istruzioni, consulta [GitHub e l'accesso a GitHub Enterprise Server in CodeBuild](access-tokens-github-overview.md).
+ Connect CodeBuild al tuo GitHub account. A tale scopo, puoi effettuare una delle seguenti operazioni:
  + Puoi aggiungerlo GitHub come provider di origine nella console. Puoi connetterti con un token di accesso personale, un segreto di Secrets Manager, OAuth un'app o GitHub un'app. Per istruzioni, consulta [GitHub e l'accesso a GitHub Enterprise Server in CodeBuild](access-tokens-github-overview.md).
  + Puoi importare GitHub le tue credenziali tramite l'[ImportSourceCredentials API](https://docs.aws.amazon.com/cli/latest/reference/codebuild/import-source-credentials.html). Questo può essere fatto solo con un token di accesso personale. Se ti connetti tramite un' OAuth app, devi invece connetterti utilizzando la console. Per istruzioni, consulta [Connect GitHub con un token di accesso (CLI)](access-tokens-github.md#access-tokens-github-cli).
**Nota**  
Questa operazione deve essere eseguita solo se non ti sei connesso GitHub al tuo account.

## Fase 1: Creare un CodeBuild progetto con un webhook
<a name="sample-github-action-runners-create-project"></a>

In questo passaggio, creerai un CodeBuild progetto con un webhook e lo esaminerai nella GitHub console. Puoi anche scegliere GitHub Enterprise come fornitore di origine. Per ulteriori informazioni sulla creazione di un webhook in GitHub Enterprise, consulta[GitHub webhook manuali](github-manual-webhook.md).

**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. Creare un progetto di compilazione. 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).

1. **In **Tipo di progetto**, scegli Runner project.**

   In **Runner**:

   1. Per il **provider Runner, scegli**. **GitHub**

   1. **Per la **posizione del Runner**, scegli Repository.**

   1. **Per Repository URL in Repository, scegli **repository-name.** https://github.com/user-name/**
**Nota**  
Per impostazione predefinita, il progetto riceverà solo `WORKFLOW_JOB_QUEUED` eventi per un singolo repository. Se desideri ricevere eventi per tutti gli archivi all'interno di un'organizzazione o di un'azienda, consulta. [GitHub webhook globali e organizzativi](github-global-organization-webhook.md)

1. 
   +  In **Environment (Ambiente)**: 
     + Scegli un'**immagine Environment** supportata e **Calcola**. Tieni presente che hai la possibilità di sovrascrivere le impostazioni dell'immagine e dell'istanza utilizzando un'etichetta nel flusso di lavoro GitHub Actions (YAML). Per ulteriori informazioni, consulta [Passaggio 2: aggiorna il flusso di lavoro di GitHub Actions (YAML)](#sample-github-action-runners-update-yaml)
   +  In **Buildspec**: 
     + Nota che il tuo buildspec verrà ignorato 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.

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

1. Apri la GitHub console all'indirizzo `https://github.com/user-name/repository-name/settings/hooks` per verificare che un webhook sia stato creato e che sia abilitato a fornire eventi **Workflow jobs**.

## Passaggio 2: aggiorna il flusso di lavoro di GitHub Actions (YAML)
<a name="sample-github-action-runners-update-yaml"></a>

In questo passaggio, aggiornerai il file YAML del flusso di lavoro GitHub Actions [https://github.com/](https://github.com/)per configurare l'ambiente di compilazione e utilizzare i runner self-hosted di GitHub Actions in. CodeBuild Per ulteriori informazioni, consulta [Uso delle etichette con](https://docs.github.com/en/actions/hosting-your-own-runners/managing-self-hosted-runners/using-labels-with-self-hosted-runners) runner ospitati autonomamente e. [Le sostituzioni delle etichette sono supportate con il runner -hosted Actions CodeBuild GitHub](sample-github-action-runners-update-labels.md)

### Aggiorna il flusso di lavoro GitHub Actions (YAML).
<a name="sample-github-action-runners-update-yaml.setup"></a>

Vai [https://github.com/](https://github.com/)e aggiorna l'[https://docs.github.com/en/actions/hosting-your-own-runners/managing-self-hosted-runners/using-labels-with-self-hosted-runners](https://docs.github.com/en/actions/hosting-your-own-runners/managing-self-hosted-runners/using-labels-with-self-hosted-runners)impostazione nel tuo flusso di lavoro GitHub Actions YAML per configurare il tuo ambiente di compilazione. A tale scopo, puoi effettuare una delle seguenti operazioni:
+ Puoi specificare il nome del progetto e l'ID di esecuzione, nel qual caso la build utilizzerà la configurazione del progetto esistente per il calcolo, l'immagine, la versione dell'immagine e la dimensione dell'istanza. Il nome del progetto è necessario per collegare le impostazioni AWS relative del lavoro GitHub Actions a un progetto specifico CodeBuild. Includendo il nome del progetto in YAML, CodeBuild è consentito richiamare lavori con le impostazioni di progetto corrette. Fornendo l'ID di esecuzione, CodeBuild mapperà la build a specifiche esecuzioni del flusso di lavoro e interromperà la compilazione quando l'esecuzione del flusso di lavoro viene annullata. Per ulteriori informazioni, consulta [`github`context](https://docs.github.com/en/actions/learn-github-actions/contexts#github-context).

  ```
  runs-on: codebuild-<project-name>-${{ github.run_id }}-${{ github.run_attempt }}
  ```
**Nota**  
Assicurati che *<project-name>* corrisponda al nome del progetto che hai creato nel passaggio precedente. Se non corrisponde, non CodeBuild elaborerà il webhook e il flusso di lavoro GitHub Actions potrebbe bloccarsi.

  Di seguito è riportato un esempio di flusso di lavoro GitHub Actions YAML:

  ```
  name: Hello World
  on: [push]
  jobs:
    Hello-World-Job:
      runs-on:
        - codebuild-myProject-${{ github.run_id }}-${{ github.run_attempt }}
      steps:
        - run: echo "Hello World!"
  ```
+ Puoi anche sovrascrivere l'immagine e il tipo di calcolo nell'etichetta. Vedi [Immagini di calcolo supportate con il runner -hosted Actions CodeBuild GitHub](sample-github-action-runners-update-yaml.images.md) per un elenco di immagini curate. Per l'utilizzo di immagini personalizzate, consulta[Le sostituzioni delle etichette sono supportate con il runner -hosted Actions CodeBuild GitHub](sample-github-action-runners-update-labels.md). 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:

  ```
  runs-on:
    - codebuild-<project-name>-${{ github.run_id }}-${{ github.run_attempt }}
      image:<environment-type>-<image-identifier>
      instance-size:<instance-size>
  ```

  Di seguito è riportato un esempio di flusso di lavoro YAML di Actions: GitHub 

  ```
  name: Hello World
  on: [push]
  jobs:
    Hello-World-Job:
      runs-on:
        - codebuild-myProject-${{ github.run_id }}-${{ github.run_attempt }}
          image:arm-3.0
          instance-size:small
      steps:
        - run: 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 [Run si basa su flotte a capacità riservata](fleets.md). Per sovrascrivere le impostazioni del tuo parco macchine per una build di calcolo Amazon EC2, usa la seguente sintassi:

  ```
  runs-on:
    - codebuild-<project-name>-${{ github.run_id }}-${{ github.run_attempt }}
      fleet:<fleet-name>
  ```

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

  ```
  runs-on:
    - codebuild-<project-name>-${{ github.run_id }}-${{ github.run_attempt }}
      fleet:<fleet-name>
      image:<environment-type>-<image-identifier>
  ```

  Di seguito è riportato un esempio di flusso di lavoro YAML di GitHub Actions:

  ```
  name: Hello World
  on: [push]
  jobs:
    Hello-World-Job:
      runs-on:
        - codebuild-myProject-${{ github.run_id }}-${{ github.run_attempt }}
          fleet:myFleet
          image:arm-3.0
      steps:
        - run: echo "Hello World!"
  ```
+ Per eseguire i lavori GitHub Actions su un'immagine personalizzata, puoi configurare un'immagine personalizzata nel tuo CodeBuild progetto ed evitare di fornire un'etichetta di sostituzione dell'immagine. CodeBuild utilizzerà l'immagine configurata nel progetto se non viene fornita alcuna etichetta di sostituzione dell'immagine.
+ 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 `testLabel` come etichetta non impedirà l'esecuzione della build.

**Nota**  
Se una dipendenza fornita da GitHub -hosted runners non è disponibile nell' CodeBuildambiente, puoi installare la dipendenza utilizzando GitHub Actions nell'esecuzione del flusso di lavoro. Ad esempio, puoi usare l'[https://github.com/actions/setup-python](https://github.com/actions/setup-python)azione per installare Python per il tuo ambiente di compilazione.

### Esegui i comandi buildspec nelle fasi INSTALL, PRE\$1BUILD e POST\$1BUILD
<a name="sample-github-action-runners-update-yaml.buildspec"></a>

Per impostazione predefinita, CodeBuild ignora qualsiasi comando buildspec durante l'esecuzione di una build Actions ospitata autonomamente. GitHub Per eseguire i comandi buildspec durante la compilazione, è `buildspec-override:true` possibile aggiungere come suffisso all'etichetta:

```
runs-on:
  - codebuild-<project-name>-${{ github.run_id }}-${{ github.run_attempt }}
    buildspec-override:true
```

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

Esistono diverse limitazioni quando si utilizza un override buildspec in una build di Actions ospitata autonomamente: GitHub 
+ CodeBuild non eseguirà i comandi buildspec durante la `BUILD` fase, poiché il runner ospitato autonomamente viene eseguito durante la fase. `BUILD`
+ CodeBuild non scaricherà alcuna fonte primaria o secondaria durante la fase. `DOWNLOAD_SOURCE` Se hai configurato un file buildspec, solo quel file verrà scaricato dalla fonte principale del progetto.
+ Se un comando build fallisce nella `INSTALL` fase `PRE_BUILD` or, non CodeBuild avvierà il runner self-hosted e il processo di workflow GitHub Actions dovrà essere annullato manualmente.
+ CodeBuild recupera il token runner durante la `DOWNLOAD_SOURCE` fase, che ha una scadenza di un'ora. Se le tue `INSTALL` fasi `PRE_BUILD` o superano un'ora, il runner token potrebbe scadere prima dell'inizio del runner ospitato autonomamente. GitHub 

## Passaggio 3: rivedi i risultati
<a name="sample-github-action-runners-verify"></a>

Ogni volta che viene eseguito un flusso di lavoro GitHub Actions, riceve CodeBuild gli eventi del processo del flusso di lavoro tramite il webhook. Per ogni job del workflow, CodeBuild avvia una build per eseguire un Actions runner temporaneo. GitHub Il runner è responsabile dell'esecuzione di un singolo processo di workflow. Una volta completato il processo, il runner e il processo di compilazione associato verranno immediatamente interrotti.

Per visualizzare i registri dei lavori del flusso di lavoro, accedi al tuo repository in GitHub, scegli **Azioni**, scegli il flusso di lavoro desiderato, quindi scegli il **Job** specifico per il quale desideri esaminare i log.

Puoi rivedere le etichette richieste nel registro mentre il lavoro è in attesa di essere ritirato da un runner che si occupa di hosting autonomo. CodeBuild

![\[Caricamento del registro del lavoro.\]](http://docs.aws.amazon.com/it_it/codebuild/latest/userguide/images/hello-world-loading.png)


Una volta completato il lavoro, potrai visualizzarne il registro.

![\[Il registro del lavoro.\]](http://docs.aws.amazon.com/it_it/codebuild/latest/userguide/images/hello-world-log.png)


## GitHub Opzioni di configurazione di Actions Runner
<a name="sample-github-action-runners-config"></a>

È possibile specificare le seguenti variabili di ambiente nella configurazione del progetto per modificare la configurazione di installazione dei corridori ospitati autonomamente.

`CODEBUILD_CONFIG_GITHUB_ACTIONS_ORG_REGISTRATION_NAME`  
CodeBuild registrerà i corridori ospitati autonomamente con il nome dell'organizzazione specificato come valore di questa variabile di ambiente. Per ulteriori informazioni sulla registrazione dei corridori a livello di organizzazione e sulle autorizzazioni necessarie, consulta [Creare una configurazione per un corridore per un' just-in-time](https://docs.github.com/en/rest/actions/self-hosted-runners?apiVersion=2022-11-28#create-configuration-for-a-just-in-time-runner-for-an-organization)organizzazione.

`CODEBUILD_CONFIG_GITHUB_ACTIONS_ENTERPRISE_REGISTRATION_NAME`  
CodeBuild registrerà i corridori ospitati autonomamente con il nome aziendale specificato come valore di questa variabile di ambiente. Per ulteriori informazioni sulla registrazione dei runner a livello aziendale e sulle autorizzazioni necessarie, consulta [Create configuration for a runner for an](https://docs.github.com/en/enterprise-server/rest/actions/self-hosted-runners?apiVersion=2022-11-28#create-configuration-for-a-just-in-time-runner-for-an-enterprise) Enterprise. just-in-time  
Per impostazione predefinita, gli Enterprise runner non sono disponibili negli archivi delle organizzazioni. Affinché i runner ospitati autonomamente possano iniziare a lavorare nel flusso di lavoro, potrebbe essere necessario configurare le impostazioni di accesso del gruppo di runner. Per ulteriori informazioni, consulta [Rendere disponibili i runner aziendali](https://docs.github.com/en/enterprise-server/actions/hosting-your-own-runners/managing-self-hosted-runners/adding-self-hosted-runners#making-enterprise-runners-available-to-repositories) nei repository.

`CODEBUILD_CONFIG_GITHUB_ACTIONS_RUNNER_GROUP_ID`  
CodeBuild registrerà i corridori ospitati autonomamente nell'ID intero del gruppo runner memorizzato come valore di questa variabile di ambiente. Per impostazione predefinita, questo valore è 1. Per ulteriori informazioni sui gruppi di corridori ospitati autonomamente, consulta [Gestione dell'accesso ai corridori ospitati autonomamente](https://docs.github.com/en/rest/actions/self-hosted-runners?apiVersion=2022-11-28#create-configuration-for-a-just-in-time-runner-for-an-organization) tramite gruppi.

`CODEBUILD_CONFIG_GITHUB_ACTIONS_ORG_REGISTRATION_NAME`  
Per configurare la registrazione dei corridori a livello di organizzazione utilizzando il file YAML del flusso di lavoro GitHub Actions, puoi utilizzare la seguente sintassi:  

```
name: Hello World
on: [push]
jobs:
  Hello-World-Job:
    runs-on:
      - codebuild-myProject-${{ github.run_id }}-${{ github.run_attempt }}
        organization-registration-name:myOrganization
    steps:
      - run: echo "Hello World!"
```

`CODEBUILD_CONFIG_GITHUB_ACTIONS_ENTERPRISE_REGISTRATION_NAME`  
Per configurare la registrazione dei runner di livello aziendale utilizzando il file YAML del flusso di lavoro GitHub Actions, è possibile utilizzare la seguente sintassi:  

```
name: Hello World
on: [push]
jobs:
  Hello-World-Job:
    runs-on:
      - codebuild-myProject-${{ github.run_id }}-${{ github.run_attempt }}
        enterprise-registration-name:myEnterprise
    steps:
      - run: echo "Hello World!"
```

`CODEBUILD_CONFIG_GITHUB_ACTIONS_RUNNER_GROUP_ID`  
Per configurare la registrazione dei corridori a uno specifico ID di gruppo di corridori utilizzando il file YAML del flusso di lavoro GitHub Actions, puoi utilizzare la seguente sintassi:  

```
name: Hello World
on: [push]
jobs:
  Hello-World-Job:
    runs-on:
      - codebuild-myProject-${{ github.run_id }}-${{ github.run_attempt }}
        registration-group-id:3
    steps:
      - run: echo "Hello World!"
```

## Filter Actions webhook events () GitHub CloudFormation
<a name="sample-github-action-runners-webhooks-cfn"></a>

La seguente parte di un CloudFormation modello in formato YAML crea un gruppo di filtri che attiva una build quando restituisce true. Il seguente gruppo di filtri specifica una richiesta di lavoro del flusso di lavoro GitHub Actions con un nome di flusso di lavoro corrispondente all'espressione regolare. `\[CI-CodeBuild\]`

```
CodeBuildProject:
  Type: AWS::CodeBuild::Project
  Properties:
    Name: MyProject
    ServiceRole: service-role
    Artifacts:
      Type: NO_ARTIFACTS
    Environment:
      Type: LINUX_CONTAINER
      ComputeType: BUILD_GENERAL1_SMALL
      Image: aws/codebuild/standard:5.0
    Source:
      Type: GITHUB
      Location: CODEBUILD_DEFAULT_WEBHOOK_SOURCE_LOCATION
    Triggers:
      Webhook: true
      ScopeConfiguration:
        Name: organization-name
        Scope: GITHUB_ORGANIZATION
      FilterGroups:
        - - Type: EVENT
            Pattern: WORKFLOW_JOB_QUEUED
          - Type: WORKFLOW_NAME
            Pattern: \[CI-CodeBuild\]
```

## Filter GitHub Actions webhook events ()AWS CDK
<a name="sample-github-action-runners-webhooks-cdk"></a>

Il AWS CDK modello seguente crea un gruppo di filtri che attiva una build quando restituisce true. Il seguente gruppo di filtri specifica una richiesta di lavoro del flusso di lavoro GitHub Actions.

```
import { aws_codebuild as codebuild } from 'aws-cdk-lib';
import {EventAction, FilterGroup} from "aws-cdk-lib/aws-codebuild";

const source = codebuild.Source.gitHub({
      owner: 'owner',
      repo: 'repo',
      webhook: true,
      webhookFilters: [FilterGroup.inEventOf(EventAction.WORKFLOW_JOB_QUEUED)],
    })
```

## Eventi webhook di Filter GitHub Actions (Terraform)
<a name="sample-github-action-runners-webhooks-terraform"></a>

Il seguente modello Terraform crea un gruppo di filtri che attiva una build quando restituisce true. Il seguente gruppo di filtri specifica una richiesta di lavoro del flusso di lavoro GitHub Actions.

```
resource "aws_codebuild_webhook" "example" {
  project_name = aws_codebuild_project.example.name
  build_type   = "BUILD"
  filter_group {
    filter {
      type    = "EVENT"
      pattern = "WORKFLOW_JOB_QUEUED"
    }
  }
}
```

## Filter GitHub Actions webhook events ()AWS CLI
<a name="sample-github-action-runners-webhooks-cli"></a>

 AWS CLI I comandi seguenti creano un progetto GitHub Actions runner ospitato autonomamente con un gruppo di filtri per le richieste di lavoro del flusso di lavoro di GitHub Actions che attiva una build quando restituisce true.

```
aws codebuild create-project \
--name <project name> \
--source "{\"type\":\"GITHUB\",\"location\":\"<repository location>\",\"buildspec\":\"\"}" \
--artifacts {"\"type\":\"NO_ARTIFACTS\""} \
--environment "{\"type\": \"LINUX_CONTAINER\",\"image\": \"aws/codebuild/amazonlinux-x86_64-standard:5.0\",\"computeType\": \"BUILD_GENERAL1_MEDIUM\"}" \
--service-role "<service role ARN>"
```

```
aws codebuild create-webhook \
--project-name <project name> \
--filter-groups "[[{\"type\":\"EVENT\",\"pattern\":\"WORKFLOW_JOB_QUEUED\"}]]"
```

# Risolvi i problemi relativi al webhook
<a name="action-runner-troubleshoot-webhook"></a>

**Problema:** il webhook configurato [Tutorial: configura un GitHub Actions CodeBuild runner ospitato](action-runner.md) non funziona o il processo del flusso di lavoro è in sospeso. GitHub

**Possibili cause:**
+ Il tuo evento webhook **Workflow jobs** potrebbe non riuscire ad attivare una build. Esamina i registri delle **risposte** per visualizzare la risposta o il messaggio di errore.
+ I tuoi lavori vengono assegnati al runner agent errato a causa della configurazione delle etichette. Questo problema può verificarsi quando uno dei lavori all'interno di una singola esecuzione del flusso di lavoro ha meno etichette rispetto a un altro lavoro. Ad esempio, se hai due lavori con le seguenti etichette nello stesso flusso di lavoro, esegui:
  + **Job 1**: `codebuild-myProject-${{ github.run_id }}-${{ github.run_attempt }}`
  + **Job 2**:`codebuild-myProject-${{ github.run_id }}-${{ github.run_attempt }}`, `instance-size:medium`

  Quando si esegue il routing di un job GitHub Actions ospitato autonomamente, lo GitHub indirizzerà a qualsiasi runner con tutte le etichette specificate per il lavoro. Questo comportamento significa che **Job 1** può essere prelevato dal runner creato per **Job 1** o **Job 2**, ma **Job 2** può essere prelevato solo dal runner creato per **Job 2** poiché ha un'etichetta aggiuntiva. Se **Job 1** viene scelto dal runner creato per **Job 2**, **Job 2** si bloccherà poiché il **Job 1** runner non ha l'`instance-size:medium`etichetta.

**Soluzioni consigliate:**

Quando crei più lavori all'interno della stessa esecuzione del flusso di lavoro, utilizza lo stesso numero di sostituzioni di etichette per ogni lavoro o assegna a ciascun lavoro un'etichetta personalizzata, ad esempio o. `job1` `job2`

Se l'errore persiste, usa le seguenti istruzioni per eseguire il debug del problema.

1. Apri la GitHub console all'indirizzo `https://github.com/user-name/repository-name/settings/hooks` per visualizzare le impostazioni del webhook del tuo repository. In questa pagina, vedrai un webhook creato per il tuo repository.

1. **Scegli **Modifica** e conferma che il webhook è abilitato a fornire eventi di lavoro Workflow.**  
![\[Gli eventi di lavoro del flusso di lavoro sono abilitati nel tuo webhook.\]](http://docs.aws.amazon.com/it_it/codebuild/latest/userguide/images/github-actions-workflow-jobs.png)

1.  Vai alla scheda **Consegne recenti**, trova l'`workflow_job.queued`evento corrispondente ed espandi l'evento. 

1.  Controlla il campo **delle etichette** nel **Payload** e assicurati che sia come previsto. 

1.  Infine, esamina la scheda **Risposta**, poiché contiene la risposta o il messaggio di errore restituito da CodeBuild.   
![\[La risposta o il messaggio di errore restituito da CodeBuild.\]](http://docs.aws.amazon.com/it_it/codebuild/latest/userguide/images/github-actions-workflow-jobs-response.png)

1.  In alternativa, è possibile eseguire il debug degli errori dei webhook utilizzando's. GitHub APIs Puoi visualizzare le consegne recenti per un webhook utilizzando l'API [List deliveries](https://docs.github.com/en/rest/repos/webhooks?apiVersion=2022-11-28#list-deliveries-for-a-repository-webhook) for a repository webhook: 

   ```
   gh api \
     -H "Accept: application/vnd.github+json" \
     -H "X-GitHub-Api-Version: 2022-11-28" \
     /repos/owner/repo/hooks/hook-id/deliveries
   ```

    Dopo aver trovato la distribuzione del webhook di cui stai cercando di eseguire il debug e aver annotato l'ID di consegna, puoi utilizzare l'API webhook [Get a delivery for a](https://docs.github.com/en/rest/repos/webhooks?apiVersion=2022-11-28#get-a-delivery-for-a-repository-webhook) repository. CodeBuildla risposta del payload di consegna del webhook è disponibile nella sezione: `response` 

   ```
   gh api \
     -H "Accept: application/vnd.github+json" \
     -H "X-GitHub-Api-Version: 2022-11-28" \
     /repos/owner/repo/hooks/hook-id/deliveries/delivery-id
   ```

**Problema:** i trigger GitHub Actions with [deployment protection](https://docs.github.com/en/actions/managing-workflow-runs-and-deployments/managing-deployments/reviewing-deployments) rules abilitati vengono compilati CodeBuild prima dell'approvazione della distribuzione.

**Possibili cause:** CodeBuild recupera la distribuzione e l'ambiente associati al job GitHub Actions, se esistono, per verificare se sono approvati. Se CodeBuild non riesce a recuperare la distribuzione o l'ambiente, la CodeBuild build potrebbe essere attivata prematuramente.

**Soluzioni consigliate:** verifica che le credenziali associate ai CodeBuild progetti dispongano delle autorizzazioni di lettura per le distribuzioni e le azioni interne. GitHub

# Le sostituzioni delle etichette sono supportate con il runner -hosted Actions CodeBuild GitHub
<a name="sample-github-action-runners-update-labels"></a>

Nel tuo flusso di lavoro GitHub Actions (YAML), puoi fornire una serie di sostituzioni di etichette che modificano la build del tuo 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:

```
name: Hello World
on: [push]
jobs:
  Hello-World-Job:
    runs-on:
      - codebuild-myProject-${{ github.run_id }}-${{ github.run_attempt }}
        image:${{ matrix.os }}
        instance-size:${{ matrix.size }}
        fleet:myFleet
        buildspec-override:true
    strategy:
      matrix:
        include:
          - os: arm-3.0
            size: small
          - os: linux-5.0
            size: large
    steps:
      - run: echo "Hello World!"
```

**Nota**  
[Se il processo del flusso di lavoro è in sospeso GitHub, consulta [Risolvi i problemi relativi al webhook](action-runner-troubleshoot-webhook.md) e Utilizzo di etichette personalizzate per indirizzare i lavori.](https://docs.github.com/en/enterprise-server@3.12/actions/hosting-your-own-runners/managing-self-hosted-runners/using-self-hosted-runners-in-a-workflow?learn=hosting_your_own_runners&learnProduct=actions#using-custom-labels-to-route-jobs)

`codebuild-<project-name>-${{github.run_id}}-${{github.run_attempt}}`(obbligatorio)
+ Ad esempio: `codebuild-fake-project-${{ github.run_id }}-${{ github.run_attempt }}`
+ Obbligatorio per tutti i flussi di lavoro GitHub Actions YAMLs. *<project name>*deve essere uguale al nome del progetto per il quale è configurato il webhook runner self-hosted.

`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 -hosted Actions CodeBuild GitHub](sample-github-action-runners-update-yaml.images.md)
  + Per sovrascrivere l'immagine e il tipo di ambiente utilizzati con un'immagine personalizzata, usa `image:custom-<environment-type>-<custom-image-identifier>`
  + Ad esempio: `image:custom-arm-public.ecr.aws/codebuild/amazonlinux-aarch64-standard:3.0`
**Nota**  
Se l'immagine personalizzata si trova in un registro privato, vedi. [Configura una credenziale di registro privata per i corridori ospitati autonomamente](private-registry-sample-configure-runners.md)

`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 -hosted Actions CodeBuild GitHub](sample-github-action-runners-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](fleets.md).

`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`

## Sovrascrittura di un'etichetta singola (legacy)
<a name="sample-github-action-runners-update-single-labels"></a>

CodeBuild consente di fornire più sostituzioni in una singola etichetta utilizzando quanto segue:
+ Per sovrascrivere le impostazioni dell'ambiente per una build di calcolo Amazon EC2/Lambda, usa la seguente sintassi:

  ```
  runs-on: codebuild-<project-name>-${{ github.run_id }}-${{ github.run_attempt }}-<environment-type>-<image-identifier>-<instance-size>
  ```
+ Per sovrascrivere le impostazioni del tuo parco macchine per la build di calcolo di Amazon EC2, utilizza la seguente sintassi:

  ```
  runs-on: codebuild-<project-name>-${{ github.run_id }}-${{ github.run_attempt }}-fleet-<fleet-name>
  ```
+ Per sovrascrivere sia la flotta che l'immagine utilizzate per la build, usa la seguente sintassi:

  ```
  runs-on: codebuild-<project-name>-${{ github.run_id }}-${{ github.run_attempt }}-image-<image-version>-fleet-<fleet-name>
  ```
+ Per eseguire i comandi buildspec durante la compilazione, `-with-buildspec` possono essere aggiunti come suffisso all'etichetta:

  ```
  runs-on: codebuild-<project-name>-${{ github.run_id }}-${{ github.run_attempt }}-<image>-<image-version>-<instance-size>-with-buildspec
  ```
+ Facoltativamente, puoi fornire un override della dimensione dell'istanza senza sovrascrivere l'immagine. Per le build di Amazon EC2, puoi escludere sia il tipo di ambiente che l'identificatore dell'immagine. Per le build Lambda, puoi escludere l'identificatore dell'immagine.

# Immagini di calcolo supportate con il runner -hosted Actions CodeBuild GitHub
<a name="sample-github-action-runners-update-yaml.images"></a>

Nell'etichetta in cui hai configurato[Tutorial: configura un GitHub Actions CodeBuild runner ospitato](action-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' 

<a name="build-env-ref.supported-images"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/codebuild/latest/userguide/sample-github-action-runners-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:

<a name="lambda.supported-images"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/codebuild/latest/userguide/sample-github-action-runners-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).