

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

# Si integra AWS CodeBuild
<a name="builds-working"></a>

Una *build* rappresenta un insieme di azioni eseguite per creare artefatti di AWS CodeBuild output (ad esempio, un file JAR) basati su un insieme di artefatti di input (ad esempio, una raccolta di file di classe Java).

Le regole seguenti si applicano quando esegui più di una build:
+ Se possibile, le build vengono eseguite simultaneamente. Il numero massimo di build in esecuzione simultanea può variare. Per ulteriori informazioni, consulta [Quote per AWS CodeBuild](limits.md). 
+ Se il progetto di compilazione ha un limite di compilazione simultanea, le build restituiscono un errore se il numero di build in esecuzione raggiunge il limite di compilazione simultanea per il progetto. Per ulteriori informazioni, consulta [Abilita](create-project.md#enable-concurrent-build-limit.console) il limite di compilazione simultanea.
+ Se il progetto di compilazione non ha un limite di compilazione simultanea, le build vengono messe in coda se il numero di build in esecuzione raggiunge il limite di compilazione simultanea per la piattaforma e il tipo di calcolo. Il numero massimo di build in una coda è cinque volte il limite di build in esecuzione simultanea. Per ulteriori informazioni, consulta [Quote per AWS CodeBuild](limits.md).

  Se una build presente in una coda non viene avviata entro il numero di minuti specificato per il valore di timeout, viene rimossa dalla coda. Il valore predefinito del timeout è di 8 ore. Puoi sostituire il timeout della coda delle build con un valore compreso tra cinque minuti e otto ore quando esegui una build. Per ulteriori informazioni, consulta [Esegui AWS CodeBuild le build manualmente](run-build.md).

  Non è possibile prevedere l'ordine in cui le build in coda vengono avviate. 

**Nota**  
È possibile accedere alla cronologia di una build per un anno.

Puoi eseguire queste attività durante l'utilizzo di compilazioni:

**Topics**
+ [Esegui AWS CodeBuild le build manualmente](run-build.md)
+ [Esegui build su calcolo AWS Lambda](lambda.md)
+ [Run si basa su flotte a capacità riservata](fleets.md)
+ [Esegui le build in batch](batch-build.md)
+ [Esegui test paralleli in build in batch](parallel-test.md)
+ [Creazioni di cache per migliorare le prestazioni](build-caching.md)
+ [Il debug si integra AWS CodeBuild](debug-builds.md)
+ [Elimina build in AWS CodeBuild](delete-builds.md)
+ [Retry si integra manualmente AWS CodeBuild](retry-build.md)
+ [Retry si integra automaticamente AWS CodeBuild](auto-retry-build.md)
+ [Stop si integra AWS CodeBuild](stop-build.md)
+ [Interrompi gli accumuli in batch AWS CodeBuild](stop-batch-build.md)
+ [Trigger AWS CodeBuild si crea automaticamente](build-triggers.md)
+ [Visualizza i dettagli della costruzione in AWS CodeBuild](view-build-details.md)
+ [Visualizza un elenco di build IDs in AWS CodeBuild](view-build-list.md)
+ [Visualizza un elenco di build IDs per un progetto di compilazione in AWS CodeBuild](view-builds-for-project.md)

# Esegui AWS CodeBuild le build manualmente
<a name="run-build"></a>

Puoi usare la AWS CodeBuild console o AWS SDKs eseguire una build in CodeBuild. AWS CLI

**Topics**
+ [Esegui le build localmente con l'agente AWS CodeBuild](use-codebuild-agent.md)
+ [Esecuzione di una compilazione (console)](run-build-console.md)
+ [Esecuzione di una compilazione (AWS CLI)](run-build-cli.md)
+ [Esegui una build in batch (AWS CLI)](run-batch-build-cli.md)
+ [Avvio di esecuzioni di compilazione automaticamente (AWS CLI)](run-build-cli-auto-start.md)
+ [Interruzione di esecuzioni di compilazioni automaticamente (AWS CLI)](run-build-cli-auto-stop.md)
+ [Esecuzione di una compilazione (AWS SDKs)](run-build-sdks.md)

# Esegui le build localmente con l'agente AWS CodeBuild
<a name="use-codebuild-agent"></a>

È possibile utilizzare l' AWS CodeBuild agente per eseguire CodeBuild build su un computer locale. Sono disponibili agenti per piattaforme x86\$164 e ARM.

È inoltre possibile abbonarsi per ricevere notifiche quando vengono pubblicate nuove versioni dell'agente. 

## Prerequisiti
<a name="use-codebuild-agent.prerequisites"></a>

Prima di iniziare, devi fare quanto segue:
+ Installa Git sul computer locale.
+ Installa e [configura Docker](https://www.docker.com/) sul tuo computer locale.

## Configura l'immagine di build
<a name="use-codebuild-agent.setup-image"></a>

È necessario configurare l'immagine di build solo la prima volta che si esegue l'agente o quando l'immagine è stata modificata.

**Per configurare l'immagine di compilazione**

1. [Se desideri utilizzare un'immagine Amazon Linux 2 curata, puoi recuperarla dal repository CodeBuild pubblico di Amazon ECR all'indirizzo https://gallery.ecr. aws/codebuild/amazonlinux-x86\$164-standard](https://gallery.ecr.aws/codebuild/amazonlinux-x86_64-standard) con il seguente comando:

   ```
   $ docker pull public.ecr.aws/codebuild/amazonlinux-x86_64-standard:4.0
   ```

   In alternativa, se desideri utilizzare un'altra immagine Linux, procedi nel seguente modo:

   1. Clona il repository di CodeBuild immagini:

      ```
      $ git clone https://github.com/aws/aws-codebuild-docker-images.git
      ```

   1. Passa alla cartella delle immagini. Per questo esempio, usa l'`aws/codebuild/standard:5.0`immagine:

      ```
      $ cd aws-codebuild-docker-images/ubuntu/standard/5.0
      ```

   1. Costruisci l'immagine. Questo processo può richiedere diversi minuti. 

      ```
      $ docker build -t aws/codebuild/standard:5.0 .
      ```

1. Scarica l' CodeBuild agente.

   Per scaricare la versione x86\$164 dell'agente, esegui il seguente comando:

   ```
   $ docker pull public.ecr.aws/codebuild/local-builds:latest
   ```

   Per scaricare la versione ARM dell'agente, esegui il seguente comando:

   ```
   $ docker pull public.ecr.aws/codebuild/local-builds:aarch64
   ```

1. <a name="codebuild-agent-sha"></a>L' CodeBuild agente è disponibile all'[indirizzo https://gallery.ecr. aws/codebuild/local-costruisce](https://gallery.ecr.aws/codebuild/local-builds). 

   La firma Secure Hash Algorithm (SHA) per la versione x86\$164 dell'agente è:

   ```
   sha256:ccb19bdd7af94e4dc761e4c58c267e9455c28ec68d938086b4dc1cf8fe6b0940
   ```

   La firma SHA per la versione ARM dell'agente è:

   ```
   sha256:7d7b5d35d2ac4e062ae7ba8c662ffed15229a52d09bd0d664a7816c439679192
   ```

   È possibile utilizzare lo SHA per identificare la versione dell'agente. Per visualizzare la firma SHA dell'agente, esegui il comando seguente e cerca lo SHA in: `RepoDigests` 

   ```
   $ docker inspect public.ecr.aws/codebuild/local-builds:latest
   ```

## Esegui l'agente CodeBuild
<a name="use-codebuild-agent.run-agent"></a>

**Per gestire l' CodeBuild agente**

1. Passa alla directory che contiene i sorgenti del progetto di compilazione.

1. Scarica lo script [codebuild\$1build.sh](https://github.com/aws/aws-codebuild-docker-images/blob/master/local_builds/codebuild_build.sh):

   ```
   $ curl -O  https://raw.githubusercontent.com/aws/aws-codebuild-docker-images/master/local_builds/codebuild_build.sh
   $ chmod +x codebuild_build.sh
   ```

1. Esegui lo `codebuild_build.sh` script e specifica l'immagine del contenitore e la directory di output.

   Per eseguire una build x86\$164, esegui il seguente comando:

   ```
   $ ./codebuild_build.sh -i <container-image> -a <output directory>
   ```

   Per eseguire una build ARM, esegui il seguente comando:

   ```
   $ ./codebuild_build.sh -i <container-image> -a <output directory> -l public.ecr.aws/codebuild/local-builds:aarch64
   ```

   Sostituisci *<container-image>* con il nome dell'immagine del contenitore, ad esempio `aws/codebuild/standard:5.0` o`public.ecr.aws/codebuild/amazonlinux-x86_64-standard:4.0`.

   Lo script avvia l'immagine di compilazione ed esegue la build sul progetto nella directory corrente. Per specificare la posizione del progetto di compilazione, aggiungete l'`-s <build project directory>`opzione al comando script.

## Ricevi notifiche per le nuove versioni degli CodeBuild agenti
<a name="receive-codebuild-agent-notifications"></a>

Puoi abbonarti alle notifiche di Amazon SNS in modo da ricevere una notifica quando vengono rilasciate nuove versioni dell' AWS CodeBuild agente. 

**Per sottoscrivere le notifiche degli CodeBuild agenti**

1. [Apri la console Amazon SNS nella versione v3/home. https://console.aws.amazon.com/sns/](https://console.aws.amazon.com/sns/v3/home) 

1. Nella barra di navigazione, se non è già selezionata, modifica la AWS regione in **Stati Uniti orientali (Virginia settentrionale**). Devi selezionare questa AWS regione perché le notifiche Amazon SNS a cui ti stai abbonando vengono create in questa regione. 

1. Nel riquadro di navigazione, seleziona **Sottoscrizioni**. 

1. Scegli **Create Subscription (Crea sottoscrizione)**. 

1. In **Crea abbonamento, procedi** come segue: 

   1. Per **ARN dell'argomento**, utilizza il seguente Amazon Resource Name (ARN): 

      ```
      arn:aws:sns:us-east-1:850632864840:AWS-CodeBuild-Local-Agent-Updates
      ```

   1. Per **Protocollo**, seleziona **-mail)** o **SMS**. 

   1. Per **Endpoint**, scegli come ricevere le notifiche (e-mail o SMS). Inserisci un indirizzo e-mail o un numero di telefono, incluso il prefisso. 

   1. Scegli **Create Subscription** (Crea sottoscrizione). 

   1. Scegli **Email** per ricevere un'email che ti chiede di confermare l'iscrizione. Segui le istruzioni nell'e-mail per completare l'iscrizione. 

      Se non desideri più ricevere queste notifiche, segui la procedura seguente per annullare la sottoscrizione. 

**Per annullare l'iscrizione alle notifiche degli CodeBuild agenti**

1. [Apri la console Amazon SNS nella versione v3/home. https://console.aws.amazon.com/sns/](https://console.aws.amazon.com/sns/v3/home) 

1. Nel riquadro di navigazione, seleziona **Sottoscrizioni**. 

1. Seleziona la sottoscrizione e da **Actions (Operazioni)**, seleziona **Delete subscriptions (Elimina sottoscrizioni)**. Quando viene richiesto di confermare, selezionare **Delete (Elimina)**. 

# Esecuzione di una compilazione (console)
<a name="run-build-console"></a>

Per utilizzare AWS CodePipeline per eseguire una build con CodeBuild, salta questi passaggi e segui le istruzioni in[Usa CodeBuild con CodePipeline](how-to-create-pipeline.md).

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

1. Nel riquadro di navigazione, scegliere **Build projects (Progetti di compilazione)**.

1. Nell'elenco dei progetti di compilazione, scegli il progetto di compilazione.

1. Puoi eseguire la build con le impostazioni predefinite del progetto di compilazione o sostituire le impostazioni di compilazione solo per questa build.

   1. Se desideri eseguire la build con le impostazioni predefinite del progetto di compilazione, scegli **Avvia compilazione**. La compilazione viene avviata immediatamente.

   1. Se desideri sovrascrivere le impostazioni predefinite del progetto di compilazione, scegli **Avvia compilazione con sostituzioni**. Nella pagina **Inizia la compilazione**, puoi sovrascrivere quanto segue:
      + **Configurazione della build**
      + **Origine**
      + **Sostituzioni delle variabili di ambiente**

      **Se devi selezionare sostituzioni di build più avanzate, scegli Sostituzioni di build avanzate.** In questa pagina, puoi sovrascrivere quanto segue:
      + **Costruisci la configurazione**
      + **Origine**
      + **Ambiente**
      + **Specifiche di costruzione**
      + **Artefatti**
      + **Log**

      **Dopo aver effettuato le selezioni di override, scegli Avvia compilazione.**

Per le informazioni dettagliate su questa compilazione, consultare [Visualizzazione dei dettagli delle compilazioni (console)](view-build-details.md#view-build-details-console).

# Esecuzione di una compilazione (AWS CLI)
<a name="run-build-cli"></a>

**Nota**  
Per utilizzare CodePipeline per eseguire una build con AWS CodeBuild, salta questi passaggi e segui le istruzioni in[Crea una pipeline che utilizza CodeBuild ()AWS CLI](how-to-create-pipeline-cli.md).  
Per ulteriori informazioni sull'utilizzo di AWS CLI with CodeBuild, consulta[Guida di riferimento alla riga di comando](cmd-ref.md).

1. Eseguire il comando `start-build` in uno dei seguenti modi:

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

   Utilizzare questo comando se si desidera eseguire una compilazione che utilizza la versione più recente dell'artefatto di input di compilazione e le impostazioni correnti del progetto di compilazione.

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

   Utilizzare questo comando se si desidera eseguire una compilazione con una versione precedente dell'artefatto di input di compilazione o se si desidera ignorare le impostazioni per gli artefatti di output di compilazione, le variabili di ambiente, la buildspec il periodo di timeout di compilazione predefinito.

1. Se eseguite il **start-build** comando con l'`--project-name`opzione, sostituitelo *<project-name>* con il nome del progetto di compilazione, quindi passate al passaggio 6 di questa procedura. Per ottenere un elenco di progetti di compilazione, consulta [Visualizza i nomi dei progetti di compilazione](view-project-list.md).

1. Se esegui il **start-build** comando con l'`--idempotency-token`opzione, nella richiesta viene incluso un identificatore o token univoco con distinzione tra maiuscole e minuscole. `start-build` Il token è valido per 5 minuti dopo la richiesta . Se si ripete la `start-build` richiesta con lo stesso token, ma si modifica un parametro, viene CodeBuild restituito un errore di mancata corrispondenza del parametro.

1. Se si esegue il comando **start-build** con l'opzione `--generate-cli-skeleton`, i dati in formato JSON appaiono nell'output. Copia i dati in un file (ad esempio,`start-build.json`) in una posizione sul computer locale o sull'istanza in cui AWS CLI è installato. Modificare i dati copiati in modo che corrispondano a questo formato e salvare i risultati:

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

   Sostituire i seguenti segnaposto:
   + *projectName*: stringa obbligatoria. Il nome del progetto di compilazione da utilizzare per questa compilazione. 
   + *sourceVersion*: stringa opzionale. Una versione del codice sorgente da creare, come segue:
     + Per Amazon S3, l'ID della versione che corrisponde alla versione del file ZIP di input che desideri creare. Se non *sourceVersion* è specificato, viene utilizzata la versione più recente.
     + Per CodeCommit, l'ID di commit che corrisponde alla versione del codice sorgente che desideri creare. Se non *sourceVersion* è specificato, viene utilizzato l'ID di commit HEAD del ramo predefinito. (Non è possibile specificare il nome del tag*sourceVersion*, ma è possibile specificare l'ID di commit del tag.)
     + Ad GitHub esempio, l'ID di commit, l'ID della pull request, il nome del ramo o il nome del tag che corrisponde alla versione del codice sorgente che desideri creare. Se si specifica l'ID di una richiesta pull, deve utilizzare il formato `pr/pull-request-ID` (ad esempio `pr/25`). Se un nome ramo è specificato, viene utilizzato l'ID commit HEAD del ramo. Se non *sourceVersion* è specificato, viene utilizzato l'ID di commit HEAD del ramo predefinito. 
     + Per Bitbucket, l'ID commit, il nome ramo o il nome del tag che corrisponde alla versione del codice sorgente che si desidera creare. Se un nome ramo è specificato, viene utilizzato l'ID commit HEAD del ramo. Se non *sourceVersion* è specificato, viene utilizzato l'ID di commit HEAD del ramo predefinito. 
   + I seguenti segnaposto sono per `artifactsOverride`.
     + *type*: facoltativo. Il tipo di artefatto di output di compilazione che, per questa compilazione, sostituisce quella definita nel progetto di compilazione.
     + *location*: facoltativo. La posizione dell'artefatto di output di compilazione che, per questa compilazione, sostituisce quella definita nel progetto di compilazione.
     + *path*: facoltativo. Il percorso di artefatto di output di compilazione che, per questa compilazione, sostituisce quella definita nel progetto di compilazione.
     + *namespaceType*: facoltativo. Il tipo di percorso di artefatto di output di compilazione che, per questa compilazione, sostituisce quella definita nel progetto di compilazione.
     + *name*: facoltativo. Il nome di artefatto di output di compilazione che, per questa compilazione, sostituisce quella definita nel progetto di compilazione.
     + *packaging*: facoltativo. Il tipo di pacchetto di artefatto di output di compilazione che, per questa compilazione, sostituisce quella definita nel progetto di compilazione.
   + *buildspecOverride*: facoltativo. Una dichiarazione di specifiche di compilazione che, per questa compilazione, sostituisce quella definita nel progetto di compilazione. Se questo valore è impostato, può essere una definizione buildspec inlinea oppure il percorso a un file buildspec alternativo, relativo al valore della variabile di ambiente `CODEBUILD_SRC_DIR` incorporata o al percorso di un bucket S3. Il bucket S3 deve trovarsi nella stessa regione AWS del progetto build. Specificare il file buildspec utilizzando il relativo ARN (ad esempio, `arn:aws:s3:::<my-codebuild-sample2>/buildspec.yml`). Se tale valore non è fornito o è impostato su una stringa vuota, il codice di origine deve contenere un file `buildspec.yml` nella directory radice. Per ulteriori informazioni, consulta [Nome del file buildspec e posizione di storage](build-spec-ref.md#build-spec-ref-name-storage).
   + I seguenti segnaposto sono per `cacheOverride`.
     + *cacheOverride-location*: facoltativo. Il percorso di un oggetto `ProjectCache` per questa compilazione che sostituisce l'oggetto `ProjectCache` specificato nel progetto di compilazione. `cacheOverride` è facoltativo e richiede un oggetto `ProjectCache`. `location` è obbligatorio in un oggetto `ProjectCache`.
     + *cacheOverride-type*: facoltativo. Il tipo di un oggetto `ProjectCache` per questa compilazione che sostituisce l'oggetto `ProjectCache` specificato nel progetto di compilazione. `cacheOverride` è facoltativo e richiede un oggetto `ProjectCache`. `type` è obbligatorio in un oggetto `ProjectCache`.
   + *certificateOverride*: facoltativo. Il nome di un certificato per questa compilazione che sostituisce quella definita nel progetto di compilazione.
   + *environmentTypeOverride*: facoltativo. Un tipo di container per questa compilazione che sostituisce quella definita nel progetto di compilazione. L'attuale stringa valida è `LINUX_CONTAINER`.
   + I seguenti segnaposto sono per `environmentVariablesOverride`.
     + *environmentVariablesOverride-name*: facoltativo. Il nome di una variabile di ambiente nel progetto di compilazione il quale valore si desidera ignorare per questa compilazione.
     + *environmentVariablesOverride-type*: facoltativo. Il tipo di variabile di ambiente nel progetto di compilazione il quale valore si desidera ignorare per questa compilazione.
     + *environmentVariablesValue*: facoltativo. Il valore della variabile di ambiente definita nel progetto di compilazione il quale valore si desidera ignorare per questa compilazione.
   + *gitCloneDepthOverride*: facoltativo. Il valore di **Git clone depth** nel progetto di compilazione il quale valore si desidera ignorare per questa compilazione. Se il tipo di origine è Amazon S3, questo valore non è supportato.
   + *imageOverride*: facoltativo. Il nome di un immagine per questa compilazione che sostituisce quella definita nel progetto di compilazione.
   + *idempotencyToken*: facoltativo. Una stringa che serve come token per specificare che la richiesta di compilazione è idempotente. È possibile scegliere qualsiasi stringa con 64 caratteri o meno. Il token è valido per 5 minuti dopo la richiesta di start-build. Se ripeti la richiesta di start-build con lo stesso token, ma modifichi un parametro, CodeBuild restituisce un errore di mancata corrispondenza del parametro. 
   + *insecureSslOverride*: valore booleano facoltativo che specifica se sovrascrivere l'impostazione TLS non sicura specificata nel progetto di compilazione. L'impostazione TLS non sicura determina se ignorare gli avvisi TLS durante la connessione al codice sorgente del progetto. Questo override si applica solo se l'origine della build è Enterprise Server. GitHub 
   + *privilegedModeOverride*: valore booleano facoltativo. Se impostato su true, la compilazione sostituisce la modalità privilegiata nel progetto di compilazione.
   +  *queuedTimeoutInMinutesOverride*: numero intero opzionale che specifica il numero di minuti in cui una build può essere messa in coda prima del timeout. Il valore minimo è cinque minuti e il valore massimo è 480 minuti (8 ore). 
   + *reportBuildStatusOverride*: Valore booleano facoltativo che specifica se inviare al provider di origine lo stato di inizio e completamento di una build. Se lo imposti con un provider di origine diverso GitHub da GitHub Enterprise Server o Bitbucket, viene generato un. invalidInputException 
   + *sourceAuthOverride*: stringa opzionale. Un tipo di autorizzazione per questa compilazione che sostituisce quella definita nel progetto di compilazione. Questo override si applica solo se l'origine del progetto di compilazione è Bitbucket o. GitHub
   + *sourceLocationOverride*: stringa opzionale. Il percorso che, per questa compilazione, sostituisce il percorso di origine definito nel progetto di compilazione.
   + *serviceRoleOverride*: stringa opzionale. Il nome di un ruolo del servizio per questa compilazione che sostituisce quella definita nel progetto di compilazione.
   + *sourceTypeOverride*: stringa opzionale. Un tipo di input di origine per questa compilazione che sostituisce l'input di origine definito nel progetto di compilazione. Le stringhe valide sono `NO_SOURCE`, `CODECOMMIT`, `CODEPIPELINE`, `GITHUB`, `S3`, `BITBUCKET` e `GITHUB_ENTERPRISE`.
   + *timeoutInMinutesOverride*: numero opzionale. Il numero di minuti di timeout di compilazione che, per questa compilazione, sostituisce quella definita nel progetto di compilazione. 

   Ti consigliamo di memorizzare una variabile di ambiente con un valore sensibile, come un ID di chiave di AWS accesso, una chiave di accesso AWS segreta o una password come parametro in Amazon EC2 Systems Manager Parameter Store. CodeBuild può utilizzare un parametro memorizzato in Amazon EC2 Systems Manager Parameter Store solo se il nome di quel parametro inizia con `/CodeBuild/` (ad esempio,`/CodeBuild/dockerLoginPassword`). Puoi utilizzare la CodeBuild console per creare un parametro in Amazon EC2 Systems Manager. Selezionare **Create a parameter (Crea un parametro)** e seguire le istruzioni. (In quella finestra di dialogo, per la **chiave KMS**, puoi facoltativamente specificare l'ARN di una AWS KMS chiave nel tuo account. Amazon EC2 Systems Manager utilizza questa chiave per crittografare il valore del parametro durante l'archiviazione e decrittografarlo durante il recupero.) Se usi la CodeBuild console per creare un parametro, la console avvia il parametro con il `/CodeBuild/` momento in cui viene memorizzato. Tuttavia, se utilizzi la console Amazon EC2 Systems Manager Parameter Store per creare un parametro, devi iniziare il nome del parametro con `/CodeBuild/` e devi impostare **Type** su **Secure String**. Per ulteriori informazioni, consulta [AWS Systems Manager Parameter Store](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html) and [Walkthrough: Create and test a String parameter (console)](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-console.html) nella *Amazon EC2 Systems Manager User* Guide.

   Se il progetto di compilazione si riferisce a parametri memorizzati in Amazon EC2 Systems Manager Parameter Store, il ruolo di servizio del progetto di compilazione deve consentire l'`ssm:GetParameters`azione. Se in precedenza hai scelto **Crea un nuovo ruolo di servizio nel tuo account**, CodeBuild include automaticamente questa azione nel ruolo di servizio predefinito per il tuo progetto di build. Tuttavia, se era stata scelta l'opzione **Choose an existing service role from your account (Scegli un ruolo del servizio esistente dal tuo account)**, è necessario includere questa operazione al ruolo del servizio separatamente.

   Le variabili di ambiente impostate sostituiscono quelle esistenti. Ad esempio, se l'immagine Docker contiene già una variabile di ambiente denominata `MY_VAR` con un valore di `my_value`, e si imposta una variabile di ambiente denominata `MY_VAR` con un valore di `other_value`, il valore `my_value` viene sostituito da `other_value`. Allo stesso modo, se l'immagine Docker contiene già una variabile di ambiente denominata `PATH` con un valore di `/usr/local/sbin:/usr/local/bin`, e si imposta una variabile di ambiente denominata `PATH` con un valore di `$PATH:/usr/share/ant/bin`, il valore di `/usr/local/sbin:/usr/local/bin` viene sostituito dal valore letterale `$PATH:/usr/share/ant/bin`. 

   Non impostare variabili di ambiente con nomi che iniziano con `CODEBUILD_`. Questo prefisso è riservato per l'uso interno .

   Se una variabile di ambiente con lo stesso nome viene definita in più luoghi, il valore della variabile di ambiente viene determinato come segue:
   + Il valore della chiamata all'operazione di inizio della compilazione ha la massima priorità.
   + Il valore della definizione del progetto di compilazione è il seguente in ordine di priorità.
   + Il valore della dichiarazione buildspec ha la minima priorità.

   Per informazioni sui valori validi per questi segnaposto, consultare [Creazione di un progetto di compilazione (AWS CLI)](create-project.md#create-project-cli). Per un elenco delle impostazioni più recenti per un progetto di compilazione, consultare [Visualizza i dettagli del progetto di costruzione](view-project-details.md).

1. Passare alla directory contenente il file appena salvato ed eseguire nuovamente il comando `start-build`.

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

1. In caso di esito positivo, nell'output vengono visualizzati dati simili a quelli descritti nella procedura [Per eseguire la build](getting-started-overview.md#getting-started-run-build-cli).

Per utilizzare le informazioni dettagliate su questa compilazione, annotare il valore `id` nell'output e consultare [Visualizzazione dei dettagli delle compilazioni (AWS CLI)](view-build-details.md#view-build-details-cli).

# Esegui una build in batch (AWS CLI)
<a name="run-batch-build-cli"></a>

1. Eseguire il comando `start-build-batch` in uno dei seguenti modi:

   ```
   aws codebuild start-build-batch --project-name <project-name>
   ```

   Utilizzare questo comando se si desidera eseguire una compilazione che utilizza la versione più recente dell'artefatto di input di compilazione e le impostazioni correnti del progetto di compilazione.

   ```
   aws codebuild start-build-batch --generate-cli-skeleton > <json-file>
   ```

   Utilizzare questo comando se si desidera eseguire una compilazione con una versione precedente dell'artefatto di input di compilazione o se si desidera ignorare le impostazioni per gli artefatti di output di compilazione, le variabili di ambiente, la buildspec il periodo di timeout di compilazione predefinito.

1. Se eseguite il **start-build-batch** comando con l'`--project-name`opzione, sostituitelo *<project-name>* con il nome del progetto di compilazione, quindi passate al passaggio 6 di questa procedura. Per ottenere un elenco di progetti di compilazione, consulta [Visualizza i nomi dei progetti di compilazione](view-project-list.md).

1. Se esegui il **start-build-batch** comando con l'`--idempotency-token`opzione, nella richiesta viene incluso un identificatore o token univoco con distinzione tra maiuscole e minuscole. `start-build-batch` Il token è valido per 5 minuti dopo la richiesta . Se si ripete la `start-build-batch` richiesta con lo stesso token, ma si modifica un parametro, viene CodeBuild restituito un errore di mancata corrispondenza del parametro.

1. Se si esegue il **start-build-batch** comando con l'`--generate-cli-skeleton`opzione, i dati in formato JSON vengono emessi nel file. *<json-file>* Questo file è simile allo skelton prodotto dal **start-build** comando, con l'aggiunta del seguente oggetto. Per ulteriori informazioni sugli oggetti comuni, vedere. [Esecuzione di una compilazione (AWS CLI)](run-build-cli.md)

   Modifica questo file per aggiungere eventuali sostituzioni di build e salva i risultati.

   ```
     "buildBatchConfigOverride": {
       "combineArtifacts": combineArtifacts,
       "restrictions": {
         "computeTypesAllowed": [
           allowedComputeTypes
         ],
         "maximumBuildsAllowed": maximumBuildsAllowed
       },
       "serviceRole": "batchServiceRole",
       "timeoutInMins": batchTimeout
     }
   ```

   L'`buildBatchConfigOverride`oggetto è una [ProjectBuildBatchConfig](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectBuildBatchConfig.html)struttura che contiene le modifiche di configurazione della build in batch per questa build.  
*combineArtifacts*  
Un valore booleano che specifica se gli elementi di compilazione per la compilazione in batch devono essere combinati in un'unica posizione degli artefatti.  
*allowedComputeTypes*  
Array di stringhe che specificano i tipi di calcolo consentiti per la compilazione batch. Vedi Tipi di calcolo dell'ambiente di [compilazione per questi valori](https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html).   
*maximumBuildsAllowed*  
Specifica il numero massimo di compilazioni consentite.  
*batchServiceRole*  
Specifica l'ARN del ruolo di servizio per il progetto di compilazione batch.  
*batchTimeout*  
Specifica la quantità massima di tempo, espressa in minuti, in cui deve essere completata la compilazione batch.

1. Passare alla directory contenente il file appena salvato ed eseguire nuovamente il comando `start-build-batch`.

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

1. In caso di successo, la rappresentazione JSON di un [BuildBatch](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_BuildBatch.html)oggetto viene visualizzata nell'output della console. Vedi la [sintassi di StartBuildBatch risposta](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_StartBuildBatch.html#API_StartBuildBatch_ResponseSyntax) per un esempio di questi dati.

# Avvio di esecuzioni di compilazione automaticamente (AWS CLI)
<a name="run-build-cli-auto-start"></a>

Se il codice sorgente è archiviato in un repository GitHub o in un repository GitHub Enterprise Server, è possibile utilizzare i GitHub webhook per AWS CodeBuild ricostruire il codice sorgente ogni volta che viene inserita una modifica al codice nell'archivio.

Eseguire il comando **create-webhook** nel modo seguente:

```
aws codebuild create-webhook --project-name <project-name>
```

*<project-name>*è il nome del progetto di compilazione che contiene il codice sorgente da ricostruire.

Infatti GitHub, nell'output vengono visualizzate informazioni simili alle seguenti:

```
{
  "webhook": {
    "url": "<url>"
  }
}
```

*<url>*è l'URL del GitHub webhook.

Per GitHub Enterprise Server, nell'output vengono visualizzate informazioni simili alle seguenti:

![\[Informazioni di output di esempio.\]](http://docs.aws.amazon.com/it_it/codebuild/latest/userguide/images/create-webhook-ghe.png)


1. Copiare l'URL della chiave segreta e di payload dall'output. Sono necessari per aggiungere un webhook in GitHub Enterprise Server. 

1. In GitHub Enterprise Server, scegliete il repository in cui è archiviato il CodeBuild progetto. Selezionare **Settings (Impostazioni)**, quindi **Hooks & services (Hook e servizi)** e selezionare **Add webhook (Aggiungi webhook)**. 

1. Inserire l'URL di payload e della chiave segreta, accettare le impostazioni predefinite per gli altri campi e selezionare **Add webhook (Aggiungi webhook)**.

# Interruzione di esecuzioni di compilazioni automaticamente (AWS CLI)
<a name="run-build-cli-auto-stop"></a>

Se il codice sorgente è archiviato in un repository GitHub o in un repository GitHub Enterprise Server, è possibile configurare dei GitHub webhook in modo da AWS CodeBuild ricostruire il codice sorgente ogni volta che viene inserita una modifica al codice nell'archivio. Per ulteriori informazioni, consulta [Avvio di esecuzioni di compilazione automaticamente (AWS CLI)](run-build-cli-auto-start.md).

Se hai abilitato questo comportamento, è possibile disattivarlo eseguendo il comando `delete-webhook` come segue:

```
aws codebuild delete-webhook --project-name <project-name>
```
+ dove *<project-name>* è il nome del progetto di compilazione che contiene il codice sorgente da ricostruire.

Se questo comando viene completato, nessuna informazione e nessun errore appaiono nell'output.

**Nota**  
Questo elimina il webhook solo dal tuo CodeBuild progetto. È inoltre necessario eliminare il webhook dal proprio repository GitHub o da quello di GitHub Enterprise Server.

# Esecuzione di una compilazione (AWS SDKs)
<a name="run-build-sdks"></a>

Per utilizzare CodePipeline per eseguire una build con AWS CodeBuild, salta questi passaggi e segui invece le istruzioni riportate. [Usa AWS CodeBuild with AWS CodePipeline per testare il codice ed eseguire build](how-to-create-pipeline.md)

Per informazioni sull'utilizzo CodeBuild con AWS SDKs, consulta[AWS SDKs e riferimento agli strumenti](sdk-ref.md).

# Esegui build su calcolo AWS Lambda
<a name="lambda"></a>

AWS Lambda compute offre velocità di avvio ottimizzate per le tue build. AWS Lambda supporta build più veloci grazie a una minore latenza di avvio. AWS Lambda inoltre si ridimensiona automaticamente, quindi le build non attendono in coda per essere eseguite. Tuttavia, ci sono alcuni casi d'uso che AWS Lambda non sono supportati e, se hanno un impatto su di te, usa il calcolo EC2. Per ulteriori informazioni, consulta [Limitazioni di AWS Lambda calcolo](#lambda.limitations).

**Topics**
+ [Quali strumenti e runtime saranno inclusi nelle immagini docker dell'ambiente di runtime curato su cui vengono eseguiti? AWS Lambda](#lambda.tools)
+ [Cosa succede se l'immagine curata non include gli strumenti di cui ho bisogno?](#lambda.custom)
+ [In quali aree geografiche è AWS Lambda supportata l'elaborazione? CodeBuild](#lambda.regions)
+ [Limitazioni di AWS Lambda calcolo](#lambda.limitations)
+ [Implementa una funzione Lambda utilizzando AWS SAM con Lambda Java CodeBuild](sample-lambda-sam-gradle.md)
+ [Crea un'app React a pagina singola con CodeBuild Lambda Node.js](sample-lambda-react-nodejs.md)
+ [Aggiornare la configurazione di una funzione Lambda con CodeBuild Lambda Python](sample-lambda-boto3-python.md)

## Quali strumenti e runtime saranno inclusi nelle immagini docker dell'ambiente di runtime curato su cui vengono eseguiti? AWS Lambda
<a name="lambda.tools"></a>

AWS Lambda supporta i seguenti strumenti: AWS CLI v2, AWS SAM CLI, git, go, Java, Node.js, Python, pip, Ruby e.NET.

## Cosa succede se l'immagine curata non include gli strumenti di cui ho bisogno?
<a name="lambda.custom"></a>

Se l'immagine curata non include gli strumenti necessari, puoi fornire un'immagine Docker di ambiente personalizzata che includa gli strumenti necessari.

**Nota**  
Lambda non supporta funzioni che utilizzano immagini container multi-architettura. Per ulteriori informazioni, consulta [Creare una funzione Lambda utilizzando un'immagine del contenitore nella Guida](https://docs.aws.amazon.com/lambda/latest/dg/images-create.html#images-reqs) per gli *AWS Lambda sviluppatori*.

Tieni presente che sono necessarie le seguenti autorizzazioni Amazon ECR per utilizzare immagini personalizzate per il calcolo Lambda:

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ecr:GetAuthorizationToken"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ecr:BatchCheckLayerAvailability",
                "ecr:GetDownloadUrlForLayer",
                "ecr:BatchGetImage"
            ],
            "Resource": "arn:aws:ecr:us-east-1:111122223333:repository/image-repo"
        }
    ]
}
```

------

Tieni inoltre presente che `curl` o `wget` deve essere installato per poter utilizzare immagini personalizzate.

## In quali aree geografiche è AWS Lambda supportata l'elaborazione? CodeBuild
<a name="lambda.regions"></a>

Nel CodeBuild, l' AWS Lambda elaborazione è supportata nei seguenti paesi Regioni AWS: Stati Uniti orientali (Virginia settentrionale), Stati Uniti orientali (Ohio), Stati Uniti occidentali (Oregon), Asia Pacifico (Mumbai), Asia Pacifico (Singapore), Asia Pacifico (Sydney), Asia Pacifico (Tokyo), Europa (Francoforte), Europa (Irlanda) e Sud America (San Paolo). [Per ulteriori informazioni su Regioni AWS dove CodeBuild è disponibile, consulta Servizi per regione.AWS](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/)

## Limitazioni di AWS Lambda calcolo
<a name="lambda.limitations"></a>

Esistono alcuni casi d'uso che AWS Lambda non sono supportati e, se hanno un impatto su di te, usa il calcolo EC2:
+ AWS Lambda non supporta strumenti che richiedono i permessi di root. Per strumenti come `yum` or`rpm`, usa il tipo di calcolo EC2 o altri strumenti che non richiedono i permessi di root.
+ AWS Lambda non supporta le build o le esecuzioni di Docker.
+ AWS Lambda non supporta la scrittura su file esterni. `/tmp` I gestori di pacchetti inclusi sono configurati per utilizzare la `/tmp` directory di default per scaricare e fare riferimento ai pacchetti.
+ AWS Lambda non supporta il tipo di ambiente `LINUX_GPU_CONTAINER` e non è supportato su Windows Server Core 2019.
+ AWS Lambda non supporta la memorizzazione nella cache, i timeout di compilazione personalizzati, il timeout della coda, i badge di creazione, la modalità privilegiata, gli ambienti di runtime personalizzati o i runtime superiori a 15 minuti.
+ AWS Lambda non supporta la connettività VPC, un intervallo fisso di indirizzi IP di CodeBuild origine, EFS, l'installazione di certificati o l'accesso SSH con Session Manager.

# Implementa una funzione Lambda utilizzando AWS SAM con Lambda Java CodeBuild
<a name="sample-lambda-sam-gradle"></a>

Il AWS Serverless Application Model (AWS SAM) è un framework open source per la creazione di applicazioni serverless. Per ulteriori informazioni, consulta il [AWS Serverless Application Model repository](https://github.com/aws/serverless-application-model) su. GitHub Il seguente esempio di Java utilizza Gradle per creare e testare una AWS Lambda funzione. Dopodiché, la AWS SAM CLI viene utilizzata per distribuire il CloudFormation modello e il pacchetto di distribuzione. Utilizzando CodeBuild Lambda, le fasi di compilazione, test e implementazione vengono tutte gestite automaticamente, consentendo di aggiornare rapidamente l'infrastruttura senza l'intervento manuale in un'unica build.

## Configura il tuo repository AWS SAM
<a name="sample-lambda-sam-gradle.set-up-repo"></a>

Crea un AWS SAM `Hello World` progetto utilizzando la AWS SAM CLI.

**Per creare il tuo progetto AWS SAM**

1. Segui le istruzioni contenute nella *Guida per gli AWS Serverless Application Model sviluppatori* per [l'installazione della AWS SAM CLI](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/install-sam-cli.html) sul tuo computer locale.

1. Esegui `sam init` e seleziona la seguente configurazione del progetto.

   ```
   Which template source would you like to use?: 1 - AWS Quick Start Templates
   Choose an AWS Quick Start application template: 1 - Hello World Example
   Use the most popular runtime and package type? (Python and zip) [y/N]: N
   Which runtime would you like to use?: 8 - java21
   What package type would you like to use?: 1 - Zip
   Which dependency manager would you like to use?: 1 - gradle
   Would you like to enable X-Ray tracing on the function(s) in your application? [y/N]: N
   Would you like to enable monitoring using CloudWatch Application Insights? [y/N]: N
   Would you like to set Structured Logging in JSON format on your Lambda functions? [y/N]:  N
   Project name [sam-app]: <insert project name>
   ```

1. Carica la cartella AWS SAM del progetto in un archivio di sorgenti supportato. Per un elenco dei tipi di sorgenti supportati, consulta [ProjectSource](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectSource.html).

## Creare un progetto CodeBuild Lambda Java
<a name="sample-lambda-sam-gradle.create-project"></a>

Crea un progetto AWS CodeBuild Lambda Java e configura le autorizzazioni IAM necessarie per la build.

**Per creare il tuo progetto CodeBuild Lambda Java**

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

1.  Se viene visualizzata una pagina di CodeBuild informazioni, scegli **Crea** progetto di compilazione. Altrimenti, nel riquadro di navigazione, espandi **Crea**, scegli **Crea progetti**, quindi scegli **Crea progetto di compilazione**. 

1. In **Project name (Nome progetto)** immettere un nome per questo progetto di compilazione. I nomi dei progetti di compilazione devono essere univoci per ogni AWS account. Puoi anche includere una descrizione opzionale del progetto di compilazione per aiutare gli altri utenti a capire a cosa serve questo progetto.

1. In **Source**, seleziona il repository di origine in cui si trova il AWS SAM progetto.

1. In **Environment (Ambiente)**:
   + Per **Compute**, seleziona **Lambda**.
   + **Per **Runtime (s)**, seleziona Java.**
   + Per **Image**, selezionate **aws/codebuild/amazonlinux-x86\$164-lambda-standard:corretto21**.
   + **Per **Ruolo di servizio,** lascia selezionata l'opzione Nuovo ruolo di servizio.** Prendi nota del **nome del ruolo**. Ciò sarà necessario quando aggiornerai le autorizzazioni IAM del progetto più avanti in questo esempio.

1. Scegliere **Create build project (Crea progetto di compilazione)**.

1. Aprire la console IAM all'indirizzo [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/). 

1. Nel riquadro di navigazione, scegli **Ruoli** e seleziona il ruolo di servizio associato al tuo progetto. Puoi trovare il tuo ruolo nel progetto CodeBuild selezionando il progetto di compilazione, scegliendo **Modifica**, **Ambiente** e quindi **Ruolo di servizio**.

1. Scegli la scheda **Relazioni di attendibilità** e quindi **Modifica policy di attendibilità**.

1. Aggiungi la seguente policy in linea al tuo ruolo IAM. Questo verrà utilizzato per implementare la tua AWS SAM infrastruttura in un secondo momento. Per ulteriori informazioni, consulta [Aggiunta e rimozione di autorizzazioni per identità IAM](https://docs.aws.amazon.com//IAM/latest/UserGuide/access_policies_manage-attach-detach.html) nella *Guida per l’utente di IAM *.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "",
               "Effect": "Allow",
               "Action": [
                   "cloudformation:*",
                   "lambda:*",
                   "iam:*",
                   "apigateway:*",
                   "s3:*"
               ],
               "Resource": "arn:aws:iam::*:role/Service*"
           }
       ]
   }
   ```

------

## Configura il progetto buildspec
<a name="sample-lambda-sam-gradle.set-up-buildspec"></a>

Per creare, testare e distribuire la tua funzione Lambda CodeBuild , legge ed esegue i comandi di compilazione da un buildspec.

**Per configurare il tuo progetto buildspec**

1. **Nella CodeBuild console, seleziona il tuo progetto di build, quindi scegli **Modifica** e Buildspec.**

1. **In **Buildspec**, scegli **Inserisci comandi di compilazione** e poi Passa all'editor.**

1. Elimina i comandi di compilazione precompilati e incollali nella seguente buildspec.

   ```
   version: 0.2
   env:
     variables:
       GRADLE_DIR: "HelloWorldFunction"
   phases:
     build:
       commands:
         - echo "Running unit tests..."
         - cd $GRADLE_DIR; gradle test; cd ..
         - echo "Running build..."
         - sam build --template-file template.yaml
         - echo "Running deploy..."
         - sam package --output-template-file packaged.yaml --resolve-s3 --template-file template.yaml
         - yes | sam deploy
   ```

1. Selezionare **Update buildspec (Aggiorna buildspec)**.

## Implementa la tua infrastruttura AWS SAM Lambda
<a name="sample-lambda-sam-gradle.deploy"></a>

Usa CodeBuild Lambda per implementare automaticamente la tua infrastruttura Lambda

**Per implementare la tua infrastruttura Lambda**

1. Selezionare **Start build (Avvia compilazione)**. Questo creerà, testerà e distribuirà automaticamente AWS SAM l'applicazione per utilizzarla. AWS Lambda CloudFormation

1. Una volta terminata la compilazione, accedi alla AWS Lambda console e cerca la tua nuova funzione Lambda sotto il nome del AWS SAM progetto.

1. Testa la tua funzione Lambda selezionando **API Gateway** nella panoramica delle **funzioni**, quindi facendo clic sull'URL dell'**endpoint API**. Dovresti vedere una pagina aperta con il messaggio. `"message": "hello world"`

## Pulisci la tua infrastruttura
<a name="sample-lambda-sam-gradle.clean-up"></a>

Per evitare ulteriori addebiti per le risorse utilizzate durante questo tutorial, elimina le risorse create dal AWS SAM modello e CodeBuild.

**Per ripulire la tua infrastruttura**

1. Vai alla CloudFormation console e seleziona`aws-sam-cli-managed-default`.

1. In **Risorse**, svuota il bucket `SamCliSourceBucket` di distribuzione.

1. Elimina lo `aws-sam-cli-managed-default` stack.

1. Elimina lo CloudFormation stack associato al tuo AWS SAM progetto. Questo stack dovrebbe avere lo stesso nome del tuo AWS SAM progetto.

1. Accedi alla CloudWatch console ed elimina i gruppi di CloudWatch log associati al tuo CodeBuild progetto.

1. Vai alla CodeBuild console ed elimina il CodeBuild progetto scegliendo **Elimina progetto di compilazione**.

# Crea un'app React a pagina singola con CodeBuild Lambda Node.js
<a name="sample-lambda-react-nodejs"></a>

[Create React App](https://create-react-app.dev/) è un modo per creare applicazioni React a pagina singola. Il seguente esempio di Node.js utilizza Node.js per creare gli artefatti di origine dall'app Create React e restituisce gli artefatti di compilazione.

## Configura il repository dei sorgenti e il bucket degli artefatti
<a name="sample-lambda-react-nodejs.set-up-repo"></a>

Crea un archivio di sorgenti per il tuo progetto usando yarn e l'app Create React.

**Per configurare il repository dei sorgenti e il bucket degli artefatti**

1. Sul tuo computer locale, esegui `yarn create react-app <app-name>` per creare una semplice app React.

1. Carica la cartella del progetto dell'app React in un repository di sorgenti supportato. Per un elenco dei tipi di sorgenti supportati, vedi [ProjectSource](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectSource.html).

## Creare un progetto CodeBuild Lambda Node.js
<a name="sample-lambda-react-nodejs.create-project"></a>

Crea un progetto AWS CodeBuild Lambda Node.js.

**Per creare il tuo progetto CodeBuild Lambda Node.js**

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

1.  Se viene visualizzata una pagina di CodeBuild informazioni, scegli **Crea** progetto di compilazione. Altrimenti, nel riquadro di navigazione, espandi **Crea**, scegli **Crea progetti**, quindi scegli **Crea progetto di compilazione**. 

1. In **Project name (Nome progetto)** immettere un nome per questo progetto di compilazione. I nomi dei progetti di compilazione devono essere univoci per ogni AWS account. Puoi anche includere una descrizione opzionale del progetto di compilazione per aiutare gli altri utenti a capire a cosa serve questo progetto.

1. In **Source**, seleziona il repository di origine in cui si trova il AWS SAM progetto.

1. In **Environment (Ambiente)**:
   + Per **Compute**, seleziona **Lambda**.
   + **Per **Runtime (s)**, seleziona Node.js.**
   + Per **Image**, selezionate **aws/codebuild/amazonlinux-x86\$164-lambda-standard:nodejs20**.

1. In **Artifacts (Artefatti)**:
   + Per **Tipo**, seleziona **Amazon S3**.
   + Per **Bucket name, seleziona il bucket** di artefatti del progetto che hai creato in precedenza.
   + **Per il packaging degli **artifatti**, seleziona Zip.**

1. Scegliere **Create build project (Crea progetto di compilazione)**.

## Configura il progetto buildspec
<a name="sample-lambda-react-nodejs.set-up-buildspec"></a>

Per creare la tua app React, CodeBuild legge ed esegue i comandi di compilazione da un file buildspec.

**Per configurare il tuo progetto buildspec**

1. **Nella CodeBuild console, seleziona il tuo progetto di build, quindi scegli **Modifica** e Buildspec.**

1. **In **Buildspec**, scegli **Inserisci comandi di compilazione** e poi Passa all'editor.**

1. Elimina i comandi di compilazione precompilati e incollali nella seguente buildspec.

   ```
   version: 0.2
   phases:
     build:
       commands:
         - yarn
         - yarn add --dev jest-junit @babel/plugin-proposal-private-property-in-object
         - yarn run build
         - yarn run test -- --coverage --watchAll=false --testResultsProcessor="jest-junit" --detectOpenHandles
   artifacts:
     name: "build-output"
     files:
       - "**/*"
   reports:
     test-report:
       files:
         - 'junit.xml'
       file-format: 'JUNITXML'
     coverage-report:
       files:
         - 'coverage/clover.xml'
       file-format: 'CLOVERXML'
   ```

1. Selezionare **Update buildspec (Aggiorna buildspec)**.

## Crea ed esegui la tua app React
<a name="sample-lambda-react-nodejs.build"></a>

Crea l'app React su CodeBuild Lambda, scarica gli artefatti di compilazione ed esegui l'app React localmente.

**Per creare ed eseguire la tua app React**

1. Selezionare **Start build (Avvia compilazione)**.

1. Una volta terminata la compilazione, accedi al tuo bucket di artefatti del progetto Amazon S3 e scarica l'artefatto dell'app React.

1. Decomprimi l'artefatto della build di React e inseriscilo nella cartella del progetto. `run npm install -g serve && serve -s build`

1. Il `serve` comando servirà il sito statico su una porta locale e stamperà l'output sul tuo terminale. Puoi visitare l'URL localhost sotto `Local:` nell'output del terminale per visualizzare la tua app React.

Per saperne di più su come gestire la distribuzione di un server basato su React, vedi [Create React App Deployment](https://create-react-app.dev/docs/deployment/).

## Pulisci la tua infrastruttura
<a name="sample-lambda-react-nodejs.clean-up"></a>

Per evitare ulteriori addebiti per le risorse utilizzate durante questo tutorial, elimina le risorse create per il CodeBuild progetto.

**Per ripulire la tua infrastruttura**

1. Eliminare gli artefatti del progetto (bucket Amazon S3)

1. Accedi alla CloudWatch console ed elimina i gruppi di CloudWatch log associati al tuo progetto. CodeBuild 

1. Vai alla CodeBuild console ed elimina il CodeBuild progetto scegliendo **Elimina progetto di compilazione**.

# Aggiornare la configurazione di una funzione Lambda con CodeBuild Lambda Python
<a name="sample-lambda-boto3-python"></a>

Il seguente esempio di Python utilizza [Boto3](https://aws.amazon.com/sdk-for-python/) e Lambda Python per aggiornare la configurazione di una funzione CodeBuild Lambda. Questo esempio può essere esteso per gestire altre risorse a livello di codice. AWS Per ulteriori informazioni, consultate la documentazione di [Boto3](https://aws.amazon.com/sdk-for-python/).

## Prerequisiti
<a name="sample-lambda-boto3-python.prerequisites"></a>

Crea o trova una funzione Lambda nel tuo account.

Questo esempio presuppone che tu abbia già creato una funzione Lambda nel tuo account e che la CodeBuild utilizzerai per aggiornare le variabili di ambiente della funzione Lambda. Per ulteriori informazioni sulla configurazione di una funzione Lambda CodeBuild, guarda l'[Implementa una funzione Lambda utilizzando AWS SAM con Lambda Java CodeBuild](sample-lambda-sam-gradle.md)esempio o visita. [AWS Lambda](https://aws.amazon.com/lambda/)

## Configura il tuo repository dei sorgenti
<a name="sample-lambda-boto3-python.set-up-repo"></a>

Crea un repository di sorgenti per archiviare lo script python Boto3.

**Per configurare il repository dei sorgenti**

1. Copia il seguente script python in un nuovo file chiamato. `update_lambda_environment_variables.py`

   ```
   import boto3
   from os import environ
   
   
   def update_lambda_env_variable(lambda_client):
       lambda_function_name = environ['LAMBDA_FUNC_NAME']
       lambda_env_variable = environ['LAMBDA_ENV_VARIABLE']
       lambda_env_variable_value = environ['LAMBDA_ENV_VARIABLE_VALUE']
       print("Updating lambda function " + lambda_function_name + " environment variable "
             + lambda_env_variable + " to " + lambda_env_variable_value)
       lambda_client.update_function_configuration(
           FunctionName=lambda_function_name,
           Environment={
               'Variables': {
                   lambda_env_variable: lambda_env_variable_value
               }
           },
       )
   
   
   if __name__ == "__main__":
       region = environ['AWS_REGION']
       client = boto3.client('lambda', region)
       update_lambda_env_variable(client)
   ```

1. Carica il file python in un repository di sorgenti supportato. Per un elenco dei tipi di sorgenti supportati, consulta. [ProjectSource](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectSource.html)

## Crea un progetto CodeBuild Lambda Python
<a name="sample-lambda-boto3-python.create-project"></a>

Crea un progetto CodeBuild Lambda Python.

**Per creare il tuo progetto CodeBuild Lambda Java**

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

1.  Se viene visualizzata una pagina di CodeBuild informazioni, scegli **Crea** progetto di compilazione. Altrimenti, nel riquadro di navigazione, espandi **Crea**, scegli **Crea progetti**, quindi scegli **Crea progetto di compilazione**. 

1. In **Project name (Nome progetto)** immettere un nome per questo progetto di compilazione. I nomi dei progetti di compilazione devono essere univoci per ogni AWS account. Puoi anche includere una descrizione opzionale del progetto di compilazione per aiutare gli altri utenti a capire a cosa serve questo progetto.

1. In **Source**, seleziona il repository di origine in cui si trova il AWS SAM progetto.

1. In **Environment (Ambiente)**:
   + Per **Compute**, seleziona **Lambda**.
   + Per **Runtime (s)**, selezionate **Python**.
   + Per **Image**, seleziona **aws/codebuild/amazonlinux-x86\$164-lambda-standard:python3.12**.
   + **Per **Ruolo di servizio,** lascia selezionata l'opzione Nuovo ruolo di servizio.** Prendi nota del **nome del ruolo**. Ciò sarà necessario quando aggiornerai le autorizzazioni IAM del progetto più avanti in questo esempio.

1. Scegliere **Create build project (Crea progetto di compilazione)**.

1. Aprire la console IAM all'indirizzo [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/). 

1. Nel riquadro di navigazione, scegli **Ruoli** e seleziona il ruolo di servizio associato al tuo progetto. Puoi trovare il tuo ruolo nel progetto CodeBuild selezionando il progetto di compilazione, scegliendo **Modifica**, **Ambiente** e quindi **Ruolo di servizio**.

1. Scegli la scheda **Relazioni di attendibilità** e quindi **Modifica policy di attendibilità**.

1. Aggiungi la seguente policy in linea al tuo ruolo IAM. Questo verrà utilizzato per implementare la tua AWS SAM infrastruttura in un secondo momento. Per ulteriori informazioni, consulta [Aggiunta e rimozione di autorizzazioni per identità IAM](https://docs.aws.amazon.com//IAM/latest/UserGuide/access_policies_manage-attach-detach.html) nella *Guida per l’utente di IAM *.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "UpdateLambdaPermissions",
               "Effect": "Allow",
               "Action": [
                   "lambda:UpdateFunctionConfiguration"
               ],
               "Resource": [
                   "*"
               ]
           }
       ]
   }
   ```

------

## Configura il progetto buildspec
<a name="sample-lambda-boto3-python.set-up-buildspec"></a>

Per aggiornare la funzione Lambda, lo script legge le variabili di ambiente da buildspec per trovare il nome della funzione Lambda, il nome della variabile di ambiente e il valore della variabile di ambiente.

**Per configurare il tuo progetto buildspec**

1. **Nella CodeBuild console, seleziona il tuo progetto di build, quindi scegli **Modifica** e Buildspec.**

1. **In **Buildspec**, scegli **Inserisci comandi di compilazione** e poi Passa all'editor.**

1. Elimina i comandi di compilazione precompilati e incollali nella seguente buildspec.

   ```
   version: 0.2
   env:
     variables:
       LAMBDA_FUNC_NAME: "<lambda-function-name>"
       LAMBDA_ENV_VARIABLE: "FEATURE_ENABLED"
       LAMBDA_ENV_VARIABLE_VALUE: "true"
   phases:
     install:
       commands:
          - pip3 install boto3
     build:
       commands:
          - python3 update_lambda_environment_variables.py
   ```

1. Selezionare **Update buildspec (Aggiorna buildspec)**.

## Aggiorna la tua configurazione Lambda
<a name="sample-lambda-boto3-python.update"></a>

Usa CodeBuild Lambda Python per aggiornare automaticamente la configurazione della tua funzione Lambda.

**Per aggiornare la configurazione della funzione Lambda**

1. Selezionare **Start build (Avvia compilazione)**.

1. Una volta terminata la compilazione, accedi alla tua funzione Lambda.

1. Seleziona **Configurazione** e poi Variabili di **ambiente**. Dovresti vedere una nuova variabile di ambiente con chiave `FEATURE_ENABLED` e valore`true`.

## Pulisci la tua infrastruttura
<a name="sample-lambda-boto3-python.clean-up"></a>

Per evitare ulteriori addebiti per le risorse utilizzate durante questo tutorial, elimina le risorse create per il CodeBuild progetto.

**Per ripulire la tua infrastruttura**

1. Accedi alla CloudWatch console ed elimina i gruppi di CloudWatch log associati al tuo CodeBuild progetto.

1. Vai alla CodeBuild console ed elimina il tuo CodeBuild progetto scegliendo **Elimina progetto di compilazione**.

1. Se hai creato una funzione Lambda ai fini di questo esempio, scegli la funzione **Azioni** ed **Elimina per ripulire la funzione** Lambda.

## Estensioni
<a name="sample-lambda-boto3-python.extensions"></a>

Se vuoi estendere questo esempio per gestire altre AWS risorse usando AWS CodeBuild Lambda Python:
+ Aggiorna lo script Python per modificare le nuove risorse usando Boto3.
+ Aggiorna il ruolo IAM associato al tuo CodeBuild progetto per disporre delle autorizzazioni per le nuove risorse.
+ Aggiungi eventuali nuove variabili di ambiente associate alle nuove risorse al tuo buildspec.

# Run si basa su flotte a capacità riservata
<a name="fleets"></a>

CodeBuild offre le seguenti flotte di elaborazione:
+ flotte su richiesta
+ Flotte a capacità riservata

Con flotte on-demand, CodeBuild fornisce elaborazione per le tue build. Le macchine vengono distrutte al termine della costruzione. Le flotte on-demand sono completamente gestite e includono funzionalità di scalabilità automatica per gestire i picchi di domanda.

**Nota**  
Le flotte on demand non supportano macOS.

CodeBuild offre anche flotte a capacità riservata che contengono istanze alimentate da Amazon EC2 gestite da. CodeBuild Con le flotte a capacità riservata, puoi configurare un set di istanze dedicate per il tuo ambiente di costruzione. Queste macchine rimangono inattive, pronte per l'elaborazione immediata di build o test e riducono la durata di costruzione. Con flotte a capacità riservata, le macchine sono sempre in funzione e continueranno a sostenere costi finché verranno rifornite.

**Importante**  
Indipendentemente dalla durata di esecuzione di un'istanza, le flotte a capacità riservata sono soggette a un costo iniziale per istanza, dopodiché potrebbero esserci costi aggiuntivi associati. Per ulteriori informazioni, consulta [https://aws.amazon.com/codebuild/pricing/](https://aws.amazon.com/codebuild/pricing/).

**Topics**
+ [Crea un parco veicoli a capacità riservata](#fleets.how-to)
+ [Best practice](#fleets.best-practices)
+ [Posso condividere una flotta di capacità riservata tra più progetti? CodeBuild](#fleets.share)
+ [Come funziona il calcolo basato sugli attributi?](#fleets.attribute-compute)
+ [Posso specificare manualmente un'istanza Amazon EC2 per la mia flotta?](#fleets.manual-input-compute)
+ [Quali regioni supportano flotte a capacità riservata?](#fleets.regions)
+ [Come posso configurare una flotta macOS a capacità riservata?](#fleets.configure-macos)
+ [Come posso configurare un'Amazon Machine Image (AMI) personalizzata per un parco macchine a capacità riservata?](#fleets.custom-ami)
+ [Limitazioni delle flotte a capacità riservata](#fleets.limitations)
+ [Proprietà del parco veicoli a capacità riservata](fleets.reserved-capacity-fleets.md)
+ [Esempi di capacità riservata con AWS CodeBuild](reserved-capacity-samples.md)

## Crea un parco veicoli a capacità riservata
<a name="fleets.how-to"></a>

Utilizza le seguenti istruzioni per creare un parco veicoli a capacità riservata.

**Per creare un parco veicoli con capacità riservata**

1. Accedi Console di gestione AWS e apri la AWS CodeBuild console su [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1. **Nel pannello di navigazione, scegli **Compute fleets**, quindi scegli Create Fleet.**

1. Nel campo di testo **Compute fleet name**, inserisci un nome per la tua flotta.

1. Dal menu a discesa **Sistema operativo**, scegli il sistema operativo.

1. Dal menu a discesa **Architettura**, scegli l'architettura.

1. (Facoltativo) Seleziona **Usa la modalità di esecuzione dell'istanza: facoltativo** per l'esecuzione diretta su un'istanza Amazon EC2 anziché su un contenitore Docker. Quindi scegli una **versione principale e una versione** **secondaria**.

1. (Facoltativo) In **Configurazione aggiuntiva**, procedi come segue:
   + Seleziona **Configura VPC: opzionale** per connettere la tua flotta a un VPC per accedere a risorse private durante l'utilizzo.
     + Dal menu a discesa **VPC**, seleziona un VPC a cui accederà la tua flotta. CodeBuild 
     + Dal menu a discesa **Sottoreti**, seleziona le sottoreti da CodeBuild utilizzare per configurare la configurazione del VPC.
     + Dal menu a discesa **Gruppi di sicurezza**, seleziona i gruppi di sicurezza da CodeBuild utilizzare per lavorare con il tuo VPC.
     + Nel campo **Fleet Service Role, scegli un ruolo** di servizio esistente.
**Nota**  
Assicurati che il tuo ruolo nella flotta disponga delle autorizzazioni necessarie. Per ulteriori informazioni, consulta [Consenti a un utente di aggiungere una politica di autorizzazione per un ruolo di fleet service](auth-and-access-control-iam-identity-based-access-control.md#customer-managed-policies-example-permission-policy-fleet-service-role).
     + Se hai scelto il sistema operativo Amazon Linux, seleziona **Definisci configurazioni proxy - opzionale** per applicare il controllo dell'accesso alla rete alle tue istanze a capacità riservata.
     + Per il **comportamento predefinito**, scegli di consentire o negare il traffico in uscita verso tutte le destinazioni per impostazione predefinita.
     + Per **le regole proxy**, scegli **Aggiungi regola proxy** per specificare i domini di destinazione o IPs per consentire o negare il controllo dell'accesso alla rete.
   + Seleziona **Configura AMI personalizzata: facoltativo** per utilizzare un'Amazon Machine Image (AMI) personalizzata.
     + Dal menu a discesa **AMI**, seleziona un'Amazon Machine Image (AMI) per la tua flotta.
     + Nel campo **Fleet Service Role, scegli un ruolo** di servizio esistente.
**Nota**  
Assicurati che il tuo ruolo nella flotta disponga delle autorizzazioni necessarie. Per ulteriori informazioni, consulta [Consenti a un utente di aggiungere una politica di autorizzazione per un ruolo di fleet service](auth-and-access-control-iam-identity-based-access-control.md#customer-managed-policies-example-permission-policy-fleet-service-role).

1. Nella **configurazione della capacità**, dalla **modalità di selezione Compute**, scegli una delle seguenti opzioni:
   + Se scegli **Selezione guidata**, procedi come segue:
     + Per **Compute**, scegli il tipo di istanze incluse in questo parco istanze.
     + Nel campo **di testo Capacità**, inserisci il numero minimo di istanze nel parco istanze.
     + (Facoltativo) In **Configurazione aggiuntiva**, procedi come segue:
       + Seleziona **Configura scalabilità: opzionale per ridimensionare** automaticamente la flotta in base a questa configurazione. Dal menu a discesa della **modalità Scaling, opzionale**, scegli il comportamento quando la domanda supera la capacità della flotta.
   + Se scegli **Istanza personalizzata**, procedi come segue:
     + Dal menu a discesa del **tipo di istanza Compute**, seleziona il tipo di istanze incluse in questo parco istanze.
     + Nel campo di testo **opzionale Dimensioni aggiuntive del volume EBS**, inserisci il volume aggiuntivo rispetto ai 64 GB di spazio su disco forniti.
     + Nel campo **di testo Capacità**, inserisci il numero minimo di istanze nel parco istanze.
     + (Facoltativo) In **Configurazione aggiuntiva**, procedi come segue:
       + Seleziona **Configura scalabilità: opzionale per ridimensionare** automaticamente la flotta in base a questa configurazione. Dal menu a discesa della **modalità Scaling, opzionale**, scegli il comportamento quando la domanda supera la capacità della flotta.

1. **Scegli Create Compute Fleet.**

1. Dopo aver creato la flotta di elaborazione, crea un nuovo CodeBuild progetto o modificane uno esistente. **Da **Ambiente**, scegli **Capacità riservata** in **Modello di provisioning**, quindi scegli la flotta specificata in Fleet name.**

## Best practice
<a name="fleets.best-practices"></a>

Quando utilizzi flotte a capacità riservata, ti consigliamo di seguire queste migliori pratiche.
+ Ti consigliamo di utilizzare la modalità cache del codice sorgente per migliorare le prestazioni di compilazione memorizzando nella cache il codice sorgente.
+ Ti consigliamo di utilizzare la memorizzazione nella cache dei livelli Docker per migliorare le prestazioni di compilazione memorizzando nella cache i livelli Docker esistenti.

## Posso condividere una flotta di capacità riservata tra più progetti? CodeBuild
<a name="fleets.share"></a>

Sì, puoi massimizzare l'utilizzo della capacità di una flotta utilizzandola in più progetti.

**Importante**  
Quando si utilizza la funzionalità di capacità riservata, i dati memorizzati nella cache delle istanze del parco istanze, inclusi i file sorgente, i layer Docker e le directory memorizzate nella cache specificate nelle specifiche di costruzione, possono essere accessibili ad altri progetti all'interno dello stesso account. Questa funzionalità è preimpostata e consente ai progetti all'interno dello stesso account di condividere le istanze del parco istanze.

## Come funziona il calcolo basato sugli attributi?
<a name="fleets.attribute-compute"></a>

Se scegli `ATTRIBUTE_BASED_COMPUTE` come quelli del tuo parco veicoli`computeType`, puoi specificare gli attributi in un nuovo campo chiamato. `computeConfiguration` Questi attributi includono vCPUs, memoria, spazio su disco e`machineType`. Questo `machineType` è `GENERAL` o`NVME`. Dopo aver specificato uno o alcuni degli attributi disponibili, CodeBuild sceglierà un tipo di calcolo tra i tipi di istanza supportati disponibili come finalizzato. `computeConfiguration`

**Nota**  
CodeBuild sceglierà l'istanza più economica che soddisfa tutti i requisiti di input. La memoriaCPUs, v e lo spazio su disco delle istanze scelte saranno tutti maggiori o uguali ai requisiti di input. È possibile verificare la risoluzione `computeConfiguration` nel parco dati creato o aggiornato.

Se inserisci un messaggio `computeConfiguration` che non è possibile soddisfare CodeBuild, riceverai un'eccezione di convalida. Tieni inoltre presente che il comportamento di sovraccarico della flotta su richiesta verrà sostituito dal comportamento in coda se non è disponibile per la `computeConfiguration` modalità on demand.

## Posso specificare manualmente un'istanza Amazon EC2 per la mia flotta?
<a name="fleets.manual-input-compute"></a>

Sì, puoi inserire direttamente l'istanza Amazon EC2 desiderata nella console selezionando **Istanza personalizzata** o configurando il parametro API,. `InstanceType` Questo campo viene utilizzato nei seguenti casi APIs: CreateFleet, UpdateFleet CreateProject, UpdateProject e. StartBuild Per ulteriori informazioni, consulta [Compute instance type](fleets.reserved-capacity-fleets.md#compute).

## Quali regioni supportano flotte a capacità riservata?
<a name="fleets.regions"></a>

Le flotte Amazon Linux e Windows con capacità riservata sono supportate nei seguenti paesi Regioni AWS: Stati Uniti orientali (Virginia settentrionale), Stati Uniti orientali (Ohio), Stati Uniti occidentali (Oregon), Asia Pacifico (Mumbai), Asia Pacifico (Singapore), Asia Pacifico (Sydney), Asia Pacifico (Tokyo), Europa (Francoforte), Europa (Irlanda) e Sud America (San Paolo). [Per ulteriori informazioni su Regioni AWS dove CodeBuild è disponibile, consulta Servizi per regione.AWS](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/)

Le flotte macOS Medium a capacità riservata sono supportate nei seguenti paesi Regioni AWS: Stati Uniti orientali (Virginia settentrionale), Stati Uniti orientali (Ohio), Stati Uniti occidentali (Oregon), Asia Pacifico (Sydney) ed Europa (Francoforte). Le flotte macOS Large con capacità riservata sono supportate nelle seguenti aree Regioni AWS: Stati Uniti orientali (Virginia settentrionale), Stati Uniti orientali (Ohio), Stati Uniti occidentali (Oregon) e Asia Pacifico (Sydney).

## Come posso configurare una flotta macOS a capacità riservata?
<a name="fleets.configure-macos"></a>

**Per configurare una flotta macOS a capacità riservata**

1. Accedi Console di gestione AWS e apri la AWS CodeBuild console su [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1. **Nel pannello di navigazione, scegli **Compute fleets**, quindi scegli Create Fleet.**

1. Nel campo di testo **Compute fleet name**, inserisci un nome per la tua flotta.

1. **Dal menu a discesa **Sistema operativo**, scegli macOS.**

1. Nel campo **Calcolo**, scegli uno dei seguenti tipi di macchina di elaborazione: **Apple M2, 24 GB di memoria, 8 v CPUs o Apple M2,** **32 GB di memoria, 12** v. CPUs

1. Nel campo **di testo Capacità**, inserisci il numero minimo di istanze nel parco istanze.

1. (Facoltativo) Per utilizzare un'immagine personalizzata per la tua flotta, [Come posso configurare un'Amazon Machine Image (AMI) personalizzata per un parco macchine a capacità riservata?](#fleets.custom-ami) verifica che la tua Amazon Machine Image (AMI) abbia i prerequisiti richiesti.

1. (Facoltativo) Per configurare un VPC con la tua flotta, in **Configurazione aggiuntiva procedi** come segue:
   + Dal menu a discesa **VPC, opzionale**, seleziona un VPC a cui accederà la tua flotta. CodeBuild 
   + Dal menu a discesa **Sottoreti**, seleziona le sottoreti da CodeBuild utilizzare per configurare la configurazione del VPC.
   + Dal menu a discesa **Gruppi di sicurezza**, seleziona i gruppi di sicurezza da CodeBuild utilizzare per lavorare con il tuo VPC.
   + Nel campo **Fleet service role**, scegli un ruolo di servizio esistente.
**Nota**  
Assicurati che il tuo ruolo nella flotta disponga delle autorizzazioni necessarie. Per ulteriori informazioni, consulta [Consenti a un utente di aggiungere una politica di autorizzazione per un ruolo di fleet service](auth-and-access-control-iam-identity-based-access-control.md#customer-managed-policies-example-permission-policy-fleet-service-role).

1. Scegli **Create Compute Fleet** e attendi l'avvio dell'istanza del parco istanze. Una volta avviata, la capacità sarà`n/n`, *n* dov'è la capacità fornita.

1. Dopo il lancio della flotta di elaborazione, crea un nuovo CodeBuild progetto o modificane uno esistente. **Da **Ambiente**, scegli **Capacità riservata** in **Modello di provisioning**, quindi scegli la flotta specificata in Fleet name.**

## Come posso configurare un'Amazon Machine Image (AMI) personalizzata per un parco macchine a capacità riservata?
<a name="fleets.custom-ami"></a>

**Per configurare un'Amazon Machine Image (AMI) personalizzata per un parco macchine a capacità riservata**

1. Accedi Console di gestione AWS e apri la AWS CodeBuild console su [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1. **Nel pannello di navigazione, scegli **Compute fleets**, quindi scegli Create Fleet.**

1. Nel campo di testo **Compute fleet name**, inserisci un nome per la tua flotta.

1. Scegli **un'immagine personalizzata** per la tua flotta e assicurati che la tua Amazon Machine Image (AMI) soddisfi i seguenti prerequisiti:
   + Se il tipo di ambiente è`MAC_ARM`, assicurati che l'**architettura** AMI sia a 64 bit`Mac-Arm`.
   + Se il tipo di ambiente è`LINUX_EC2`, assicurati che l'**architettura** AMI sia a 64 bit`x86`.
   + Se il tipo di ambiente è`ARM_EC2`, assicurati che l'**architettura** AMI sia a 64 bit`Arm`.
   + Se il tipo di ambiente è`WINDOWS_EC2`, assicurati che l'**architettura** AMI sia a 64 bit`x86`.
   + L'AMI consente il CodeBuild servizio **Organization ARN**. Per un elenco delle organizzazioni ARNs, vedere[Amazon Machine Images (AMI)](fleets.reserved-capacity-fleets.md#ami).
   + Se l'AMI è crittografato con una AWS KMS chiave, la AWS KMS chiave deve consentire anche l'**ID dell'organizzazione** del CodeBuild servizio. Per un elenco delle organizzazioni IDs, vedere[Amazon Machine Images (AMI)](fleets.reserved-capacity-fleets.md#ami). Per ulteriori informazioni sulle AWS KMS chiavi, consulta [Consentire alle organizzazioni e OUs di utilizzare una chiave KMS nella Guida](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/share-amis-with-organizations-and-OUs.html#allow-org-ou-to-use-key) per l'utente di *Amazon EC2*. Per autorizzare CodeBuild l'organizzazione a utilizzare una chiave KMS, aggiungi la seguente dichiarazione alla politica chiave:

     ```
     {
         "Sid": "Allow access for organization root",
         "Effect": "Allow",
         "Principal": "*",
         "Action": [
             "kms:Describe*",
             "kms:List*",
             "kms:Get*",
             "kms:Encrypt",
             "kms:Decrypt",
             "kms:ReEncrypt*",
             "kms:GenerateDataKey*",
             "kms:CreateGrant"
         ],
         "Resource": "*",
         "Condition": {
             "StringEquals": {
                 "aws:PrincipalOrgID": "o-123example"
             }
         }
     }
     ```
   + Nel campo **Fleet service role**, concedi le seguenti autorizzazioni Amazon EC2:

------
#### [ JSON ]

****  

     ```
     {
         "Version":"2012-10-17",		 	 	 
         "Statement": [
             {
                 "Effect": "Allow",
                 "Action": [
                    "ec2:DescribeImages",
                    "ec2:DescribeSnapshots"
                 ],
                 "Resource": "*"
             }
         ]
     }
     ```

------

## Limitazioni delle flotte a capacità riservata
<a name="fleets.limitations"></a>

Esistono alcuni casi d'uso che le flotte a capacità riservata non sono supportate e, se hanno un impatto su di te, utilizza invece flotte su richiesta:
+ Le flotte a capacità riservata non supportano le metriche di utilizzo delle build.
+ Le flotte macOS a capacità riservata non supportano le sessioni di debug.

Per ulteriori informazioni su limiti e quote, consulta. [Flotte di calcolo](limits.md#fleet-limits)

# Proprietà del parco veicoli a capacità riservata
<a name="fleets.reserved-capacity-fleets"></a>

Un parco veicoli con capacità riservata contiene le seguenti proprietà. Per ulteriori informazioni sulle flotte a capacità riservata, vedere[Run si basa su flotte a capacità riservata](fleets.md). 

**Sistema operativo**  
Il sistema operativo Sono disponibili i seguenti sistemi operativi:  
+ Amazon Linux
+ macOS
+ Windows Server 2019
+ Windows Server 2022

**Architecture**  
L'architettura del processore. Sono disponibili le seguenti architetture:  
+ x86\$164
+ Arm64

**Tipo di ambiente**  
I tipi di ambiente disponibili quando è selezionato **Amazon Linux**. Sono disponibili i seguenti tipi di ambiente:  
+ Linux EC2
+ GPU Linux

**Tipo di istanza di calcolo**  
Le configurazioni di calcolo per le istanze della flotta.    
**Selezione guidata**  
Specificate diversi tipi di elaborazione selezionando le impostazioni di vCPU, memoria e spazio su disco. Per informazioni sulla disponibilità dei tipi di calcolo per regione, consulta. [Informazioni sui tipi di ambienti con capacità riservata](build-env-ref-compute-types.md#environment-reserved-capacity.types)  
**Istanza personalizzata**  
Specificate manualmente il tipo di istanza desiderato.

**Capacity**  
Il numero iniziale di macchine assegnate alla flotta, che definisce il numero di build che possono essere eseguite in parallelo.

**Comportamento di overflow**  
Definisce il comportamento quando il numero di build supera la capacità della flotta.    
**Su richiesta**  
Le build Overflow vengono eseguite su richiesta. CodeBuild   
Se scegli di impostare il comportamento di overflow su richiesta durante la creazione di una flotta connessa a VPC, assicurati di aggiungere le autorizzazioni VPC richieste al tuo ruolo di project service. Per ulteriori informazioni, consulta [Esempio di dichiarazione politica per consentire CodeBuild l'accesso ai AWS servizi necessari per creare un'interfaccia di rete VPC](auth-and-access-control-iam-identity-based-access-control.md#customer-managed-policies-example-create-vpc-network-interface).
Se scegli di impostare il comportamento di overflow su richiesta, tieni presente che le build overflow verranno fatturate separatamente, in modo simile a Amazon EC2 on-demand. Per ulteriori informazioni, consulta [https://aws.amazon.com/codebuild/pricing/](https://aws.amazon.com/codebuild/pricing/).  
**Coda**  
Le esecuzioni di compilazione vengono messe in coda fino a quando una macchina non è disponibile. Ciò limita i costi aggiuntivi perché non vengono allocate macchine aggiuntive.

**Immagini di macchine Amazon (AMI)**  
Le proprietà di Amazon Machine Image (AMI) per la tua flotta. Le seguenti proprietà sono supportate da CodeBuild:      
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/codebuild/latest/userguide/fleets.reserved-capacity-fleets.html)

**Configurazione aggiuntiva**    
**VPC - opzionale**  
Il VPC a cui accederà la tua CodeBuild flotta. Per ulteriori informazioni, consulta [Utilizzo AWS CodeBuild con Amazon Virtual Private Cloud](vpc-support.md).  
Se viene specificata un'override della flotta quando si chiama l' StartBuild API, CodeBuild ignorerà la configurazione VPC del progetto.  
**Sottoreti**  
Le sottoreti VPC CodeBuild utilizzate per configurare la configurazione VPC. Tieni presente che le flotte a capacità riservata supportano solo una sottorete in una singola zona di disponibilità. Inoltre, assicurati che le tue sottoreti includano un gateway NAT.  
**Gruppi di sicurezza**  
I gruppi di sicurezza VPC CodeBuild utilizzati con il tuo VPC. Assicurati che i tuoi gruppi di sicurezza consentano le connessioni in uscita.  
**Ruolo del Fleet Service**  
Definisce il ruolo di servizio per la tua flotta a partire da un ruolo di servizio esistente nel tuo account.  
**Definire le configurazioni del proxy (opzionale)**  
Configurazioni proxy che applicano il controllo dell'accesso alla rete alle istanze con capacità riservata. Per ulteriori informazioni, consulta [Utilizzo AWS CodeBuild con un server proxy gestito](run-codebuild-in-managed-proxy-server.md).  
Le configurazioni proxy non supportano VPC, Windows o macOS.  
**Comportamento predefinito**  
Definisce il comportamento del traffico in uscita.    
**Abilita**  
Per impostazione predefinita, consente il traffico in uscita verso tutte le destinazioni.  
**Rifiuta**  
Per impostazione predefinita, nega il traffico in uscita verso tutte le destinazioni.  
**Regole proxy**  
Speciifica i domini di destinazione o IPs a cui consentire o negare il controllo dell'accesso alla rete.

# Esempi di capacità riservata con AWS CodeBuild
<a name="reserved-capacity-samples"></a>

Questi esempi possono essere usati per sperimentare flotte a capacità riservata in. CodeBuild

**Topics**
+ [Memorizzazione nella cache con campione di capacità riservata](#reserved-capacity-samples.caching)

## Memorizzazione nella cache con campione di capacità riservata
<a name="reserved-capacity-samples.caching"></a>

Una cache memorizza parti riutilizzabili dell'ambiente di compilazione e le utilizza su più compilazioni. Questo esempio ha dimostrato come abilitare la memorizzazione nella cache all'interno del progetto di build utilizzando la capacità riservata. Per ulteriori informazioni, consulta [Creazioni di cache per migliorare le prestazioni](build-caching.md).

Puoi iniziare specificando una o più modalità cache nelle impostazioni del progetto:

```
Cache:
        Type: LOCAL
        Modes:
          - LOCAL_CUSTOM_CACHE
          - LOCAL_DOCKER_LAYER_CACHE
          - LOCAL_SOURCE_CACHE
```

**Nota**  
Assicurati di abilitare la modalità privilegiata per utilizzare la cache di Docker Layer.

Le impostazioni buildspec del tuo progetto dovrebbero essere simili alle seguenti:

```
version: 0.2
      phases:
        build:
          commands:
            - echo testing local source cache
            - touch /codebuild/cache/workspace/foobar.txt
            - git checkout -b cached_branch
            - echo testing local docker layer cache
            - docker run alpine:3.14 2>&1 | grep 'Pulling from' || exit 1
            - echo testing local custom cache
            - touch foo
            - mkdir bar && ln -s foo bar/foo2
            - mkdir bar/bar && touch bar/bar/foo3 && touch bar/bar/foo4
            - "[ -f foo ] || exit 1"
            - "[ -L bar/foo2 ] || exit 1"
            - "[ -f bar/bar/foo3 ] || exit 1"
            - "[ -f bar/bar/foo4 ] || exit 1"
      cache:
        paths:
           - './foo'
           - './bar/**/*'
           - './bar/bar/foo3'
```

Puoi iniziare eseguendo una build con il nuovo progetto per seminare la cache. Una volta completata, dovresti iniziare un'altra build con una buildspec sostitutiva, simile alla seguente:

```
version: 0.2
      phases:
        build:
          commands:
            - echo testing local source cache
            - git branch | if grep 'cached_branch'; then (exit 0); else (exit 1); fi
            - ls /codebuild/cache/workspace | if grep 'foobar.txt'; then (exit 0); else (exit 1); fi
            - echo testing local docker layer cache
            - docker run alpine:3.14 2>&1 | if grep 'Pulling from'; then (exit 1); else (exit 0); fi
            - echo testing local custom cache
            - "[ -f foo ] || exit 1"
            - "[ -L bar/foo2 ] || exit 1"
            - "[ -f bar/bar/foo3 ] || exit 1"
            - "[ -f bar/bar/foo4 ] || exit 1"
      cache:
        paths:
           - './foo'
           - './bar/**/*'
           - './bar/bar/foo3'
```

# Esegui le build in batch
<a name="batch-build"></a>

Puoi utilizzarlo AWS CodeBuild per eseguire build simultanee e coordinate di un progetto con build in batch. 

**Topics**
+ [Ruolo di sicurezza](#batch_security_role)
+ [Tipi di build in batch](#batch_build_types)
+ [Modalità report Batch](#batch-report-mode)
+ [Ulteriori informazioni](#batch_more_info)

## Ruolo di sicurezza
<a name="batch_security_role"></a>

Le compilazioni in batch introducono un nuovo ruolo di sicurezza nella configurazione in batch. Questo nuovo ruolo è obbligatorio in quanto CodeBuild devi essere in grado di richiamare le `RetryBuild` azioni `StartBuild``StopBuild`, e per conto dell'utente per eseguire le build come parte di un batch. I clienti devono utilizzare un nuovo ruolo e non lo stesso ruolo che usano nella compilazione, per due motivi:
+ Dare al ruolo di compilazione le autorizzazioni `StartBuild`, `StopBuild` e `RetryBuild` consentirebbe a una singola compilazione di avviare più compilazioni tramite buildspec.
+ CodeBuild le build in batch forniscono restrizioni che limitano il numero di build e i tipi di calcolo che possono essere utilizzati per le build del batch. Se il ruolo di compilazione dispone di queste autorizzazioni, è possibile che le compilazioni stesse possano ignorare queste restrizioni.

## Tipi di build in batch
<a name="batch_build_types"></a>

CodeBuild supporta i seguenti tipi di build in batch:

**Topics**
+ [Costruisci un grafico](#batch_build_graph)
+ [Crea un elenco](#batch_build_list)
+ [Costruisci una matrice](#batch_build_matrix)
+ [Crea fanout](#batch_build_fanout)

### Costruisci un grafico
<a name="batch_build_graph"></a>

Un grafico di compilazione definisce un insieme di attività che dipendono da altre attività del batch. 

L'esempio seguente definisce un grafico di compilazione che crea una catena di dipendenze. 

```
batch:
  fast-fail: false
  build-graph:
    - identifier: build1
      env:
        variables:
          BUILD_ID: build1
      ignore-failure: false
    - identifier: build2
      buildspec: build2.yml
      env:
        variables:
          BUILD_ID: build2
      depend-on:
        - build1
    - identifier: build3
      env:
        variables:
          BUILD_ID: build3
      depend-on:
        - build2
    - identifier: build4
      env:
        compute-type: ARM_LAMBDA_1GB
    - identifier: build5
      env:
        fleet: fleet_name
```

In questo esempio:
+ `build1`viene eseguito per primo perché non ha dipendenze.
+ `build2`ha una dipendenza da`build1`, quindi `build2` viene eseguito dopo `build1` il completamento.
+ `build3`dipende da`build2`, quindi `build3` viene eseguito dopo il completamento. `build2`

Per ulteriori informazioni sulla sintassi build graph buildspec, vedi. [`batch/build-graph`](batch-build-buildspec.md#build-spec.batch.build-graph)

### Crea un elenco
<a name="batch_build_list"></a>

Un elenco di build definisce una serie di attività eseguite in parallelo. 

L'esempio seguente definisce un elenco di build. Le `build2` build `build1` and verranno eseguite in parallelo.

```
batch:
  fast-fail: false
  build-list:
    - identifier: build1
      env:
        variables:
          BUILD_ID: build1
      ignore-failure: false
    - identifier: build2
      buildspec: build2.yml
      env:
        variables:
          BUILD_ID: build2
      ignore-failure: true
    - identifier: build3
      env:
        compute-type: ARM_LAMBDA_1GB
    - identifier: build4
      env:
        fleet: fleet_name
    - identifier: build5
      env:
        compute-type: GENERAL_LINUX_XLAGRE
```

Per ulteriori informazioni sulla sintassi buildspec della lista di compilazione, consulta. [`batch/build-list`](batch-build-buildspec.md#build-spec.batch.build-list)

### Costruisci una matrice
<a name="batch_build_matrix"></a>

Una matrice di compilazione definisce le attività con diverse configurazioni eseguite in parallelo. CodeBuild crea una build separata per ogni possibile combinazione di configurazione. 

L'esempio seguente mostra una matrice di compilazione con due file buildspec e tre valori per una variabile di ambiente.

```
batch:
  build-matrix:
    static:
      ignore-failure: false
    dynamic:
      buildspec: 
        - matrix1.yml
        - matrix2.yml
      env:
        variables:
          MY_VAR:
            - VALUE1
            - VALUE2
            - VALUE3
```

In questo esempio, CodeBuild crea sei build:
+ `matrix1.yml` con `$MY_VAR=VALUE1`
+ `matrix1.yml` con `$MY_VAR=VALUE2`
+ `matrix1.yml` con `$MY_VAR=VALUE3`
+ `matrix2.yml` con `$MY_VAR=VALUE1`
+ `matrix2.yml` con `$MY_VAR=VALUE2`
+ `matrix2.yml` con `$MY_VAR=VALUE3`

Ogni build avrà le seguenti impostazioni:
+ `ignore-failure`impostato su `false`
+ `env/type`impostato su `LINUX_CONTAINER`
+ `env/image`impostato su `aws/codebuild/amazonlinux-x86_64-standard:4.0`
+ `env/privileged-mode`impostato su `true`

Queste build vengono eseguite in parallelo.

Per ulteriori informazioni sulla sintassi buildspec della matrice di compilazione, vedere. [`batch/build-matrix`](batch-build-buildspec.md#build-spec.batch.build-matrix)

### Crea fanout
<a name="batch_build_fanout"></a>

Un fanout di compilazione definisce un'attività che verrà suddivisa in più build nel batch. Può essere usato per eseguire test in parallelo. CodeBuild crea una build separata per ogni frammento di casi di test in base al valore impostato nel `parallelism` campo.

L'esempio seguente definisce un build fanout che crea cinque build che vengono eseguite in parallelo.

```
version: 0.2

batch:
   fast-fail: false 
   build-fanout:
     parallelism: 5
     ignore-failure: false

phases:
  install:
    commands:
      - npm install
   build:
    commands:
      - mkdir -p test-results
      - cd test-results
      - |
        codebuild-tests-run \
         --test-command 'npx jest --runInBand --coverage' \
         --files-search "codebuild-glob-search '**/test/**/*.test.js'" \
         --sharding-strategy 'equal-distribution'
```

In questo esempio, supponendo che ci siano 100 test da eseguire, CodeBuild crea cinque build che eseguono ciascuna 20 test in parallelo.

Per ulteriori informazioni sulla sintassi build graph buildspec, consulta. [`batch/build-fanout`](batch-build-buildspec.md#build-spec.batch.build-fanout)

## Modalità report Batch
<a name="batch-report-mode"></a>

Se il provider di origine del progetto è Bitbucket o GitHub Enterprise e il progetto è configurato per riportare gli stati di compilazione al provider di origine, puoi selezionare il modo in cui desideri che gli stati della compilazione in batch vengano inviati al provider di origine. GitHub Puoi scegliere di inviare gli stati come un unico rapporto di stato aggregato per il batch o di riportare singolarmente lo stato di ogni build del batch.

Per ulteriori informazioni, consulta i seguenti argomenti:
+ [Configurazione Batch (creazione)](create-project.md#create-project-console-batch-config)
+ [Configurazione in batch (aggiornamento)](change-project.md#change-project-console-batch-config)

## Ulteriori informazioni
<a name="batch_more_info"></a>

Per ulteriori informazioni, consulta i seguenti argomenti:
+ [Riferimento buildspec per la compilazione in batch](batch-build-buildspec.md)
+ [Configurazione Batch](create-project.md#create-project-console-batch-config)
+ [Esegui una build in batch (AWS CLI)](run-batch-build-cli.md)
+ [Interrompi gli accumuli in batch AWS CodeBuild](stop-batch-build.md)

# Esegui test paralleli in build in batch
<a name="parallel-test"></a>

È possibile utilizzare AWS CodeBuild per eseguire test paralleli nelle build in batch. L'esecuzione parallela dei test è un approccio di test in cui più casi di test vengono eseguiti contemporaneamente su ambienti, macchine o browser diversi, anziché essere eseguiti in sequenza. Questo approccio può ridurre in modo significativo il tempo complessivo di esecuzione dei test e migliorare l'efficienza dei test. Inoltre CodeBuild, puoi suddividere i test in più ambienti ed eseguirli contemporaneamente.

I principali vantaggi dell'esecuzione parallela dei test includono:

1. **Tempo di esecuzione ridotto**: i test che richiederebbero ore in sequenza possono essere completati in pochi minuti.

1. **Migliore utilizzo delle risorse**: utilizza in modo efficiente le risorse di elaborazione disponibili.

1. **Feedback anticipato: un** completamento più rapido del test significa un feedback più rapido per gli sviluppatori.

1. **Conveniente**: consente di risparmiare tempo e costi di elaborazione a lungo termine.

Quando si implementa l'esecuzione di test paralleli, vengono comunemente considerati due approcci principali: ambienti separati e multithreading. Sebbene entrambi i metodi mirino a ottenere l'esecuzione simultanea dei test, differiscono in modo significativo nella loro implementazione ed efficacia. Ambienti separati creano istanze isolate in cui ogni suite di test viene eseguita in modo indipendente, mentre il multithreading esegue più test contemporaneamente all'interno dello stesso spazio di processo utilizzando thread diversi.

I vantaggi principali degli ambienti separati rispetto al multithreading includono:

1. **Isolamento**: ogni test viene eseguito in un ambiente completamente isolato, evitando interferenze tra i test.

1. **Conflitti di risorse**: nessuna concorrenza per le risorse condivise, cosa che spesso si verifica nel multithreading.

1. **Stabilità**: meno incline alle condizioni di gara e ai problemi di sincronizzazione.

1. **Debug più semplice**: quando i test falliscono, è più semplice identificare la causa poiché ogni ambiente è indipendente.

1. **Gestione dello stato: gestisci** facilmente i problemi di stato condivisi che affliggono i test multithread.

1. **Migliore scalabilità**: può aggiungere facilmente più ambienti senza complessità.

**Topics**
+ [Support in AWS CodeBuild](#parallel-test-support)
+ [Abilita l'esecuzione di test paralleli nelle build in batch](parallel-test-enable.md)
+ [Usa il comando `codebuild-tests-run` CLI](parallel-test-tests-run.md)
+ [Usa il comando `codebuild-glob-search` CLI](parallel-test-glob-search.md)
+ [Informazioni sulla suddivisione dei test](parallel-test-splitting.md)
+ [Unisci automaticamente i report di build individuali](parallel-test-auto-merge.md)
+ [Esempio di esecuzione parallela di test per vari framework di test](sample-parallel-test.md)

## Support in AWS CodeBuild
<a name="parallel-test-support"></a>

AWS CodeBuild fornisce un solido supporto per l'esecuzione di test paralleli tramite la sua funzionalità di creazione in batch, progettata specificamente per sfruttare l'esecuzione in ambienti separati. Questa implementazione si allinea perfettamente con i vantaggi degli ambienti di test isolati.

**Creazione in batch con distribuzione dei test**  
CodeBuildla funzionalità di compilazione in batch consente la creazione di più ambienti di compilazione che vengono eseguiti contemporaneamente. Ogni ambiente funziona come un'unità completamente isolata, con risorse di elaborazione, ambiente di runtime e dipendenze propri. Tramite la configurazione di build in batch, puoi specificare quanti ambienti paralleli sono necessari e come i test devono essere distribuiti su di essi.

**CLI di partizionamento dei test**  
CodeBuild include un meccanismo di distribuzione dei test integrato tramite il suo strumento CLI`codebuild-tests-run`, che divide automaticamente i test in diversi ambienti.

**Aggregazione dei report**  
Uno dei principali punti di forza dell'implementazione è la sua capacità CodeBuild di gestire l'aggregazione dei risultati dei test senza problemi. Mentre i test vengono eseguiti in ambienti separati, raccoglie e combina CodeBuild automaticamente i report di test di ciascun ambiente in un rapporto di test unificato a livello di creazione del batch. Questo consolidamento fornisce una visione completa dei risultati dei test mantenendo i vantaggi in termini di efficienza dell'esecuzione parallela.

Di seguito è riportato il diagramma che spiega il concetto completo di esecuzione di test paralleli in AWS CodeBuild.

![\[Diagramma concettuale dell'esecuzione di test paralleli.\]](http://docs.aws.amazon.com/it_it/codebuild/latest/userguide/images/parallel-test.png)


# Abilita l'esecuzione di test paralleli nelle build in batch
<a name="parallel-test-enable"></a>

Per eseguire i test in parallelo, aggiorna il file batch build buildspec per includere il campo build-fanout e il numero di build parallele per dividere la suite di test nel campo come mostrato di seguito. `parallelism` Il `parallelism` campo specifica quanti esecutori indipendenti sono configurati per eseguire la suite di test.

Per eseguire i test in più ambienti di esecuzione parallela, imposta il `parallelism` campo su un valore maggiore di zero. Nell'esempio seguente, `parallelism` è impostato su cinque, il che significa che CodeBuild avvia cinque build identiche che eseguono una parte della suite di test in parallelo.

Puoi usare il comando [codebuild-tests-run](parallel-test-tests-run.md)CLI per dividere ed eseguire i test. I file di test verranno suddivisi e una parte dei test verrà eseguita in ogni build. Ciò riduce il tempo complessivo impiegato per eseguire l'intera suite di test. Nell'esempio seguente, i test verranno suddivisi in cinque e i punti di divisione verranno calcolati in base al nome dei test.

```
version: 0.2

batch:
  fast-fail: false 
  build-fanout:
    parallelism: 5
    ignore-failure: false
    
phases:
  install:
    commands:
      - npm install jest-junit --save-dev
  pre_build:
    commands:
      - echo 'prebuild'
  build:
    commands:
      - |
        codebuild-tests-run \
         --test-command 'npx jest --runInBand --coverage' \
         --files-search "codebuild-glob-search '**/_tests_/**/*.test.js'" \
         --sharding-strategy 'equal-distribution'

  post_build:
    commands:
      - codebuild-glob-search '**/*.xml'  
      - echo "Running post-build steps..."
      - echo "Build completed on `date`"

reports:
  test-reports:
    files:
      - '**/junit.xml'               
    base-directory: .
    discard-paths: yes           
    file-format: JUNITXML
```

Se i report sono configurati per la build build-fanout, i report di test vengono generati separatamente per ogni build, che possono essere visualizzati nella scheda **Report** delle build corrispondenti nella console. AWS CodeBuild 

Per ulteriori informazioni su come eseguire test paralleli in batch, vedere[Esempio di esecuzione parallela di test per vari framework di test](sample-parallel-test.md).

# Usa il comando `codebuild-tests-run` CLI
<a name="parallel-test-tests-run"></a>

AWS CodeBuild fornisce una CLI che prenderà come input il comando di test e la posizione del file di test. La CLI con questi input suddividerà i test in un numero di frammenti come specificato nel `parallelism` campo in base ai nomi dei file di test. L'assegnazione dei file di test agli shard viene decisa dalla strategia di sharding.

```
codebuild-tests-run \
    --files-search "codebuild-glob-search '**/__tests__/*.js'" \
    --test-command 'npx jest --runInBand --coverage' \
    --sharding-strategy 'equal-distribution'
```

La tabella seguente descrive i campi per il comando `codebuild-tests-run` CLI.


| Nome del campo | Tipo | Obbligatorio o facoltativo | Definizione | 
| --- | --- | --- | --- | 
|  `test-command`  |  Stringa  |  Richiesto  |  Questo comando viene utilizzato per eseguire i test.  | 
|  `files-search`  |  Stringa  |  Richiesto  |  Questo comando fornisce un elenco di file di test. Puoi utilizzare il comando [codebuild-glob-search](parallel-test-glob-search.md)CLI AWS CodeBuild fornito o qualsiasi altro strumento di ricerca di file a tua scelta.  Assicurati che il `files-search` comando restituisca i nomi dei file, ciascuno separato da una nuova riga.   | 
|  `sharding-strategy`  |  Enum  |  Facoltativo  |  Valori validi: `equal-distribution` (valore predefinito), `stability` [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/codebuild/latest/userguide/parallel-test-tests-run.html) Per ulteriori informazioni, consulta [Informazioni sulla suddivisione dei test](parallel-test-splitting.md).  | 

La `codebuild-tests-run` CLI funziona innanzitutto per identificare l'elenco dei file di test utilizzando il comando fornito nel `files-search` parametro. Quindi determina un sottoinsieme di file di test designati per lo shard (ambiente) corrente utilizzando la strategia di sharding specificata. Infine, questo sottoinsieme di file di test viene formattato in un elenco separato da spazi e aggiunto alla fine del comando fornito nel parametro prima di essere eseguito. `test-command`

Per i framework di test che non accettano elenchi separati da spazi, la `codebuild-tests-run` CLI fornisce un'alternativa flessibile tramite la variabile di ambiente. `CODEBUILD_CURRENT_SHARD_FILES` Questa variabile contiene un elenco separato da nuova riga di percorsi di file di test designati per lo shard di build corrente. Sfruttando questa variabile di ambiente, puoi adattarti facilmente a vari requisiti del framework di test, soddisfacendo quelli che prevedono formati di input diversi dagli elenchi separati da spazi. Inoltre, puoi anche formattare i nomi dei file di test in base alle esigenze del framework di test. Di seguito è riportato un esempio dell'utilizzo di `CODEBUILD_CURRENT_SHARD_FILES` su Linux con il framework Django. Qui `CODEBUILD_CURRENT_SHARD_FILES` viene utilizzato per ottenere i percorsi dei file *con notazione a punti* supportati da Django:

```
codebuild-tests-run \
    —files-search "codebuild-glob-search '/tests/test_.py'" \
    —test-command 'python3 manage.py test $(echo "$CODEBUILD_CURRENT_SHARD_FILES" | sed -E "s/\//__/g; s/\.py$//; s/__/./g")' \
    —sharding-strategy 'equal-distribution'
```

**Nota**  
Nota che la variabile di `CODEBUILD_CURRENT_SHARD_FILES` ambiente può essere utilizzata solo all'interno dell'ambito della `codebuild-tests-run` CLI.  
Inoltre, se stai usando `CODEBUILD_CURRENT_SHARD_FILES` inside test-command, inserisci `CODEBUILD_CURRENT_SHARD_FILES` tra virgolette doppie come mostrato nell'esempio precedente.

# Usa il comando `codebuild-glob-search` CLI
<a name="parallel-test-glob-search"></a>

AWS CodeBuild fornisce uno strumento CLI integrato chiamato `codebuild-glob-search` che consente di cercare file nella directory di lavoro in base a uno o più modelli di glob. Questo strumento può essere particolarmente utile quando si desidera eseguire test su file o directory specifici all'interno del progetto.

## Utilizzo
<a name="parallel-test-glob-search.usage"></a>

La `codebuild-glob-search` CLI ha la seguente sintassi di utilizzo:

```
codebuild-glob-search <glob_pattern1> [<glob_pattern2> ...]
```
+ `<glob_pattern1>``<glob_pattern2>`, ecc.: Uno o più pattern globulari da confrontare con i file nella directory di lavoro.
+ `*`: Corrisponde a qualsiasi sequenza di caratteri (esclusi i separatori di percorso).
+ `**`: corrisponde a qualsiasi sequenza di caratteri (inclusi i separatori di percorso).

**Nota**  
Assicurati che la stringa glob contenga virgolette. Per verificare i risultati del pattern-matching, usa il comando. `echo`  

```
version: 0.2

phases:
  build:
    commands:
      - echo $(codebuild-glob-search '**/__tests__/*.js')
      - codebuild-glob-search '**/__tests__/*.js' | xargs -n 1 echo
```

## Output
<a name="parallel-test-glob-search.output"></a>

La CLI produrrà un elenco separato da nuove righe di percorsi di file che corrispondono ai modelli di glob forniti. I percorsi dei file restituiti saranno relativi alla directory di lavoro.

Se non viene trovato alcun file corrispondente ai modelli forniti, la CLI emetterà un messaggio che indica che non è stato trovato alcun file.

Tieni presente che le directory trovate a causa di un determinato modello verranno escluse dai risultati della ricerca.

## Esempio
<a name="parallel-test-glob-search.example"></a>

Se vuoi cercare solo i file all'interno della directory tests e delle sue sottodirectory con `.js` estensione, puoi usare il seguente comando con la `codebuild-glob-search` CLI:

```
codebuild-glob-search '**/__tests__/*.js'
```

Questo comando cercherà tutti i file con `.js` estensione all'interno della `__tests__` directory e delle relative sottodirectory, come indicato dal modello.

# Informazioni sulla suddivisione dei test
<a name="parallel-test-splitting"></a>

AWS CodeBuild consente di parallelizzare l'esecuzione della suite di test su più istanze di calcolo, riducendo il tempo complessivo di esecuzione del test. Questa funzionalità è abilitata tramite la configurazione batch nelle impostazioni del CodeBuild progetto e l'`codebuild-tests-run`utilità nel file buildspec.

I test vengono suddivisi in base alla strategia di sharding specificata. CodeBuild fornisce due strategie di sharding come specificato di seguito:

Distribuzione equa  
La strategia `equal-distribution` di sharding divide i test in build parallele in base all'ordine alfabetico dei nomi dei file di test. Questo approccio ordina innanzitutto i file di test e poi utilizza un metodo basato su blocchi per distribuirli, assicurando che file simili vengano raggruppati insieme per i test. È consigliato quando si ha a che fare con un insieme relativamente piccolo di file di test. Sebbene questo metodo miri ad allocare un numero approssimativamente uguale di file a ogni shard, con una differenza massima di uno, non garantisce la stabilità. Quando i file di test vengono aggiunti o rimossi nelle build successive, la distribuzione dei file esistenti può cambiare, causando potenzialmente la riassegnazione tra gli shard.

Stabilità  
La strategia di `stability` sharding utilizza un algoritmo di hashing coerente per suddividere i test tra gli shard, garantendo che la distribuzione dei file rimanga stabile. Quando vengono aggiunti o rimossi nuovi file, questo approccio garantisce che le file-to-shard assegnazioni esistenti rimangano sostanzialmente invariate. Per suite di test di grandi dimensioni, si consiglia di utilizzare l'opzione di stabilità per distribuire uniformemente i test tra gli shard. Questo meccanismo mira a fornire una distribuzione quasi uguale, garantendo che ogni shard riceva un numero simile di file, con una varianza minima. Sebbene la strategia di stabilità non garantisca una distribuzione equa ideale, offre una distribuzione quasi uguale che mantiene la coerenza nelle assegnazioni dei file tra le build, anche quando i file vengono aggiunti o rimossi.

Per abilitare la suddivisione dei test, è necessario configurare la sezione batch nelle impostazioni del CodeBuild progetto, specificando il livello desiderato `parallelism` e altri parametri pertinenti. Inoltre, è necessario includere l'`codebuild-tests-run`utilità nel file buildspec, insieme ai comandi di test e al metodo di suddivisione appropriati.

# Unisci automaticamente i report di build individuali
<a name="parallel-test-auto-merge"></a>

Nelle build in batch fanout, AWS CodeBuild supporta l'unione automatica dei singoli report di build in un report consolidato a livello di batch. Questa funzionalità offre una visione completa dei risultati dei test e della copertura del codice in tutte le build all'interno di un batch.

## Come funziona
<a name="parallel-test-auto-merge.how"></a>

Quando si eseguono build `fanout` in batch, ogni singola build genera report di [test](test-reporting.md). CodeBuild quindi consolida automaticamente report identici provenienti da build diverse in un report unificato, che viene allegato alla build batch. Questi report consolidati sono facilmente accessibili tramite il `reportArns` campo dell'[ BatchGetBuildBatches](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_BatchGetBuildBatches.html#CodeBuild-BatchGetBuildBatches-response-buildBatches)API e possono essere visualizzati anche nella scheda **Report** della console. Questa funzionalità di fusione si estende anche ai report rilevati automaticamente.

I report consolidati vengono creati in [gruppi di report](test-report-group.md) specificati nelle specifiche della build o scoperti automaticamente da. CodeBuild Puoi analizzare le tendenze dei report uniti direttamente in questi gruppi di report, fornendo informazioni preziose sulle metriche complessive, sulle prestazioni di costruzione e sulle metriche di qualità nelle build storiche dello stesso progetto in batch di compilazione.

Per ogni singola build all'interno del batch, crea CodeBuild automaticamente gruppi di report separati. Questi seguono una convenzione di denominazione specifica, che combina il nome del gruppo di report creato in batch con un suffisso di`BuildFanoutShard<shard_number>`, dove `shard_number` rappresenta il numero dello shard in cui viene creato il gruppo di report. Questa organizzazione consente di tracciare e analizzare le tendenze sia a livello di compilazione consolidato che individuale, offrendo flessibilità nel modo in cui monitorate e valutate i relativi processi di compilazione.

Il rapporto di creazione in batch segue la stessa struttura dei report di compilazione [individuali](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_Report.html). I seguenti campi chiave nella scheda **Report sono specifici per i report** creati in batch:

**Stato del report relativo alla creazione in Batch**  
Lo stato dei report di creazione in batch segue regole specifiche a seconda del tipo di report:  
+ Rapporti di test:
  + Riuscito: lo stato viene impostato su Riuscito quando tutti i singoli report di compilazione hanno avuto esito positivo.
  + Non riuscito: lo stato è impostato su Non riuscito se un singolo report di compilazione non è riuscito.
  + Incompleto: lo stato viene contrassegnato come incompleto se un singolo rapporto di compilazione è mancante o presenta uno stato incompleto.
+ Rapporti sulla copertura del codice:
  + Completo: lo stato viene impostato per essere completato quando tutti i report di compilazione individuali sono completi.
  + Non riuscito: lo stato è impostato su Non riuscito se un singolo report di compilazione non è riuscito.
  + Incompleto: lo stato viene contrassegnato come incompleto se un singolo rapporto di compilazione è mancante o presenta uno stato incompleto.

**Riepilogo del test**  
Il rapporto di test unito consolida i seguenti campi di tutti i singoli report di build:  
+ duration-in-nano-seconds: Durata massima del test in nanosecondi tra tutti i singoli report di build.
+ totale: il conteggio combinato di tutti i casi di test, sommando il numero totale di test di ciascuna build.
+ conteggi degli stati: fornisce una visualizzazione consolidata degli stati dei test, ad esempio superati, non riusciti o ignorati, calcolati aggregando il conteggio di ogni tipo di stato in tutte le singole build.

**Riepilogo della copertura del codice**  
Il rapporto sulla copertura del codice unito combina i campi di tutte le singole build utilizzando i seguenti calcoli:  
+ filiali coperte: somma di tutte le filiali coperte dai singoli report.
+ succursali perse: somma di tutte le filiali mancanti riportate nelle segnalazioni individuali.
+ branch-coverage-percentage: `(Total covered branches / Total branches) * 100`
+ righe coperte: somma di tutte le righe coperte dai singoli report.
+ righe mancanti: somma di tutte le righe mancanti dei singoli report.
+ lines-coverage-percentage: `(Total covered lines / Total lines) * 100`

**ID di esecuzione**  
L'ARN di compilazione in batch.

**Casi di test**  
Il report unito contiene un elenco consolidato di tutti i casi di test relativi alle singole build, accessibile sia tramite l'[DescribeTestCases](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_DescribeTestCases.html)API che tramite il rapporto sulla build in batch nella console.

**Coperture del codice**  
Il rapporto sulla copertura del codice unito fornisce informazioni consolidate sulla copertura di linee e filiali per ogni file in tutte le singole build, accessibili sia tramite l'[DescribeCodeCoverages](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_DescribeCodeCoverages.html)API che tramite il rapporto di creazione in batch nella console. Nota: per i file coperti da più file di test distribuiti su diversi shard, il report unito utilizza i seguenti criteri di selezione:  

1. La selezione primaria si basa sulla copertura di linea più alta tra gli shard.

1. Se la copertura di linea è uguale su più frammenti, viene selezionato lo shard con la copertura di diramazione più elevata.

# Esempio di esecuzione parallela di test per vari framework di test
<a name="sample-parallel-test"></a>

Puoi usare il comando `codebuild-tests-run` CLI per dividere ed eseguire i test in ambienti di esecuzione parallela. La sezione seguente fornisce `buildspec.yml` esempi per vari framework, illustrando l'utilizzo del comando. `codebuild-tests-run`
+ Ogni esempio seguente include un `parallelism` livello di cinque, il che significa che verranno creati cinque ambienti di esecuzione identici per suddividere i test. Puoi scegliere un `parallelism` livello adatto al tuo progetto modificando il `parallelism` valore nella `build-fanout` sezione.
+ Ogni esempio seguente mostra la configurazione dei test in modo che vengano divisi in base al nome del file di test, che è quello predefinito. Questo distribuisce i test in modo uniforme negli ambienti di esecuzione parallela.

Prima di iniziare, consulta [Esegui test paralleli in build in batch](parallel-test.md) per ulteriori informazioni.

Per un elenco completo delle opzioni quando si utilizza il comando `codebuild-tests-run` CLI, vedere. [Usa il comando `codebuild-tests-run` CLI](parallel-test-tests-run.md)

**Topics**
+ [Configura test paralleli con Django](sample-parallel-test-django.md)
+ [Configura test paralleli con Elixir](sample-parallel-test-elixir.md)
+ [Configura test paralleli con Go](sample-parallel-test-go.md)
+ [Configurare test paralleli con Java (Maven)](sample-parallel-test-java-maven.md)
+ [Configura test paralleli con Javascript (Jest)](sample-parallel-test-javascript.md)
+ [Configura test paralleli con Kotlin](sample-parallel-test-kotlin.md)
+ [Configura test paralleli con PHPUnit](sample-parallel-test-phpunit.md)
+ [Configura test paralleli con Pytest](sample-parallel-test-python.md)
+ [Configura test paralleli con Ruby (Cucumber)](sample-parallel-test-ruby-cucumber.md)
+ [Configura test paralleli con Ruby () RSpec](sample-parallel-test-ruby.md)

# Configura test paralleli con Django
<a name="sample-parallel-test-django"></a>

Di seguito è riportato un esempio `buildspec.yml` che mostra l'esecuzione di test paralleli con Django su una piattaforma Ubuntu:

```
version: 0.2

batch:
  fast-fail: false
  build-fanout:
    parallelism: 5

phases:
  install:
    commands:
      - echo 'Installing Python dependencies'
      - sudo yum install -y python3 python3-pip 
      - python3 -m ensurepip --upgrade 
      - python3 -m pip install django
  pre_build:
    commands:
      - echo 'Prebuild'
  build:
    commands:
      - echo 'Running Django Tests'
      - |
        codebuild-tests-run \
         --test-command 'python3 manage.py test $(echo "$CODEBUILD_CURRENT_SHARD_FILES" | sed -E "s/\//__/g; s/\.py$//; s/__/./g")' \ 
         --files-search "codebuild-glob-search '**/tests/*test_*.py'" \
         --sharding-strategy 'equal-distribution'
  post_build:
    commands:
      - echo 'Test execution completed'
```

L'esempio precedente mostra l'utilizzo della variabile `CODEBUILD_CURRENT_SHARD_FILES` di ambiente. Qui `CODEBUILD_CURRENT_SHARD_FILES` viene utilizzato per recuperare i percorsi dei file di notazione a punti supportati da Django. Usa le virgolette doppie `CODEBUILD_CURRENT_SHARD_FILES` all'interno come mostrato sopra.

# Configura test paralleli con Elixir
<a name="sample-parallel-test-elixir"></a>

Di seguito è riportato un esempio `buildspec.yml` che mostra l'esecuzione di test paralleli con Elixir su una piattaforma Ubuntu:

```
version: 0.2

batch:
  fast-fail: false
  build-fanout:
    parallelism: 5

phases:
  install:
    commands:
      - echo 'Installing Elixir dependencies'
      - sudo apt update
      - sudo DEBIAN_FRONTEND=noninteractive apt install -y elixir
      - elixir --version
      - mix --version
  pre_build:
    commands:
      - echo 'Prebuild'
  build:
    commands:
      - echo 'Running Elixir Tests'
      - |
        codebuild-tests-run \
         --test-command 'mix test' \
         --files-search "codebuild-glob-search '**/test/**/*_test.exs'" \ 
         --sharding-strategy 'equal-distribution'
  post_build:
    commands:
      - echo "Test execution completed"
```

# Configura test paralleli con Go
<a name="sample-parallel-test-go"></a>

Di seguito è riportato un esempio `buildspec.yml` che mostra l'esecuzione di test paralleli con Go su una piattaforma Linux:

```
version: 0.2

batch:
  fast-fail: false
  build-fanout:
    parallelism: 5
    ignore-failure: false

phases:
  install:
    commands:
      - echo 'Fetching Go version'
      - go version
  pre_build:
    commands:
      - echo 'prebuild'
  build:
    commands:
      - echo 'Running go Tests'
      - go mod init calculator
      - cd calc
      - |
        codebuild-tests-run \
         --test-command "go test -v calculator.go" \
         --files-search "codebuild-glob-search '**/*test.go'"
  post_build:
    commands:
      - echo "Test execution completed"
```

Nell'esempio precedente, `calculator.go` la funzione contiene semplici funzioni matematiche da testare e tutti i file e i file di test si trovano all'interno della `calc` cartella. `calculator.go`

# Configurare test paralleli con Java (Maven)
<a name="sample-parallel-test-java-maven"></a>

Di seguito è riportato un esempio `buildspec.yml` che mostra l'esecuzione di test paralleli con Java su una piattaforma Linux:

```
version: 0.2

batch:
  fast-fail: false 
  build-fanout:
    parallelism: 5
    ignore-failure: false
    
phases:
  pre_build:
    commands:
      - echo 'prebuild'
  build:
    commands:
      - echo "Running mvn test"
      - |
        codebuild-tests-run \
          --test-command 'mvn test -Dtest=$(echo "$CODEBUILD_CURRENT_SHARD_FILES" | sed "s|src/test/java/||g; s/\.java//g; s|/|.|g; s/ /,/g" | tr "\n" "," | sed "s/,$//")' \
          --files-search "codebuild-glob-search '**/test/**/*.java'"
         
  post_build:
    commands:
      - echo "Running post-build steps..."
      - echo "Test execution completed"
```

Nell'esempio riportato, la variabile di ambiente `CODEBUILD_CURRENT_SHARD_FILES` contiene file di test nello shard corrente, separati da nuove righe. Questi file vengono convertiti in un elenco di nomi di classi separati da virgole nel formato accettato dal parametro per Maven. `-Dtest`

# Configura test paralleli con Javascript (Jest)
<a name="sample-parallel-test-javascript"></a>

Di seguito è riportato un esempio `buildspec.yml` che mostra l'esecuzione di test paralleli con Javascript su una piattaforma Ubuntu:

```
version: 0.2

batch:
  fast-fail: true
  build-fanout:
    parallelism: 5
    ignore-failure: false

phases:
  install:
    commands:
      - echo 'Installing Node.js dependencies'
      - apt-get update
      - apt-get install -y nodejs
      - npm install
      - npm install --save-dev jest-junit
  pre_build:
    commands:
      - echo 'prebuild'
  build:
    commands:
      - echo 'Running JavaScript Tests'
      - |
         codebuild-tests-run \
          --test-command "npx jest" \
          --files-search "codebuild-glob-search '**/test/**/*.test.js'" \
          --sharding-strategy 'stability'
    post_build:
      commands:
        - echo 'Test execution completed'
```

# Configura test paralleli con Kotlin
<a name="sample-parallel-test-kotlin"></a>

Di seguito è riportato un esempio `buildspec.yml` che mostra l'esecuzione di test paralleli con Kotlin su una piattaforma Linux:

```
version: 0.2

batch:
  fast-fail: false
  build-fanout:
    parallelism: 2
    ignore-failure: false

phases:
  install:
    runtime-versions:
      java: corretto11 
    commands:
      - echo 'Installing dependencies'
      - KOTLIN_VERSION="1.8.20" # Replace with your desired version
      - curl -o kotlin-compiler.zip -L "https://github.com/JetBrains/kotlin/releases/download/v${KOTLIN_VERSION}/kotlin-compiler-${KOTLIN_VERSION}.zip"
      - unzip kotlin-compiler.zip -d /usr/local
      - export PATH=$PATH:/usr/local/kotlinc/bin
      - kotlin -version
      - curl -O https://repo1.maven.org/maven2/org/junit/platform/junit-platform-console-standalone/1.8.2/junit-platform-console-standalone-1.8.2.jar
  pre_build:
    commands:
      - echo 'prebuild'
  build:
    commands:
      - echo 'Running Kotlin Tests'
      - |
        codebuild-tests-run \
          --test-command 'kotlinc src/main/kotlin/*.kt $(echo "$CODEBUILD_CURRENT_SHARD_FILES" | tr "\n" " ") -d classes -cp junit-platform-console-standalone-1.8.2.jar' \
          --files-search "codebuild-glob-search 'src/test/kotlin/*.kt'"
      - |
        codebuild-tests-run \
          --test-command '
            java -jar junit-platform-console-standalone-1.8.2.jar --class-path classes \
              $(for file in $CODEBUILD_CURRENT_SHARD_FILES; do
                 class_name=$(basename "$file" .kt)
                 echo "--select-class $class_name"
               done)
          ' \
          --files-search "codebuild-glob-search 'src/test/kotlin/*.kt'"
  post_build:
    commands:
      - echo "Test execution completed"
```

Nell'esempio precedente, la `codebuild-tests-run` CLI viene utilizzata due volte. Durante la prima esecuzione, kotlinc compila i file. La `CODEBUILD_CURRENT_SHARD_FILES` variabile recupera i file di test assegnati allo shard corrente, che vengono poi convertiti in un elenco separato da spazi. Nella seconda esecuzione, JUnit esegue i test. Ancora una volta, `CODEBUILD_CURRENT_SHARD_FILES` recupera i file di test assegnati allo shard corrente, ma questa volta vengono convertiti in nomi di classe.

# Configura test paralleli con PHPUnit
<a name="sample-parallel-test-phpunit"></a>

Di seguito è riportato un esempio di un test `buildspec.yml` che mostra l'esecuzione di test paralleli PHPUnit su una piattaforma Linux:

```
version: 0.2
 
batch:
   fast-fail: false
   build-fanout:
     parallelism: 5
     ignore-failure: false
 
phases:
   install:
     commands:
       - echo 'Install dependencies'
       - composer require --dev phpunit/phpunit
   pre_build:
     commands:
       - echo 'prebuild'
   build:
     commands:
       - echo 'Running phpunit Tests'
       - composer dump-autoload
       - | 
         codebuild-tests-run \
          --test-command "./vendor/bin/phpunit --debug" \ 
          --files-search "codebuild-glob-search '**/tests/*Test.php'"
   post_build:
       commands:
         - echo 'Test execution completed'
```

# Configura test paralleli con Pytest
<a name="sample-parallel-test-python"></a>

Di seguito è riportato un esempio `buildspec.yml` che mostra l'esecuzione di test paralleli con Pytest su una piattaforma Ubuntu:

```
version: 0.2

batch:
  fast-fail: false
  build-fanout:
    parallelism: 5
    ignore-failure: false

phases:
  install:
    commands:
      - echo 'Installing Python dependencies'
      - apt-get update
      - apt-get install -y python3 python3-pip
      - pip3 install --upgrade pip
      - pip3 install pytest
  build:
    commands:
      - echo 'Running Python Tests'
      - |
         codebuild-tests-run \
          --test-command 'python -m pytest' \
          --files-search "codebuild-glob-search 'tests/test_*.py'" \
          --sharding-strategy 'equal-distribution'
  post_build:
    commands:
      - echo "Test execution completed"
```

Di seguito è riportato un esempio `buildspec.yml` che mostra l'esecuzione di test paralleli con Pytest su una piattaforma Windows:

```
version: 0.2

batch:
  fast-fail: false
  build-fanout:
    parallelism: 5
    ignore-failure: false

phases:
  install:
    commands:
      - echo 'Installing Python dependencies'
      - pip install pytest
  pre_build:
    commands:
      - echo 'prebuild'
  build:
    commands:
      - echo 'Running pytest'
      - |
        & codebuild-tests-run `
         --test-command 'pytest @("$env:CODEBUILD_CURRENT_SHARD_FILES" -split \"`r?`n\")'  `
         --files-search "codebuild-glob-search '**/test_*.py' '**/*_test.py'" `
         --sharding-strategy 'equal-distribution' 
  post_build:
    commands:
      - echo "Test execution completed"
```

Nell'esempio precedente, la variabile di `CODEBUILD_CURRENT_SHARD_FILES` ambiente viene utilizzata per recuperare i file di test assegnati allo shard corrente e passati come array al comando pytest.

# Configura test paralleli con Ruby (Cucumber)
<a name="sample-parallel-test-ruby-cucumber"></a>

Di seguito è riportato un esempio `buildspec.yml` che mostra l'esecuzione di test paralleli con Cucumber su una piattaforma Linux:

```
version: 0.2

batch:
  fast-fail: false
  build-fanout:
    parallelism: 5
    ignore-failure: false

phases:
  install:
    commands:
      - echo 'Installing Ruby dependencies'
      - gem install bundler
      - bundle install
  pre_build:
    commands:
      - echo 'prebuild'
  build:
    commands:
      - echo 'Running Cucumber Tests'
      - cucumber --init
      - |
        codebuild-tests-run \
         --test-command "cucumber" \
         --files-search "codebuild-glob-search '**/*.feature'"
  post_build:
    commands:
      - echo "Test execution completed"
```

# Configura test paralleli con Ruby () RSpec
<a name="sample-parallel-test-ruby"></a>

Di seguito è riportato un esempio di un test `buildspec.yml` che mostra l'esecuzione di test paralleli RSpec su una piattaforma Ubuntu:

```
version: 0.2

batch:
  fast-fail: false
  build-fanout:
    parallelism: 5
    ignore-failure: false

phases:
  install:
    commands:
      - echo 'Installing Ruby dependencies'
      - apt-get update
      - apt-get install -y ruby ruby-dev build-essential
      - gem install bundler
      - bundle install
  build:
    commands:
      - echo 'Running Ruby Tests'
      - |
         codebuild-tests-run \
          --test-command 'bundle exec rspec' \
          --files-search "codebuild-glob-search 'spec/**/*_spec.rb'" \
          --sharding-strategy 'equal-distribution'
  post_build:
    commands:
      - echo "Test execution completed"
```

# Creazioni di cache per migliorare le prestazioni
<a name="build-caching"></a>

Durante la creazione del progetto è possibile risparmiare tempo utilizzando una cache. Una cache memorizza parti riutilizzabili dell'ambiente di compilazione e le utilizza su più compilazioni. Il tuo progetto di build può utilizzare uno dei due tipi di caching: Amazon S3 o locale. Se utilizzi una cache locale, devi scegliere una o più delle tre modalità di cache disponibili: cache delle origini, cache di livello Docker e cache personalizzata. 

**Nota**  
La modalità cache di livello Docker è disponibile solo per l'ambiente Linux. Se scegli questa modalità, devi eseguire la build in modalità privilegiata. CodeBuild ai progetti concessi la modalità privilegiata concede al contenitore l'accesso a tutti i dispositivi. Per ulteriori informazioni, vedere [Privilegi di runtime e funzionalità Linux](https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities) sul sito Docker Docs.

**Topics**
+ [Memorizzazione nella cache di Amazon S3](caching-s3.md)
+ [Caching locale](caching-local.md)
+ [Specificare una cache locale](specify-caching-local.md)

# Memorizzazione nella cache di Amazon S3
<a name="caching-s3"></a>

Il caching di Amazon S3 archivia la cache in un bucket Amazon S3 disponibile su più host di build. Questa è una buona opzione per artefatti di build di piccole e medie dimensioni che sono più costosi da creare che da scaricare.

Per utilizzare Amazon S3 in una build, puoi specificare i percorsi per i file che desideri memorizzare nella cache. `buildspec.yml` CodeBuild memorizzerà e aggiornerà automaticamente la cache nella posizione Amazon S3 configurata nel progetto. Se non specifichi i percorsi dei file, CodeBuild memorizzerà nella cache al meglio le dipendenze del linguaggio comune per aiutarti a velocizzare le build. Puoi visualizzare i dettagli della cache nei log di compilazione.

Inoltre, se desideri avere più versioni della cache, puoi definire una chiave di cache in. `buildspec.yml` CodeBuild memorizza la cache nel contesto di questa chiave di cache e crea una copia cache unica che non verrà aggiornata una volta creata. Le chiavi della cache possono essere condivise anche tra progetti. Funzionalità come le chiavi dinamiche, il controllo delle versioni della cache e la condivisione della cache tra le build sono disponibili solo quando viene specificata una chiave.

Per ulteriori informazioni sulla sintassi della cache nel file buildspec, consulta il riferimento buildspec. [cache](build-spec-ref.md#build-spec.cache)

**Topics**
+ [Genera chiavi dinamiche](#caching-s3-dynamic)
+ [codebuild-hash-files](#caching-s3-dynamic.codebuild-hash-files)
+ [Versione cache](#caching-s3-version)
+ [Condivisione della cache tra progetti](#caching-s3-sharing)
+ [Esempi di Buildspec](#caching-s3-examples)

## Genera chiavi dinamiche
<a name="caching-s3-dynamic"></a>

Una chiave cache può includere comandi di shell e variabili di ambiente per renderla unica, abilitando gli aggiornamenti automatici della cache quando la chiave cambia. Ad esempio, è possibile definire una chiave utilizzando l'hash del `package-lock.json` file. Quando le dipendenze in quel file cambiano, l'hash, e quindi la chiave della cache, cambia, attivando la creazione automatica di una nuova cache.

```
cache:
    key: npm-key-$(codebuild-hash-files package-lock.json)
```

CodeBuild valuterà l'espressione per ottenere la chiave finale`$(codebuild-hash-files package-lock.json)`:

```
npm-key-abc123
```

È inoltre possibile definire una chiave di cache utilizzando variabili di ambiente, ad esempio`CODEBUILD_RESOLVED_SOURCE_VERSION`. Ciò garantisce che ogni volta che la fonte cambia, venga generata una nuova chiave, con conseguente salvataggio automatico di una nuova cache:

```
cache:
   key: npm-key-$CODEBUILD_RESOLVED_SOURCE_VERSION
```

CodeBuild valuterà l'espressione e otterrà la chiave finale:

```
npm-key-046e8b67481d53bdc86c3f6affdd5d1afae6d369
```

## codebuild-hash-files
<a name="caching-s3-dynamic.codebuild-hash-files"></a>

`codebuild-hash-files`è uno strumento CLI che calcola un hash SHA-256 per un insieme di file nella directory di origine utilizzando modelli glob: CodeBuild 

```
codebuild-hash-files <glob-pattern-1> <glob-pattern-2> ...
```

Ecco alcuni esempi che utilizzano: `codebuild-hash-files`

```
codebuild-hash-files package-lock.json
codebuild-hash-files '**/*.md'
```

## Versione cache
<a name="caching-s3-version"></a>

La versione cache è un hash generato dai percorsi delle directory memorizzate nella cache. Se due cache hanno versioni diverse, vengono trattate come cache distinte durante il processo di abbinamento. Ad esempio, le due cache seguenti sono considerate diverse perché fanno riferimento a percorsi diversi:

```
version: 0.2

phases:
  build:
    commands:
      - pip install pandas==2.2.3 --target pip-dependencies
cache:
  key: pip-dependencies 
  paths:
    - "pip-dependencies/**/*"
```

```
version: 0.2

phases:
  build:
    commands:
      - pip install pandas==2.2.3 --target tmp/pip-dependencies
cache:
  key: pip-dependencies 
  paths:
    - "tmp/pip-dependencies/**/*"
```

## Condivisione della cache tra progetti
<a name="caching-s3-sharing"></a>

Puoi utilizzare il campo `cacheNamespace` API nella `cache` sezione per condividere una cache tra più progetti. Questo campo definisce l'ambito della cache. Per condividere una cache, devi fare quanto segue:
+ Usa lo stesso`cacheNamespace`.
+ Specificare la stessa cache`key`.
+ Definire percorsi di cache identici.
+ Usa gli stessi bucket Amazon S3 e `pathPrefix` se impostati.

Ciò garantisce la coerenza e consente la condivisione della cache tra i progetti.

### Specificare uno spazio dei nomi della cache (console)
<a name="caching-s3-sharing.console"></a>

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

1. Seleziona **Crea progetto**. 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 **Artifacts**, scegli Configurazione aggiuntiva.**

1. Per il **tipo di cache**, scegli **Amazon S3**.

1. Per lo spazio **dei nomi Cache, facoltativo**, inserisci un valore per lo spazio dei nomi.  
![\[Parametro dello spazio dei nomi della cache nella console. CodeBuild\]](http://docs.aws.amazon.com/it_it/codebuild/latest/userguide/images/s3-cache-namespace.png)

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

### Specificate uno spazio dei nomi della cache ()AWS CLI
<a name="caching-s3-sharing.cli"></a>

È possibile utilizzare il `--cache` parametro in AWS CLI per specificare uno spazio dei nomi della cache.

```
--cache '{"type": "S3", "location": "your-s3-bucket", "cacheNamespace": "test-cache-namespace"}'
```

## Esempi di Buildspec
<a name="caching-s3-examples"></a>

Ecco alcuni esempi di buildspec per linguaggi comuni:

**Topics**
+ [Memorizza le dipendenze di Node.js](#caching-s3-examples.nodejs)
+ [Dipendenze da Cache Python](#caching-s3-examples.python)
+ [Cache delle dipendenze di Ruby](#caching-s3-examples.ruby)
+ [Dipendenze Cache Go](#caching-s3-examples.go)

### Memorizza le dipendenze di Node.js
<a name="caching-s3-examples.nodejs"></a>

Se il progetto include un `package-lock.json` file e lo utilizza `npm` per gestire le dipendenze di Node.js, l'esempio seguente mostra come impostare la memorizzazione nella cache. Per impostazione predefinita, `npm` installa le dipendenze nella directory. `node_modules`

```
version: 0.2

phases:
  build:
    commands:
      - npm install
cache:
  key: npm-$(codebuild-hash-files package-lock.json)
  paths:
    - "node_modules/**/*"
```

### Dipendenze da Cache Python
<a name="caching-s3-examples.python"></a>

Se il progetto include un `requirements.txt` file e utilizza pip per gestire le dipendenze di Python, l'esempio seguente dimostra come configurare la memorizzazione nella cache. Per impostazione predefinita, pip installa i pacchetti nella directory del sistema. `site-packages`

```
version: 0.2

phases:
  build:
    commands:
      - pip install -r requirements.txt
cache:
  key: python-$(codebuild-hash-files requirements.txt)
  paths:
    - "/root/.pyenv/versions/${python_version}/lib/python${python_major_version}/site-packages/**/*"
```

Inoltre, puoi installare le dipendenze in una directory specifica e configurare la memorizzazione nella cache per quella directory.

```
version: 0.2

phases:
  build:
    commands:
      - pip install -r requirements.txt --target python-dependencies
cache:
  key: python-$(codebuild-hash-files requirements.txt)
  paths:
    - "python-dependencies/**/*"
```

### Cache delle dipendenze di Ruby
<a name="caching-s3-examples.ruby"></a>

Se il progetto include un `Gemfile.lock` file e lo utilizza `Bundler` per gestire le dipendenze gem, l'esempio seguente dimostra come configurare la memorizzazione nella cache in modo efficace.

```
version: 0.2

phases:
  build:
    commands:
      - bundle install --path vendor/bundle
cache:
  key: ruby-$(codebuild-hash-files Gemfile.lock)
  paths:
    - "vendor/bundle/**/*"
```

### Dipendenze Cache Go
<a name="caching-s3-examples.go"></a>

Se il progetto include un `go.sum` file e utilizza i moduli Go per gestire le dipendenze, l'esempio seguente dimostra come configurare la memorizzazione nella cache. Per impostazione predefinita, i moduli Go vengono scaricati e archiviati nella directory. `${GOPATH}/pkg/mod`

```
version: 0.2

phases:
  build:
    commands:
      - go mod download
cache:
  key: go-$(codebuild-hash-files go.sum)
  paths:
    - "/go/pkg/mod/**/*"
```

# Caching locale
<a name="caching-local"></a>

Questa modalità archivia la cache in locale su un host di compilazioni disponibile solo per tale host. Questa è una buona opzione per gli artefatti di build di dimensioni intermedie e grandi perché la cache è immediatamente disponibile sull'host di build. Questa non è l'opzione migliore se le compilazioni avvengono raramente. Ciò significa che il trasferimento su rete non influisce sulle prestazioni delle compilazioni.

Se decidi di optare per il caching locale, devi scegliere una o più delle seguenti modalità cache: 
+ La modalità cache delle origini memorizza i metadati Git per origini primarie e secondarie. Dopo la creazione della cache, le compilazioni successive estraggono solo le modifiche tra i commit. Questa modalità rappresenta una scelta valida per progetti con una directory di lavoro pulita e un'origine costituita da un repository Git di grandi dimensioni. Se scegli questa opzione e il tuo progetto non utilizza un repository Git (AWS CodeCommit, GitHub, GitHub Enterprise Server o Bitbucket), l'opzione viene ignorata. 
+ La modalità cache di livello Docker memorizza i livelli Docker esistenti. Rappresenta la soluzione ideale per progetti che prevedono la creazione o l'estrazione di immagini Docker di grandi dimensioni. Può inoltre prevenire eventuali problemi di prestazioni causati dall'estrazione di immagini Docker di grandi dimensioni dalla rete. 
**Nota**  
La cache di livello Docker può essere utilizzata solo in ambiente Linux. 
È necessario impostare il flag `privileged` in modo che il progetto disponga delle autorizzazioni Docker richieste.   
Per impostazione predefinita, il daemon Docker è abilitato per le build non VPC. Se desideri utilizzare i contenitori Docker per le build VPC, [consulta Runtime Privilege e Linux Capabilities sul sito Web di Docker Docs e](https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities) abilita la modalità privilegiata. Inoltre, Windows non supporta la modalità privilegiata.
Prima di utilizzare una cache di livello Docker, è consigliabile considerare le implicazioni per la sicurezza. 
+ La modalità cache personalizzata memorizza le directory specificate nel file di specifiche di compilazione. Rappresenta una buona scelta se lo scenario di compilazione non è idoneo per nessuna delle altre due modalità di cache locale. Se utilizzi una cache personalizzata: 
  + Puoi specificare per il caching solo le directory. Non puoi specificare singoli file. 
  + Per fare riferimento alle directory memorizzate nella cache si utilizzano i symlink. 
  + Le directory memorizzate nella cache vengono collegate alla compilazione prima del download delle origini del progetto. Gli elementi memorizzati nella cache sostituiscono gli elementi di origine se hanno lo stesso nome. Le directory vengono specificate utilizzando i percorsi di cache nel file di specifiche di compilazione. Per ulteriori informazioni, consulta [Sintassi buildspec](build-spec-ref.md#build-spec-ref-syntax). 
  + Evitare nomi di directory uguali nell'origine e nella cache. Le directory memorizzate nella cache locale possono sovrascrivere o eliminare il contenuto delle directory nel repository di origine con lo stesso nome.

**Nota**  
La memorizzazione nella cache locale non è supportata con il tipo di `LINUX_GPU_CONTAINER` ambiente e il tipo di `BUILD_GENERAL1_2XLARGE` elaborazione. Per ulteriori informazioni, consulta [Modi e tipi di calcolo dell'ambiente di creazione](build-env-ref-compute-types.md).

**Nota**  
La memorizzazione nella cache locale non è supportata quando si configura CodeBuild per lavorare con un VPC. Per ulteriori informazioni sull'utilizzo VPCs con CodeBuild, consulta. [Utilizzo AWS CodeBuild con Amazon Virtual Private Cloud](vpc-support.md)

# Specificare una cache locale
<a name="specify-caching-local"></a>

È possibile utilizzare la console AWS CLI, l'SDK o CloudFormation specificare una cache locale. Per ulteriori informazioni sulla memorizzazione nella cache locale, consulta. [Caching locale](caching-local.md)

**Topics**
+ [Specifica del caching locale (CLI)](#caching-local-cli)
+ [Specifica del caching locale (console)](#caching-local-console)
+ [Specifica del caching locale (CloudFormation)](#caching-local-cfn)

## Specifica del caching locale (CLI)
<a name="caching-local-cli"></a>

È possibile utilizzare il `--cache` parametro in AWS CLI per specificare ciascuno dei tre tipi di cache locale. 
+ Per specificare una cache delle origini: 

  ```
  --cache type=LOCAL,mode=[LOCAL_SOURCE_CACHE]
  ```
+ Per specificare una cache di livello Docker: 

  ```
  --cache type=LOCAL,mode=[LOCAL_DOCKER_LAYER_CACHE]
  ```
+ Per specificare una cache personalizzata: 

  ```
  --cache type=LOCAL,mode=[LOCAL_CUSTOM_CACHE]
  ```

Per ulteriori informazioni, consulta [Creazione di un progetto di compilazione (AWS CLI)](create-project.md#create-project-cli).

## Specifica del caching locale (console)
<a name="caching-local-console"></a>

Puoi specificare una cache nella sezione **Artifacts (Artefatti)** della console. **Per il **tipo di cache**, scegli **Amazon S3 o Local**.** Se selezioni **Local (Locale)**, scegli una o più delle tre opzioni di cache locale.

![\[Specificate una cache locale scegliendo una o più delle tre opzioni di cache locale.\]](http://docs.aws.amazon.com/it_it/codebuild/latest/userguide/images/local-cache.png)


Per ulteriori informazioni, consulta [Creare un progetto di compilazione (console)](create-project.md#create-project-console).

## Specifica del caching locale (CloudFormation)
<a name="caching-local-cfn"></a>

Se si utilizza CloudFormation per specificare una cache locale, nella `Cache` proprietà, per`Type`, specificare`LOCAL`. Il seguente CloudFormation codice in formato YAML di esempio specifica tutti e tre i tipi di cache locale. È possibile selezionare i tipi disponibili in qualsiasi combinazione. Se utilizzi una cache di livello Docker, in `Environment` devi impostare `PrivilegedMode` su `true` e `Type` su `LINUX_CONTAINER`. 

```
CodeBuildProject:
    Type: AWS::CodeBuild::Project
    Properties:
      Name: MyProject
      ServiceRole: <service-role>
      Artifacts:
        Type: S3
        Location: <bucket-name>
        Name: myArtifact
        EncryptionDisabled: true
        OverrideArtifactName: true
      Environment:
        Type: LINUX_CONTAINER
        ComputeType: BUILD_GENERAL1_SMALL
        Image: aws/codebuild/standard:5.0
        Certificate: <bucket/cert.zip>
        # PrivilegedMode must be true if you specify LOCAL_DOCKER_LAYER_CACHE
        PrivilegedMode: true
      Source:
        Type: GITHUB
        Location: <github-location>
        InsecureSsl: true
        GitCloneDepth: 1
        ReportBuildStatus: false
      TimeoutInMinutes: 10
      Cache:
        Type: LOCAL
        Modes: # You can specify one or more cache mode, 
          - LOCAL_CUSTOM_CACHE
          - LOCAL_DOCKER_LAYER_CACHE
          - LOCAL_SOURCE_CACHE
```

**Nota**  
Per impostazione predefinita, il daemon Docker è abilitato per le build non VPC. Se desideri utilizzare i contenitori Docker per le build VPC, [consulta Runtime Privilege e Linux Capabilities sul sito Web di Docker Docs e](https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities) abilita la modalità privilegiata. Inoltre, Windows non supporta la modalità privilegiata.

Per ulteriori informazioni, consulta [Creazione di un progetto di compilazione (CloudFormation)](create-project.md#create-project-cloud-formation).

# Il debug si integra AWS CodeBuild
<a name="debug-builds"></a>

AWS CodeBuild fornisce due metodi per il debug delle build durante lo sviluppo e la risoluzione dei problemi. È possibile utilizzare l'ambiente CodeBuild Sandbox per esaminare i problemi e convalidare le correzioni in tempo reale oppure utilizzare AWS Systems Manager Session Manager per connettersi al contenitore di build e visualizzare lo stato del contenitore.

## Esegui il debug delle build con sandbox CodeBuild
<a name="debug-codebuild-sandbox"></a>

L'ambiente CodeBuild sandbox fornisce una sessione di debug interattiva in un ambiente sicuro e isolato. È possibile interagire con l'ambiente direttamente tramite la sala operatoria Console di gestione AWS AWS CLI, eseguire comandi e convalidare il processo di compilazione passo dopo passo. Utilizza un modello di fatturazione al secondo conveniente e supporta la stessa integrazione nativa con i fornitori e AWS i servizi di origine dell'ambiente di compilazione. Puoi anche connetterti a un ambiente sandbox utilizzando client SSH o dai tuoi ambienti di sviluppo integrati (). IDEs

[Per ulteriori informazioni sui prezzi della CodeBuild sandbox, consulta la CodeBuild documentazione sui prezzi.](https://aws.amazon.com/codebuild/pricing/#Sandbox) Per istruzioni dettagliate, consulta la [Compilazioni di debug con sandbox CodeBuild](sandbox.md) documentazione.

## Compilazioni di debug con Session Manager
<a name="debug-codebuild-session-manager"></a>

AWS Systems Manager Session Manager consente l'accesso diretto alle build in esecuzione nel loro ambiente di esecuzione effettivo. Questo approccio consente di connettersi a contenitori di build attivi e di ispezionare il processo di compilazione in tempo reale. È possibile esaminare il file system, monitorare i processi in esecuzione e risolvere i problemi non appena si verificano.

Per istruzioni dettagliate, consulta la [Compilazioni di debug con Session Manager](session-manager.md) documentazione.

# Compilazioni di debug con sandbox CodeBuild
<a name="sandbox"></a>

In AWS CodeBuild, puoi eseguire il debug di una build utilizzando CodeBuild sandbox per eseguire comandi personalizzati e risolvere i problemi della build.

**Topics**
+ [Prerequisiti](#sandbox-prereq)
+ [Esegui il debug delle build con CodeBuild sandbox (console)](#sandbox-console)
+ [Compila il debug con CodeBuild sandbox ()AWS CLI](#sandbox-cli)
+ [Tutorial: Connessione a una sandbox tramite SSH](sandbox-ssh-tutorial.md)
+ [Risoluzione dei problemi AWS CodeBuild di connessione SSH nella sandbox](sandbox-troubleshooting.md)

## Prerequisiti
<a name="sandbox-prereq"></a>

Prima di utilizzare una CodeBuild sandbox, assicurati che il tuo ruolo di CodeBuild servizio abbia la seguente politica SSM:

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ssmmessages:CreateControlChannel",
                "ssmmessages:CreateDataChannel",
                "ssmmessages:OpenControlChannel",
                "ssmmessages:OpenDataChannel"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ssm:StartSession"
            ],
            "Resource": [
                "arn:aws:codebuild:us-east-1:111122223333:build/*",
                "arn:aws:ssm:us-east-1::document/AWS-StartSSHSession"
            ]
        }
    ]
}
```

------

## Esegui il debug delle build con CodeBuild sandbox (console)
<a name="sandbox-console"></a>

Usa le seguenti istruzioni per eseguire comandi e connettere il tuo client SSH alla CodeBuild sandbox nella console.

### Esegui i comandi con CodeBuild sandbox (console)
<a name="sandbox-console.commands"></a>

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

1. Nel riquadro di navigazione, scegliere **Build projects (Progetti di compilazione)**. **Scegli il progetto di compilazione, quindi scegli Debug build.**  
![\[La pagina dei dettagli del progetto di debug build nella console.\]](http://docs.aws.amazon.com/it_it/codebuild/latest/userguide/images/sandbox-debug-build.png)

1. Nella scheda **Esegui comando**, inserisci i comandi personalizzati, quindi scegli **Esegui comando**.  
![\[La pagina dei dettagli del comando di esecuzione nella console.\]](http://docs.aws.amazon.com/it_it/codebuild/latest/userguide/images/debug-build-run.png)

1. La CodeBuild sandbox verrà quindi inizializzata e inizierà a eseguire i comandi personalizzati. L'output verrà visualizzato nella scheda **Output** una volta completato.   
![\[La pagina di output del comando di esecuzione nella console.\]](http://docs.aws.amazon.com/it_it/codebuild/latest/userguide/images/debug-build-run-output.png)

1. Una volta completata la risoluzione dei problemi, puoi interrompere la sandbox scegliendo **Stop sandbox**. Quindi scegli **Stop** per confermare che la sandbox verrà interrotta.  
![\[La finestra di dialogo Stop Sandbox.\]](http://docs.aws.amazon.com/it_it/codebuild/latest/userguide/images/stop-sandbox.png)  
![\[La pagina di output del comando di esecuzione con una sandbox interrotta nella console.\]](http://docs.aws.amazon.com/it_it/codebuild/latest/userguide/images/stopped-sandbox.png)

### Connect al client SSH con CodeBuild sandbox (console)
<a name="sandbox-console.ssh"></a>

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

1. Nel riquadro di navigazione, scegliere **Build projects (Progetti di compilazione)**. **Scegli il progetto di compilazione, quindi scegli Debug build.**  
![\[La pagina dei dettagli del progetto di debug build nella console.\]](http://docs.aws.amazon.com/it_it/codebuild/latest/userguide/images/sandbox-debug-build.png)

1. Nella scheda **Client SSH**, scegli **Avvia** sandbox.  
![\[La pagina sandbox del client SSH nella console.\]](http://docs.aws.amazon.com/it_it/codebuild/latest/userguide/images/ssh-client-sandbox.png)

1. Dopo l'avvio della CodeBuild sandbox, segui le istruzioni della console per connettere il client SSH alla sandbox.  
![\[La pagina sandbox del client SSH nella console.\]](http://docs.aws.amazon.com/it_it/codebuild/latest/userguide/images/ssh-client-sandbox-terminal.png)

1. **Una volta completata la risoluzione dei problemi, puoi interrompere la sandbox scegliendo Stop sandbox.** Quindi scegli **Stop** per confermare che la sandbox verrà interrotta.  
![\[La finestra di dialogo Stop Sandbox.\]](http://docs.aws.amazon.com/it_it/codebuild/latest/userguide/images/stop-sandbox-2.png)  
![\[La pagina di output del comando di esecuzione con una sandbox interrotta nella console.\]](http://docs.aws.amazon.com/it_it/codebuild/latest/userguide/images/stopped-sandbox-2.png)

## Compila il debug con CodeBuild sandbox ()AWS CLI
<a name="sandbox-cli"></a>

Usa le seguenti istruzioni per eseguire comandi e connettere il tuo client SSH alla sandbox. CodeBuild 

### Avvia una CodeBuild sandbox ()AWS CLI
<a name="sandbox-cli.start-sandbox"></a>

------
#### [ CLI command ]

```
aws codebuild start-sandbox --project-name $PROJECT_NAME
```
+ `--project-name`: nome CodeBuild del progetto

------
#### [ Sample request ]

```
aws codebuild start-sandbox --project-name "project-name"
```

------
#### [ Sample response ]

```
{
    "id": "project-name",
    "arn": "arn:aws:codebuild:us-west-2:962803963624:sandbox/project-name",
    "projectName": "project-name",
    "requestTime": "2025-02-06T11:24:15.560000-08:00",
    "status": "QUEUED",
    "source": {
        "type": "S3",
        "location": "arn:aws:s3:::cofa-e2e-test-1-us-west-2-beta-default-build-sources/eb-sample-jetty-v4.zip",
        "insecureSsl": false
    },
    "environment": {
        "type": "LINUX_CONTAINER",
        "image": "aws/codebuild/standard:6.0",
        "computeType": "BUILD_GENERAL1_SMALL",
        "environmentVariables": [{
                "name": "foo",
                "value": "bar",
                "type": "PLAINTEXT"
            },
            {
                "name": "bar",
                "value": "baz",
                "type": "PLAINTEXT"
            }
        ],
        "privilegedMode": false,
        "imagePullCredentialsType": "CODEBUILD"
    },
    "timeoutInMinutes": 10,
    "queuedTimeoutInMinutes": 480,
    "logConfig": {
        "cloudWatchLogs": {
            "status": "ENABLED",
            "groupName": "group",
            "streamName": "stream"
        },
        "s3Logs": {
            "status": "ENABLED",
            "location": "codefactory-test-pool-1-us-west-2-beta-default-build-logs",
            "encryptionDisabled": false
        }
    },
    "encryptionKey": "arn:aws:kms:us-west-2:962803963624:alias/SampleEncryptionKey",
    "serviceRole": "arn:aws:iam::962803963624:role/BuildExecutionServiceRole",
    "currentSession": {
        "id": "0103e0e7-52aa-4a3d-81dd-bfc27226fa54",
        "currentPhase": "QUEUED",
        "status": "QUEUED",
        "startTime": "2025-02-06T11:24:15.626000-08:00",
        "logs": {
            "groupName": "group",
            "streamName": "stream/0103e0e7-52aa-4a3d-81dd-bfc27226fa54",
            "deepLink": "https://console.aws.amazon.com/cloudwatch/home?region=us-west-2#logsV2:log-groups/log-group/group/log-events/stream$252F0103e0e7-52aa-4a3d-81dd-bfc27226fa54",
            "s3DeepLink": "https://s3.console.aws.amazon.com/s3/object/codefactory-test-pool-1-us-west-2-beta-default-build-logs/0103e0e7-52aa-4a3d-81dd-bfc27226fa54.gz?region=us-west-2",
            "cloudWatchLogsArn": "arn:aws:logs:us-west-2:962803963624:log-group:group:log-stream:stream/0103e0e7-52aa-4a3d-81dd-bfc27226fa54",
            "s3LogsArn": "arn:aws:s3:::codefactory-test-pool-1-us-west-2-beta-default-build-logs/0103e0e7-52aa-4a3d-81dd-bfc27226fa54.gz",
            "cloudWatchLogs": {
                "status": "ENABLED",
                "groupName": "group",
                "streamName": "stream"
            },
            "s3Logs": {
                "status": "ENABLED",
                "location": "codefactory-test-pool-1-us-west-2-beta-default-build-logs",
                "encryptionDisabled": false
            }
        }
    }
}
```

------

### Ottieni informazioni sullo stato della sandbox ()AWS CLI
<a name="sandbox-cli.batch-get-sandboxes"></a>

------
#### [ CLI command ]

```
aws codebuild batch-get-sandboxes --ids $SANDBOX_IDs
```

------
#### [ Sample request ]

```
aws codebuild stop-sandbox --id "arn:aws:codebuild:us-west-2:962803963624:sandbox/project-name"
```
+ `--ids`: elenco separato da virgole di `sandboxIds` o`sandboxArns`.

Puoi fornire un ID sandbox o un ARN sandbox:
+ ID sandbox: `<codebuild-project-name>:<UUID>`

  Ad esempio, `project-name:d25be134-05cb-404a-85da-ac5f85d2d72c`.
+ ARN della sandbox: arn:aws:codebuild: ::sandbox/*<region>*: *<account-id>* *<codebuild-project-name>* *<UUID>*

  Ad esempio, `arn:aws:codebuild:us-west-2:962803963624:sandbox/project-name:d25be134-05cb-404a-85da-ac5f85d2d72c`.

------
#### [ Sample response ]

```
{
    "sandboxes": [{
        "id": "project-name",
        "arn": "arn:aws:codebuild:us-west-2:962803963624:sandbox/project-name",
        "projectName": "project-name",
        "requestTime": "2025-02-06T11:24:15.560000-08:00",
        "endTime": "2025-02-06T11:39:21.587000-08:00",
        "status": "STOPPED",
        "source": {
            "type": "S3",
            "location": "arn:aws:s3:::cofa-e2e-test-1-us-west-2-beta-default-build-sources/eb-sample-jetty-v4.zip",
            "insecureSsl": false
        },
        "environment": {
            "type": "LINUX_CONTAINER",
            "image": "aws/codebuild/standard:6.0",
            "computeType": "BUILD_GENERAL1_SMALL",
            "environmentVariables": [{
                    "name": "foo",
                    "value": "bar",
                    "type": "PLAINTEXT"
                },
                {
                    "name": "bar",
                    "value": "baz",
                    "type": "PLAINTEXT"
                }
            ],
            "privilegedMode": false,
            "imagePullCredentialsType": "CODEBUILD"
        },
        "timeoutInMinutes": 10,
        "queuedTimeoutInMinutes": 480,
        "logConfig": {
            "cloudWatchLogs": {
                "status": "ENABLED",
                "groupName": "group",
                "streamName": "stream"
            },
            "s3Logs": {
                "status": "ENABLED",
                "location": "codefactory-test-pool-1-us-west-2-beta-default-build-logs",
                "encryptionDisabled": false
            }
        },
        "encryptionKey": "arn:aws:kms:us-west-2:962803963624:alias/SampleEncryptionKey",
        "serviceRole": "arn:aws:iam::962803963624:role/BuildExecutionServiceRole",
        "currentSession": {
            "id": "0103e0e7-52aa-4a3d-81dd-bfc27226fa54",
            "currentPhase": "COMPLETED",
            "status": "STOPPED",
            "startTime": "2025-02-06T11:24:15.626000-08:00",
            "endTime": "2025-02-06T11:39:21.600000-08:00",
            "phases": [{
                    "phaseType": "SUBMITTED",
                    "phaseStatus": "SUCCEEDED",
                    "startTime": "2025-02-06T11:24:15.577000-08:00",
                    "endTime": "2025-02-06T11:24:15.606000-08:00",
                    "durationInSeconds": 0
                },
                {
                    "phaseType": "QUEUED",
                    "phaseStatus": "SUCCEEDED",
                    "startTime": "2025-02-06T11:24:15.606000-08:00",
                    "endTime": "2025-02-06T11:24:16.067000-08:00",
                    "durationInSeconds": 0
                },
                {
                    "phaseType": "PROVISIONING",
                    "phaseStatus": "SUCCEEDED",
                    "startTime": "2025-02-06T11:24:16.067000-08:00",
                    "endTime": "2025-02-06T11:24:20.519000-08:00",
                    "durationInSeconds": 4,
                    "contexts": [{
                        "statusCode": "",
                        "message": ""
                    }]
                },
                {
                    "phaseType": "DOWNLOAD_SOURCE",
                    "phaseStatus": "SUCCEEDED",
                    "startTime": "2025-02-06T11:24:20.519000-08:00",
                    "endTime": "2025-02-06T11:24:22.238000-08:00",
                    "durationInSeconds": 1,
                    "contexts": [{
                        "statusCode": "",
                        "message": ""
                    }]
                },
                {
                    "phaseType": "RUNNING_SANDBOX",
                    "phaseStatus": "TIMED_OUT",
                    "startTime": "2025-02-06T11:24:22.238000-08:00",
                    "endTime": "2025-02-06T11:39:21.560000-08:00",
                    "durationInSeconds": 899,
                    "contexts": [{
                        "statusCode": "BUILD_TIMED_OUT",
                        "message": "Build has timed out. "
                    }]
                },
                {
                    "phaseType": "COMPLETED",
                    "startTime": "2025-02-06T11:39:21.560000-08:00"
                }
            ],
            "logs": {
                "groupName": "group",
                "streamName": "stream/0103e0e7-52aa-4a3d-81dd-bfc27226fa54",
                "deepLink": "https://console.aws.amazon.com/cloudwatch/home?region=us-west-2#logsV2:log-groups/log-group/group/log-events/stream$252F0103e0e7-52aa-4a3d-81dd-bfc27226fa54",
                "s3DeepLink": "https://s3.console.aws.amazon.com/s3/object/codefactory-test-pool-1-us-west-2-beta-default-build-logs/0103e0e7-52aa-4a3d-81dd-bfc27226fa54.gz?region=us-west-2",
                "cloudWatchLogsArn": "arn:aws:logs:us-west-2:962803963624:log-group:group:log-stream:stream/0103e0e7-52aa-4a3d-81dd-bfc27226fa54",
                "s3LogsArn": "arn:aws:s3:::codefactory-test-pool-1-us-west-2-beta-default-build-logs/0103e0e7-52aa-4a3d-81dd-bfc27226fa54.gz",
                "cloudWatchLogs": {
                    "status": "ENABLED",
                    "groupName": "group",
                    "streamName": "stream"
                },
                "s3Logs": {
                    "status": "ENABLED",
                    "location": "codefactory-test-pool-1-us-west-2-beta-default-build-logs",
                    "encryptionDisabled": false
                }
            }
        }
    }],
    "sandboxesNotFound": []
}
```

------

### Ferma una sandbox (AWS CLI)
<a name="sandbox-cli.stop-sandbox"></a>

------
#### [ CLI command ]

```
aws codebuild stop-sandbox --id $SANDBOX-ID
```
+ `--id`: A `sandboxId` o. `sandboxArn`

------
#### [ Sample request ]

```
aws codebuild stop-sandbox --id "arn:aws:codebuild:us-west-2:962803963624:sandbox/project-name"
```

------
#### [ Sample response ]

```
{
    "id": "project-name",
    "arn": "arn:aws:codebuild:us-west-2:962803963624:sandbox/project-name",
    "projectName": "project-name",
    "requestTime": "2025-02-06T11:24:15.560000-08:00",
    "status": "STOPPING",
    "source": {
        "type": "S3",
        "location": "arn:aws:s3:::cofa-e2e-test-1-us-west-2-beta-default-build-sources/eb-sample-jetty-v4.zip",
        "insecureSsl": false
    },
    "environment": {
        "type": "LINUX_CONTAINER",
        "image": "aws/codebuild/standard:6.0",
        "computeType": "BUILD_GENERAL1_SMALL",
        "environmentVariables": [{
                "name": "foo",
                "value": "bar",
                "type": "PLAINTEXT"
            },
            {
                "name": "bar",
                "value": "baz",
                "type": "PLAINTEXT"
            }
        ],
        "privilegedMode": false,
        "imagePullCredentialsType": "CODEBUILD"
    },
    "timeoutInMinutes": 10,
    "queuedTimeoutInMinutes": 480,
    "logConfig": {
        "cloudWatchLogs": {
            "status": "ENABLED",
            "groupName": "group",
            "streamName": "stream"
        },
        "s3Logs": {
            "status": "ENABLED",
            "location": "codefactory-test-pool-1-us-west-2-beta-default-build-logs",
            "encryptionDisabled": false
        }
    },
    "encryptionKey": "arn:aws:kms:us-west-2:962803963624:alias/SampleEncryptionKey",
    "serviceRole": "arn:aws:iam::962803963624:role/BuildExecutionServiceRole",
    "currentSession": {
        "id": "0103e0e7-52aa-4a3d-81dd-bfc27226fa54",
        "currentPhase": "RUN_SANDBOX",
        "status": "STOPPING",
        "startTime": "2025-02-06T11:24:15.626000-08:00",
        "phases": [{
                "phaseType": "SUBMITTED",
                "phaseStatus": "SUCCEEDED",
                "startTime": "2025-02-08T14:33:26.144000-08:00",
                "endTime": "2025-02-08T14:33:26.173000-08:00",
                "durationInSeconds": 0
            },
            {
                "phaseType": "QUEUED",
                "phaseStatus": "SUCCEEDED",
                "startTime": "2025-02-08T14:33:26.173000-08:00",
                "endTime": "2025-02-08T14:33:26.702000-08:00",
                "durationInSeconds": 0
            },
            {
                "phaseType": "PROVISIONING",
                "phaseStatus": "SUCCEEDED",
                "startTime": "2025-02-08T14:33:26.702000-08:00",
                "endTime": "2025-02-08T14:33:30.530000-08:00",
                "durationInSeconds": 3,
                "contexts": [{
                    "statusCode": "",
                    "message": ""
                }]
            },
            {
                "phaseType": "DOWNLOAD_SOURCE",
                "phaseStatus": "SUCCEEDED",
                "startTime": "2025-02-08T14:33:30.530000-08:00",
                "endTime": "2025-02-08T14:33:33.478000-08:00",
                "durationInSeconds": 2,
                "contexts": [{
                    "statusCode": "",
                    "message": ""
                }]
            },
            {
                "phaseType": "RUN_SANDBOX",
                "startTime": "2025-02-08T14:33:33.478000-08:00"
            }
        ],
        "logs": {
            "groupName": "group",
            "streamName": "stream/0103e0e7-52aa-4a3d-81dd-bfc27226fa54",
            "deepLink": "https://console.aws.amazon.com/cloudwatch/home?region=us-west-2#logsV2:log-groups/log-group/group/log-events/stream$252F0103e0e7-52aa-4a3d-81dd-bfc27226fa54",
            "s3DeepLink": "https://s3.console.aws.amazon.com/s3/object/codefactory-test-pool-1-us-west-2-beta-default-build-logs/0103e0e7-52aa-4a3d-81dd-bfc27226fa54.gz?region=us-west-2",
            "cloudWatchLogsArn": "arn:aws:logs:us-west-2:962803963624:log-group:group:log-stream:stream/0103e0e7-52aa-4a3d-81dd-bfc27226fa54",
            "s3LogsArn": "arn:aws:s3:::codefactory-test-pool-1-us-west-2-beta-default-build-logs/0103e0e7-52aa-4a3d-81dd-bfc27226fa54.gz",
            "cloudWatchLogs": {
                "status": "ENABLED",
                "groupName": "group",
                "streamName": "stream"
            },
            "s3Logs": {
                "status": "ENABLED",
                "location": "codefactory-test-pool-1-us-west-2-beta-default-build-logs",
                "encryptionDisabled": false
            }
        }
    }
}
```

------

### Avvia l'esecuzione di un comando (AWS CLI)
<a name="sandbox-cli.start-command-execution"></a>

------
#### [ CLI command ]

```
aws codebuild start-command-execution --command $COMMAND --type $TYPE --sandbox-id $SANDBOX-ID
```
+ `--command`: Il comando che deve essere eseguito.
+ `--sandbox-id`: A `sandboxId` o`sandboxArn`.
+ `--type`: Il tipo di comando,`SHELL`.

------
#### [ Sample request ]

```
aws codebuild start-command-execution --command "echo "Hello World"" --type SHELL --sandbox-id "arn:aws:codebuild:us-west-2:962803963624:sandbox/project-name
```

------
#### [ Sample response ]

```
{
    "id": "e1c658c2-02bb-42a8-9abb-94835241fcd6",
    "sandboxId": "f7126a4a-b0d5-452f-814c-fea73718f805",
    "submitTime": "2025-02-06T20:12:02.683000-08:00",
    "status": "SUBMITTED",
    "command": "echo \"Hello World\"",
    "type": "SHELL",
    "logs": {
        "groupName": "group",
        "streamName": "stream",
        "deepLink": "https://console.aws.amazon.com/cloudwatch/home?region=us-west-2#logsV2:log-groups/log-group/group/log-events/stream",
        "s3DeepLink": "https://s3.console.aws.amazon.com/s3/object/codefactory-test-pool-1-us-west-2-beta-default-build-logs/f7126a4a-b0d5-452f-814c-fea73718f805.gz?region=us-west-2",
        "cloudWatchLogsArn": "arn:aws:logs:us-west-2:962803963624:log-group:group:log-stream:stream",
        "s3LogsArn": "arn:aws:s3:::codefactory-test-pool-1-us-west-2-beta-default-build-logs/f7126a4a-b0d5-452f-814c-fea73718f805.gz",
        "cloudWatchLogs": {
            "status": "ENABLED",
            "groupName": "group",
            "streamName": "stream"
        },
        "s3Logs": {
            "status": "ENABLED",
            "location": "codefactory-test-pool-1-us-west-2-beta-default-build-logs",
            "encryptionDisabled": false
        }
    }
}
```

------

### Ottieni informazioni sulle esecuzioni dei comandi ()AWS CLI
<a name="sandbox-cli.batch-get-command-executions"></a>

------
#### [ CLI command ]

```
aws codebuild batch-get-command-executions --command-execution-ids $COMMAND-IDs --sandbox-id $SANDBOX-IDs
```
+ `--command-execution-ids`: elenco separato da virgole di. `commandExecutionIds`
+ `--sandbox-id`: A `sandboxId` o`sandboxArn`.

------
#### [ Sample request ]

```
aws codebuild batch-get-command-executions --command-execution-ids"c3c085ed-5a8f-4531-8e95-87d547f27ffd" --sandbox-id "arn:aws:codebuild:us-west-2:962803963624:sandbox/project-name"
```

------
#### [ Sample response ]

```
{
    "commandExecutions": [{
        "id": "c3c085ed-5a8f-4531-8e95-87d547f27ffd",
        "sandboxId": "cd71e456-2a4c-4db4-ada5-da892b0bba05",
        "submitTime": "2025-02-10T20:18:17.118000-08:00",
        "startTime": "2025-02-10T20:18:17.939000-08:00",
        "endTime": "2025-02-10T20:18:17.976000-08:00",
        "status": "SUCCEEDED",
        "command": "echo \"Hello World\"",
        "type": "SHELL",
        "exitCode": "0",
        "standardOutputContent": "Hello World\n",
        "logs": {
            "groupName": "group",
            "streamName": "stream",
            "deepLink": "https://console.aws.amazon.com/cloudwatch/home?region=us-west-2#logsV2:log-groups/log-group/group/log-events/stream",
            "s3DeepLink": "https://s3.console.aws.amazon.com/s3/object/codefactory-test-pool-1-us-west-2-beta-default-build-logs/cd71e456-2a4c-4db4-ada5-da892b0bba05.gz?region=us-west-2",
            "cloudWatchLogsArn": "arn:aws:logs:us-west-2:962803963624:log-group:group:log-stream:stream",
            "s3LogsArn": "arn:aws:s3:::codefactory-test-pool-1-us-west-2-beta-default-build-logs/cd71e456-2a4c-4db4-ada5-da892b0bba05.gz",
            "cloudWatchLogs": {
                "status": "ENABLED",
                "groupName": "group",
                "streamName": "stream"
            },
            "s3Logs": {
                "status": "ENABLED",
                "location": "codefactory-test-pool-1-us-west-2-beta-default-build-logs",
                "encryptionDisabled": false
            }
        }
    }],
    "commandExecutionsNotFound": []
}
```

------

### Elenca le esecuzioni di comandi per una sandbox ()AWS CLI
<a name="sandbox-cli.list-command-executions-for-sandbox"></a>

------
#### [ CLI command ]

```
aws codebuild list-command-executions-for-sandbox --sandbox-id $SANDBOX-ID --next-token $NEXT_TOKEN --max-results $MAX_RESULTS --sort-order $SORT_ORDER
```
+ `--next-token`: Il token successivo, se presente, per ottenere risultati impaginati. Otterrete questo valore dalla precedente esecuzione delle sandbox di elenchi.
+ `--max-results`: (Facoltativo) Il numero massimo di record sandbox da recuperare.
+ `--sort-order`: L'ordine in cui i record della sandbox devono essere recuperati.

------
#### [ Sample request ]

```
aws codebuild list-command-executions-for-sandbox --sandbox-id "arn:aws:codebuild:us-west-2:962803963624:sandbox/project-name"
```

------
#### [ Sample response ]

```
{
    "commandExecutions": [{
            "id": "aad6687e-07bc-45ab-a1fd-f5440229b528",
            "sandboxId": "cd71e456-2a4c-4db4-ada5-da892b0bba05",
            "submitTime": "2025-02-10T20:18:35.304000-08:00",
            "startTime": "2025-02-10T20:18:35.615000-08:00",
            "endTime": "2025-02-10T20:18:35.651000-08:00",
            "status": "FAILED",
            "command": "fail command",
            "type": "SHELL",
            "exitCode": "127",
            "standardErrContent": "/codebuild/output/tmp/script.sh: 4: fail: not found\n",
            "logs": {
                "groupName": "group",
                "streamName": "stream",
                "deepLink": "https://console.aws.amazon.com/cloudwatch/home?region=us-west-2#logsV2:log-groups/log-group/group/log-events/stream",
                "s3DeepLink": "https://s3.console.aws.amazon.com/s3/object/codefactory-test-pool-1-us-west-2-beta-default-build-logs/cd71e456-2a4c-4db4-ada5-da892b0bba05.gz?region=us-west-2",
                "cloudWatchLogsArn": "arn:aws:logs:us-west-2:962803963624:log-group:group:log-stream:stream",
                "s3LogsArn": "arn:aws:s3:::codefactory-test-pool-1-us-west-2-beta-default-build-logs/cd71e456-2a4c-4db4-ada5-da892b0bba05.gz",
                "cloudWatchLogs": {
                    "status": "ENABLED",
                    "groupName": "group",
                    "streamName": "stream"
                },
                "s3Logs": {
                    "status": "ENABLED",
                    "location": "codefactory-test-pool-1-us-west-2-beta-default-build-logs",
                    "encryptionDisabled": false
                }
            }
        },
        {
            "id": "c3c085ed-5a8f-4531-8e95-87d547f27ffd",
            "sandboxId": "cd71e456-2a4c-4db4-ada5-da892b0bba05",
            "submitTime": "2025-02-10T20:18:17.118000-08:00",
            "startTime": "2025-02-10T20:18:17.939000-08:00",
            "endTime": "2025-02-10T20:18:17.976000-08:00",
            "status": "SUCCEEDED",
            "command": "echo \"Hello World\"",
            "type": "SHELL",
            "exitCode": "0",
            "standardOutputContent": "Hello World\n",
            "logs": {
                "groupName": "group",
                "streamName": "stream",
                "deepLink": "https://console.aws.amazon.com/cloudwatch/home?region=us-west-2#logsV2:log-groups/log-group/group/log-events/stream",
                "s3DeepLink": "https://s3.console.aws.amazon.com/s3/object/codefactory-test-pool-1-us-west-2-beta-default-build-logs/cd71e456-2a4c-4db4-ada5-da892b0bba05.gz?region=us-west-2",
                "cloudWatchLogsArn": "arn:aws:logs:us-west-2:962803963624:log-group:group:log-stream:stream",
                "s3LogsArn": "arn:aws:s3:::codefactory-test-pool-1-us-west-2-beta-default-build-logs/cd71e456-2a4c-4db4-ada5-da892b0bba05.gz",
                "cloudWatchLogs": {
                    "status": "ENABLED",
                    "groupName": "group",
                    "streamName": "stream"
                },
                "s3Logs": {
                    "status": "ENABLED",
                    "location": "codefactory-test-pool-1-us-west-2-beta-default-build-logs",
                    "encryptionDisabled": false
                }
            }
        }
    ]
}
```

------

### Elenca le sandbox ()AWS CLI
<a name="sandbox-cli.list-sandboxes"></a>

------
#### [ CLI command ]

```
aws codebuild list-sandboxes --next-token $NEXT_TOKEN --max-results $MAX_RESULTS --sort-order $SORT_ORDER
```

------
#### [ Sample request ]

```
aws codebuild list-sandboxes
```

------
#### [ Sample response ]

```
{
    "ids": [
        "s3-log-project-integ-test-temp173925062814985d64e0f-7880-41df-9a3c-fb6597a266d2:827a5243-0841-4b69-a720-4438796f6967",
        "s3-log-project-integ-test-temp1739249999716bbd438dd-8bb8-47bd-ba6b-0133ac65b3d3:e2fa4eab-73af-42e3-8903-92fddaf9f378",
        "s3-log-project-integ-test-temp17392474779450fbdacc2-2d6e-4190-9ad5-28f891bb7415:cd71e456-2a4c-4db4-ada5-da892b0bba05",
        "s3-log-project-integ-test-temp17392246284164301421c-5030-4fa1-b4d3-ca15e44771c5:9e26ab3f-65e4-4896-a19c-56b1a95e630a",
        "s3-log-project-integ-test-temp173921367319497056d8d-6d8e-4f5a-a37c-a62f5686731f:22d91b06-df1e-4e9c-a664-c0abb8d5920b",
        "s3-log-project-integ-test-temp1739213439503f6283f19-390c-4dc8-95a9-c8480113384a:82cc413e-fc46-47ab-898f-ae23c83a613f",
        "s3-log-project-integ-test-temp1739054385570b1f1ddc2-0a23-4062-bd0c-24e9e4a99b99:c02562f3-2396-42ec-98da-38e3fe5da13a",
        "s3-log-project-integ-test-temp173905400540237dab1ac-1fde-4dfb-a8f5-c0114333dc89:d2f30493-f65e-4fa0-a7b6-08a5e77497b9",
        "s3-log-project-integ-test-temp17390534055719c534090-7bc4-48f1-92c5-34acaec5bf1e:df5f1c8a-f017-43b7-91ba-ad2619e2c059",
        "s3-log-project-integ-test-temp1739052719086a61813cc-ebb9-4db4-9391-7f43cc984ee4:d61917ec-8037-4647-8d52-060349272c4a",
        "s3-log-project-integ-test-temp173898670094078b67edb-c42f-42ed-9db2-4b5c1a5fc66a:ce33dfbc-beeb-4466-8c99-a3734a0392c7",
        "s3-log-project-integ-test-temp17389863425584d21b7cd-32e2-4f11-9175-72c89ecaffef:046dadf0-1f3a-4d51-a2c0-e88361924acf",
        "s3-log-project-integ-test-temp1738985884273977ccd23-394b-46cc-90d3-7ab94cf764dc:0370dc41-9339-4b0a-91ed-51929761b244",
        "s3-log-project-integ-test-temp1738985365972241b614f-8e41-4387-bd25-2b8351fbc9e0:076c392a-9630-47d8-85a9-116aa34edfff",
        "s3-log-project-integ-test-temp1738985043988a51a9e2b-09d6-4d24-9c3c-1e6e21ac9fa8:6ea3949c-435b-4177-aa4d-614d5956244c",
        "s3-log-project-integ-test-temp1738984123354c68b31ad-49d1-4f4b-981d-b66c00565ff6:6c3fff6c-815b-48b5-ada3-737400a6dee8",
        "s3-log-project-integ-test-temp1738977263715d4d5bf6c-370a-48bf-8ea6-905358a6cf92:968a0f54-724a-42d1-9207-6ed854b2fae8",
        "s3-log-project-integ-test-temp173897358796816ce8d7d-2a5e-41ef-855b-4a94a8d2795d:80f9a7ce-930a-402e-934e-d8b511d68b04",
        "s3-log-project-integ-test-temp17389730633301af5e452-0966-467c-b684-4e36d47f568c:cabbe989-2e8a-473c-af25-32edc8c28646",
        "s3-log-project-integ-test-temp1738901503813173fd468-b723-4d7b-9f9f-82e88d17f264:f7126a4a-b0d5-452f-814c-fea73718f805",
        "s3-log-project-integ-test-temp1738890502472c13616fb-bd0f-4253-86cc-28b74c97a0ba:c6f197e5-3a53-45b6-863e-0e6353375437",
        "s3-log-project-integ-test-temp17388903044683610daf3-8da7-43c6-8580-9978432432ce:d20aa317-8838-4966-bbfc-85b908213df1",
        "s3-log-project-integ-test-temp173888857196780b5ab8b-e54b-44fd-a222-c5a374fffe96:ab4b9970-ffae-47a0-b3a8-7b6790008cad",
        "s3-log-project-integ-test-temp1738888336931c11d378d-e74d-49a4-a723-3b92e6f7daac:4922f0e8-9b7d-4119-9c9f-115cd85e703e",
        "s3-log-project-integ-test-temp17388881717651612a397-c23f-4d88-ba87-2773cd3fc0c9:be91c3fc-418e-4feb-8a3a-ba58ff8f4e8a",
        "s3-log-project-integ-test-temp17388879727174c3c62ed-6195-4afb-8a03-59674d0e1187:a48826a8-3c0d-43c5-a1b5-1c98a0f978e9",
        "s3-log-project-integ-test-temp1738885948597cef305e4-b8b4-46b0-a65b-e2d0a7b83294:c050e77d-e3f8-4829-9a60-46149628fe96",
        "s3-log-project-integ-test-temp173888561463001a7d2a8-e4e4-4434-94db-09d3da9a9e17:8c3ac3f5-7111-4297-aec9-2470d3ead873",
        "s3-log-project-integ-test-temp1738869855076eb19cafd-04fe-41bd-8aa0-40826d0c0d27:d25be134-05cb-404a-85da-ac5f85d2d72c",
        "s3-project-integ-test-temp1738868157467148eacfc-d39b-49fc-a137-e55381cd2978:4909557b-c221-4814-b4b6-7d9e93d37c35",
        "s3-project-integ-test-temp1738820926895abec0af2-e33d-473c-9cf4-2122dd9d6876:8f5cf218-71d6-40a4-a4be-6cacebd7765f",
        "s3-project-integ-test-temp173881998877574f969a6-1c2e-4441-b463-ab175b45ce32:04396851-c901-4986-9117-585528e3877f",
        "s3-project-integ-test-temp17388189812309abd2604-29ba-4cf6-b6bf-073207b7db9c:540075c7-f5ec-41e8-9341-2233c09247eb",
        "s3-project-integ-test-temp1738818843474d3ea9ac1-b609-461b-bbdb-2da245c9bc96:865d4c3c-fbfe-4ece-9c92-d0c928341404",
        "s3-project-integ-test-temp1738818542236006e9169-e6d9-4344-9b59-f557e7aec619:1f9ffa87-da15-4290-83e2-eebdd877497b",
        "s3-project-integ-test-temp173881809557486ad11fd-7931-48d7-81d5-499cea52a6bc:c4c2efc4-685f-4e13-8b0f-1ef85ec300b1",
        "s3-project-integ-test-temp173881794103322941020-3f0b-49c3-b836-fcd818ec9484:0344cfba-de48-456d-b2a8-6566bd4a5d6e",
        "s3-project-integ-test-temp1738817680747b93d0d0b-ea16-497f-9559-af25ee6dcfdf:654a3a55-d92a-4dc6-8da8-56fd4d40d7e1",
        "s3-project-integ-test-temp17388174027191255c3da-086c-4270-b047-acac0b7bee0d:b7e82740-2c69-42fc-ab5a-dbf15bc016a1",
        "s3-project-integ-test-temp1738817099799016e7fa3-b9b5-46a2-bcd5-0888c646743f:8705a6a4-79ff-427a-a1c3-85c4e8fe462e",
        "s3-project-integ-test-temp1738816479281bb0c3606-5ebf-4623-bed5-12b60e9d3512:f23fc74b-a981-4835-8e28-375fcd4c99e4",
        "s3-project-integ-test-temp1738816263585c939a133-4d37-482c-9238-1dbff34b7674:ca28e234-0045-4ae6-8732-938b17597f50",
        "s3-project-integ-test-temp173881580873072d18733-8fe4-43b1-83f7-95f25bb27ccf:c6f0f55b-5736-47c7-a3aa-1b8461a6d5ed"
    ]
}
```

------

# Tutorial: Connessione a una sandbox tramite SSH
<a name="sandbox-ssh-tutorial"></a>

Questo tutorial mostra come connettersi a una CodeBuild sandbox utilizzando un client SSH.

Per completare questo tutorial, è necessario innanzitutto:
+ Assicurati di avere un progetto esistente AWS CodeBuild .
+ Imposta le autorizzazioni IAM appropriate configurate per il ruolo CodeBuild del tuo progetto. 
+ Installa e configura AWS CLI sul tuo computer locale.

## Fase 1: Avvia una sandbox
<a name="sandbox-ssh-tutorial.start-sandbox"></a>

**Per avviare una CodeBuild sandbox nella console**

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

1. Nel riquadro di navigazione, scegliere **Build projects (Progetti di compilazione)**. **Scegli il progetto di compilazione, quindi scegli Debug build.**  
![\[La pagina dei dettagli del progetto di compilazione nella console.\]](http://docs.aws.amazon.com/it_it/codebuild/latest/userguide/images/project-debug-build.png)

1. Nella scheda **Client SSH**, scegli **Avvia sandbox**.  
![\[La scheda «Client SSH» nella console con il pulsante «Avvia sandbox».\]](http://docs.aws.amazon.com/it_it/codebuild/latest/userguide/images/ssh-client-sandbox.png)

1. Il processo di inizializzazione della sandbox potrebbe richiedere del tempo. Puoi connetterti alla sandbox quando il suo stato cambia in. `RUN_SANDDBOX`  
![\[La connessione sandbox SSH dopo la modifica dello stato diventa «RUN_SANDDBOX».\]](http://docs.aws.amazon.com/it_it/codebuild/latest/userguide/images/run-sandbox.png)

## Fase 2: Modificare la configurazione SSH locale
<a name="sandbox-ssh-tutorial.modify-ssh"></a>

Se ti connetti alla sandbox per la prima volta, devi eseguire una procedura di configurazione una tantum utilizzando i seguenti passaggi:

**Per modificare la configurazione SSH locale nella console**

1. Individua i comandi di configurazione per il tuo sistema operativo.

1. Apri il terminale locale, quindi copia ed esegui i comandi forniti per scaricare ed eseguire lo script per configurare la configurazione SSH locale. Ad esempio, se il tuo sistema operativo è macOS, usa il seguente comando:  
![\[I comandi macOS per la connessione SSH alla CodeBuild sandbox nella console.\]](http://docs.aws.amazon.com/it_it/codebuild/latest/userguide/images/modify-ssh-macOS.png)

1. Lo script di configurazione aggiungerà le configurazioni richieste per la connessione alle sandbox. Ti verrà richiesto di accettare queste modifiche.

1. Una volta completata la configurazione, verrà creata una nuova voce di configurazione SSH per CodeBuild sandbox.  
![\[Connessione sandbox SSH riuscita.\]](http://docs.aws.amazon.com/it_it/codebuild/latest/userguide/images/ssh-terminal-success.png)

## Passaggio 3: Connect alla sandbox
<a name="sandbox-ssh-tutorial.connect-sandbox"></a>

**Per modificare la configurazione SSH locale nella console**

1. Configura AWS CLI l'autenticazione e assicurati che AWS CLI l'utente disponga dell'`codebuild:StartSandboxConnection`autorizzazione. Per ulteriori informazioni, consulta [Autenticazione tramite credenziali utente IAM per la Guida per l'](https://docs.aws.amazon.com/cli/v1/userguide/cli-authentication-user.html)*utente dell'interfaccia AWS CLI a riga di AWS comando per* la versione 1.

1. Connect alla sandbox con il seguente comando:

   ```
   ssh codebuild-sandbox-ssh=arn:aws:codebuild:us-east-1:<account-id>:sandbox/<sandbox-id>
   ```
**Nota**  
Per risolvere gli errori di connessione, usa il `-v` flag per abilitare l'output dettagliato. Ad esempio, `ssh -v codebuild-sandbox-ssh=arn:aws:codebuild:us-east-1:<account-id>:sandbox/<sandbox-id>`.  
Per ulteriori indicazioni sulla risoluzione dei problemi, vedere. [Risoluzione dei problemi AWS CodeBuild di connessione SSH nella sandbox](sandbox-troubleshooting.md)

## Fase 4: Rivedi i risultati
<a name="sandbox-ssh-tutorial.review-results"></a>

Una volta connesso, puoi eseguire il debug degli errori di compilazione, testare i comandi di compilazione, sperimentare modifiche alla configurazione e verificare le variabili e le dipendenze di ambiente con la tua sandbox.

# Risoluzione dei problemi AWS CodeBuild di connessione SSH nella sandbox
<a name="sandbox-troubleshooting"></a>

Utilizza le informazioni contenute in questo argomento per identificare, diagnosticare e risolvere i problemi di connessione SSH CodeBuild nella sandbox.

**Topics**
+ [`StartSandboxConnection``InvalidInputException`errore quando SSH entra nell'ambiente sandbox CodeBuild](#sandbox-troubleshooting.invalid-input)
+ [Errore: «Impossibile individuare le credenziali» quando SSH entra nell'ambiente sandbox CodeBuild](#sandbox-troubleshooting.credentials)
+ [`StartSandboxConnection``AccessDeniedException`errore quando SSH entra nell'ambiente sandbox CodeBuild](#sandbox-troubleshooting.access-denied)
+ [Errore: «ssh: impossibile risolvere il nome host» quando SSH entra nell'ambiente sandbox CodeBuild](#sandbox-troubleshooting.hostname)

## `StartSandboxConnection``InvalidInputException`errore quando SSH entra nell'ambiente sandbox CodeBuild
<a name="sandbox-troubleshooting.invalid-input"></a>

**Problema:** quando si tenta di connettersi a un ambiente CodeBuild sandbox utilizzando il comando`ssh codebuild-sandbox-ssh=<sandbox-arn>`, è possibile che si verifichi un `InvalidInputException` errore del tipo:

```
An error occurred (InvalidInputException) when calling the StartSandboxConnection 
operation: Failed to start SSM session for {sandbox-arn}
User: arn:aws:sts::<account-ID>:assumed-role/<service-role-name>/AWSCodeBuild-<UUID> 
is not authorized to perform: ssm:StartSession on resource.
```

```
An error occurred (InvalidInputException) when calling the StartSandboxConnection 
operation: Failed to start SSM session for 
sandbox <sandbox-arn>: codebuild:<UUID> is not connected.
```

**Causa possibile:**
+ Agente Amazon EC2 Systems Manager mancante: nell'immagine di build non è installato o configurato correttamente l'agente SSM.
+ Autorizzazioni insufficienti: il ruolo del servizio di CodeBuild progetto non dispone delle autorizzazioni SSM richieste.

**Soluzione consigliata:** se utilizzi un'immagine personalizzata per la build, procedi come segue.

1. Installazione di SSM Agent Per ulteriori informazioni, consulta [Installazione e disinstallazione manuale dell'agente SSM su istanze Amazon EC2](https://docs.aws.amazon.com/systems-manager/latest/userguide/manually-install-ssm-agent-linux.html) per Linux nel. ** La versione di SSM Agent deve essere o successiva. `3.0.1295.0`

1. Copia il file, [ https://github.com/aws/aws-codebuild-docker-images/blob/master/ubuntu/standard/7.0/amazon-ssm-agent.json](https://github.com/aws/aws-codebuild-docker-images/blob/master/ubuntu/standard/7.0/amazon-ssm-agent.json) nella directory dell'immagine. `/etc/amazon/ssm/` **Ciò abilita la modalità contenitore nell'agente SSM.**

1. Assicurati che il ruolo di servizio del tuo CodeBuild progetto disponga delle seguenti autorizzazioni, quindi riavvia l'ambiente sandbox:

   ```
   {
      "Effect": "Allow",
         "Action": [
            "ssmmessages:CreateControlChannel",
            "ssmmessages:CreateDataChannel",
            "ssmmessages:OpenControlChannel",
            "ssmmessages:OpenDataChannel"
         ],
         "Resource": "*"
    },
    {
       "Effect": "Allow",
       "Action": [
          "ssm:StartSession"
        ],
        "Resource": [
           "arn:aws:codebuild:region:account-id:build/*",
           "arn:aws:ssm:region::document/AWS-StartSSHSession"
        ]
    }
   ```

## Errore: «Impossibile individuare le credenziali» quando SSH entra nell'ambiente sandbox CodeBuild
<a name="sandbox-troubleshooting.credentials"></a>

**Problema:** quando si tenta di connettersi a un ambiente CodeBuild sandbox utilizzando il comando`ssh codebuild-sandbox-ssh=<sandbox-arn>`, è possibile che si verifichi il seguente errore di credenziali:

```
Unable to locate credentials. You can configure credentials by running 
"aws configure".
```

**Possibile causa:** AWS le credenziali non sono state configurate correttamente nell'ambiente locale.

**Soluzione consigliata:** configura AWS CLI le credenziali seguendo la documentazione ufficiale: [Configurazione delle impostazioni per la Guida utente dell'](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html)*interfaccia AWS CLI a riga di AWS comando per* la versione 2.

## `StartSandboxConnection``AccessDeniedException`errore quando SSH entra nell'ambiente sandbox CodeBuild
<a name="sandbox-troubleshooting.access-denied"></a>

**Problema:** quando si tenta di connettersi a un ambiente CodeBuild sandbox utilizzando il comando`ssh codebuild-sandbox-ssh=<sandbox-arn>`, è possibile che si verifichi il seguente errore di autorizzazione:

```
An error occurred (AccessDeniedException) when calling the StartSandboxConnection 
operation: 
User: arn:aws:sts::account-id:assumed-role/role-name
is not authorized to perform: codebuild:StartSandboxConnection on resource: 
sandbox-arn
because no identity-based policy allows the codebuild:StartSandboxConnection action
```

**Possibile causa:** AWS le tue credenziali non dispongono delle CodeBuild autorizzazioni necessarie per eseguire questa operazione.

**Soluzione consigliata:** assicurati che l'utente o il ruolo IAM associato alle tue AWS CLI credenziali disponga delle seguenti autorizzazioni:

```
{
    "Effect": "Allow",
    "Action": [
       "codebuild:StartSandboxConnection"
     ],
     "Resource": [
        "arn:aws:codebuild:region:account-id:sandbox/*"
     ]
}
```

## Errore: «ssh: impossibile risolvere il nome host» quando SSH entra nell'ambiente sandbox CodeBuild
<a name="sandbox-troubleshooting.hostname"></a>

**Problema:** quando si tenta di connettersi a un ambiente CodeBuild sandbox utilizzando il comando`ssh codebuild-sandbox-ssh=<sandbox-arn>`, si verifica il seguente errore di risoluzione del nome host:

```
ssh: Could not resolve hostname
```

**Possibile causa:** questo errore si verifica in genere quando lo script di connessione alla CodeBuild sandbox richiesto non è stato eseguito correttamente nell'ambiente locale.

**Soluzione consigliata:**

1. Scarica lo script di connessione alla CodeBuild sandbox.

1. Esegui lo script nel tuo terminale per stabilire la configurazione SSH necessaria.

1. Riprova la connessione SSH all'ambiente sandbox.

# Compilazioni di debug con Session Manager
<a name="session-manager"></a>

In AWS CodeBuild, puoi mettere in pausa una build in esecuzione e quindi utilizzare AWS Systems Manager Session Manager per connetterti al contenitore di compilazione e visualizzare lo stato del contenitore.

**Nota**  
Questa funzionalità non è disponibile negli ambienti Windows.

**Topics**
+ [Prerequisiti](#ssm.prerequisites)
+ [Metti in pausa la compilazione](#ssm-pause-build)
+ [Avvia la compilazione](#ssm-start-build)
+ [Connect al container di compilazione](#ssm-connect)
+ [Riprendi la compilazione](#ssm-resume-build)

## Prerequisiti
<a name="ssm.prerequisites"></a>

Per consentire l'utilizzo di Session Manager con la sessione di compilazione, è necessario abilitare la connessione alla sessione per la build. Esistono due prerequisiti:
+ CodeBuild Nelle immagini curate dagli standard Linux l'agente SSM è già installato e l'agente SSM è abilitato. ContainerMode 

  Se stai usando un'immagine personalizzata per la tua build, fai quanto segue:

  1. Installazione di SSM Agent Per ulteriori informazioni, consulta [Installare manualmente l'agente SSM sulle istanze EC2 per Linux nella Guida per](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-manual-agent-install.html) l' AWS Systems Manager utente. La versione di SSM Agent deve essere 3.0.1295.0 o successiva.

  1. Copia il file [https://github.com/aws/aws-codebuild-docker-images/blob/master/ubuntu/standard/5.0/amazon-ssm-agent.json](https://github.com/aws/aws-codebuild-docker-images/blob/master/ubuntu/standard/5.0/amazon-ssm-agent.json) nella directory dell'immagine. `/etc/amazon/ssm/` Ciò abilita la modalità contenitore nell'agente SSM.
**Nota**  
Le immagini personalizzate richiederebbero l'agente SSM più aggiornato affinché questa funzionalità funzioni come previsto.
+ Il ruolo CodeBuild di servizio deve avere la seguente politica SSM:

------
#### [ JSON ]

****  

  ```
  {
     "Version":"2012-10-17",		 	 	  
     "Statement": [
       {
         "Effect": "Allow",
         "Action": [
            "ssmmessages:CreateControlChannel",
            "ssmmessages:CreateDataChannel",
            "ssmmessages:OpenControlChannel",
            "ssmmessages:OpenDataChannel"
         ],
         "Resource": "*"
       }
     ]
  }
  ```

------

  Puoi fare in modo che la CodeBuild console alleghi automaticamente questa policy al tuo ruolo di servizio all'avvio della build. In alternativa, puoi allegare manualmente questa politica al tuo ruolo di servizio.
+ Se l'**attività di controllo e registrazione della sessione** è abilitata nelle preferenze di Systems Manager, il ruolo di CodeBuild servizio deve disporre anche di autorizzazioni aggiuntive. Le autorizzazioni sono diverse, a seconda di dove sono archiviati i log.  
CloudWatch Registri  
Se utilizzi CloudWatch Logs per archiviare i log, aggiungi la seguente autorizzazione al CodeBuild ruolo di servizio:    
****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Action": "logs:DescribeLogGroups",
              "Resource": "arn:aws:logs:us-east-1:111122223333:log-group:*:*"
          },
          {
              "Effect": "Allow",
              "Action": [
                  "logs:CreateLogStream",
                  "logs:PutLogEvents"
              ],
              "Resource": "arn:aws:logs:us-east-1:111122223333:log-group:MyLogGroup:*"
          }
      ]
  }
  ```  
Simple Storage Service (Amazon S3)  
Se utilizzi Amazon S3 per archiviare i log, aggiungi la seguente autorizzazione al CodeBuild ruolo di servizio:    
****  

  ```
  {
    "Version":"2012-10-17",		 	 	 
    "Statement": [
      {
        "Effect": "Allow",
        "Action": [
          "s3:GetEncryptionConfiguration",
          "s3:PutObject"
        ],
        "Resource": [
          "arn:aws:s3:::<bucket-name>",
          "arn:aws:s3:::<bucket-name>/*"
        ]
      }
    ]
  }
  ```

  *Per ulteriori informazioni, consulta [Controllo e registrazione dell'attività della sessione nella Guida](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-logging-auditing.html) per l'utente.AWS Systems Manager *

## Metti in pausa la compilazione
<a name="ssm-pause-build"></a>

Per mettere in pausa la compilazione, inserisci il **codebuild-breakpoint** comando in una qualsiasi delle fasi di compilazione nel tuo file buildspec. La compilazione verrà messa in pausa a questo punto, il che consente di connettersi al contenitore di compilazione e visualizzare il contenitore nello stato corrente. 

Ad esempio, aggiungi quanto segue alle fasi di compilazione nel tuo file buildspec.

```
phases:
  pre_build:
    commands:
      - echo Entered the pre_build phase...
      - echo "Hello World" > /tmp/hello-world
      - codebuild-breakpoint
```

Questo codice crea il `/tmp/hello-world` file e quindi sospende la compilazione a questo punto.

## Avvia la compilazione
<a name="ssm-start-build"></a>

Per consentire l'utilizzo di Session Manager con la sessione di compilazione, è necessario abilitare le connessioni di sessione per la build. Per fare ciò, quando avvii la build, segui questi passaggi:

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

1. Nel riquadro di navigazione, scegliere **Build projects (Progetti di compilazione)**. Scegli il progetto di compilazione, quindi scegli **Avvia build** with overrides.

1. Selezionare **Advanced build overrides (Sostituzioni avanzate della compilazione)**.

1. Nella sezione **Ambiente**, scegli l'opzione **Abilita la connessione alla sessione.** Se questa opzione non è selezionata, tutti i **codebuild-resume** comandi **codebuild-breakpoint** and vengono ignorati.

1. Apportate le altre modifiche desiderate e scegliete **Avvia compilazione**. 

1. Monitora lo stato della build nella console. Quando la sessione è disponibile, il link **AWS Session Manager** viene visualizzato nella sezione **Build status**.

## Connect al container di compilazione
<a name="ssm-connect"></a>

Puoi connetterti al contenitore di compilazione in due modi:

CodeBuild console  
In un browser web, apri il link **AWS Session Manager** per connetterti al contenitore di build. Si apre una sessione di terminale che consente di sfogliare e controllare il contenitore di compilazione. 

AWS CLI  
Per questa procedura, è necessario che sul computer locale sia installato il plug-in Session Manager. Per ulteriori informazioni, consulta [Installare il plug-in Session Manager per la AWS CLI nella Guida](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html) per l' AWS Systems Manager utente. 

1. Chiama l'**batch-get-builds**api con l'ID di build per ottenere informazioni sulla build, incluso l'identificatore di destinazione della sessione. Il nome della proprietà dell'identificatore di destinazione della sessione varia a seconda del tipo di output del `aws` comando. Questo è il motivo per cui `--output json` viene aggiunto al comando.

   ```
   aws codebuild batch-get-builds --ids <buildID> --region <region> --output json
   ```

1. Copia il valore della `sessionTarget` proprietà. Il nome della `sessionTarget` proprietà può variare a seconda del tipo di output del `aws` comando. Questo è il motivo `--output json` per cui viene aggiunto al comando nel passaggio precedente.

1. Usa il seguente comando per connetterti al contenitore di compilazione.

   ```
   aws ssm start-session --target <sessionTarget> --region <region>
   ```

Per questo esempio, verificate che il `/tmp/hello-world` file esista e contenga il testo`Hello World`.

## Riprendi la compilazione
<a name="ssm-resume-build"></a>

Dopo aver finito di esaminare il contenitore di compilazione, emetti il **codebuild-resume** comando dalla shell del contenitore.

```
$ codebuild-resume
```

# Elimina build in AWS CodeBuild
<a name="delete-builds"></a>

È possibile utilizzare AWS CLI o the AWS SDKs per eliminare le build. AWS CodeBuild

**Topics**
+ [Eliminazione delle compilazioni (AWS CLI)](#delete-builds-cli)
+ [Eliminazione delle compilazioni (AWS SDKs)](#delete-builds-sdks)

## Eliminazione delle compilazioni (AWS CLI)
<a name="delete-builds-cli"></a>

Eseguire il comando `batch-delete-builds`:

```
aws codebuild batch-delete-builds --ids ids
```

Nel comando precedente, sostituire il seguente segnaposto:
+ *ids*: stringa richiesta. Le IDs build da eliminare. Per specificare più compilazioni, separa ogni ID con uno spazio. Per ottenere un elenco delle build IDs, consulta i seguenti argomenti:
  + [Visualizza un elenco di build () IDs AWS CLI](view-build-list.md#view-build-list-cli)
  + [Visualizza un elenco di build IDs per un progetto di compilazione (AWS CLI)](view-builds-for-project.md#view-builds-for-project-cli)

In caso di esito positivo, una matrice `buildsDeleted` viene visualizzata nell'output, con l'Amazon Resource Name (ARN) di ciascuna compilazione eliminata correttamente. Informazioni sulle compilazioni che non sono state eliminate correttamente sono visualizzate nell'output in una matrice `buildsNotDeleted`.

Ad esempio, se si esegue questo comando:

```
aws codebuild batch-delete-builds --ids my-demo-build-project:f8b888d2-5e1e-4032-8645-b115195648EX my-other-demo-build-project:a18bc6ee-e499-4887-b36a-8c90349c7eEX
```

Informazioni simili a quelle riportate di seguito compaiono nell'output:

```
{
  "buildsNotDeleted": [
    {
      "id": "arn:aws:codebuild:us-west-2:123456789012:build/my-demo-build-project:f8b888d2-5e1e-4032-8645-b115195648EX",
      "statusCode": "BUILD_IN_PROGRESS"
    }
  ], 
  "buildsDeleted": [
    "arn:aws:codebuild:us-west-2:123456789012:build/my-other-demo-build-project:a18bc6ee-e499-4887-b36a-8c90349c7eEX"
  ]
}
```

## Eliminazione delle compilazioni (AWS SDKs)
<a name="delete-builds-sdks"></a>

Per informazioni sull'utilizzo AWS CodeBuild con AWS SDKs, consulta[AWS SDKs e riferimento agli strumenti](sdk-ref.md).

# Retry si integra manualmente AWS CodeBuild
<a name="retry-build"></a>

È possibile utilizzare la AWS CodeBuild console o AWS SDKs riprovare manualmente una build singola o una build in batch. AWS CLI AWS CodeBuild

**Topics**
+ [Riprova una compilazione manualmente (console)](#retry-build-console)
+ [Riprova una build manualmente ()AWS CLI](#retry-build-cli)
+ [Riprova una build manualmente ()AWS SDKs](#retry-build-sdks)

## Riprova una compilazione manualmente (console)
<a name="retry-build-console"></a>

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

1. Esegui una delle seguenti operazioni:
   + **Se viene visualizzata la *build-ID* pagina ***build-project-name*:**, scegli Riprova build.**
   + Nel riquadro di navigazione, selezionare **Build history (Cronologia build)**. Nell'elenco delle build, seleziona la casella relativa alla build, quindi scegli **Riprova** build.
   + Nel riquadro di navigazione, scegliere **Build projects (Progetti di compilazione)**. Nell'elenco dei progetti di compilazione, nella colonna **Name (Nome)**, selezionare il collegamento del nome del progetto di compilazione. **Nell'elenco delle build, seleziona la casella relativa alla build, quindi scegli Riprova build.**

**Nota**  
Per impostazione predefinita, vengono visualizzati i 100 progetti di compilazione o build più recenti. Per visualizzare altri progetti di compilazione o build, selezionare l'icona a forma di ingranaggio e selezionare un valore diverso per **Builds per page (Build per pagina)** o **Projects per page (Progetti per pagina)** oppure utilizzare le frecce avanti e indietro.

## Riprova una build manualmente ()AWS CLI
<a name="retry-build-cli"></a>
+ Eseguire il comando **retry-build**:

  ```
  aws codebuild retry-build --id <build-id> --idempotency-token <idempotencyToken>
  ```

  Nel comando precedente, sostituire il seguente segnaposto:
  + *<build-id>*: stringa richiesta. L'ID della build o della build batch da riprovare. Per ottenere un elenco delle build IDs, consulta i seguenti argomenti:
    + [Visualizza un elenco di build () IDs AWS CLI](view-build-list.md#view-build-list-cli)
    + [Visualizza un elenco di build in batch IDs (AWS CLI)](view-build-list.md#view-batch-build-list-cli)
    + [Visualizza un elenco di build IDs per un progetto di compilazione (AWS CLI)](view-builds-for-project.md#view-builds-for-project-cli)
    + [Visualizza un elenco di build in batch IDs per un progetto di compilazione (AWS CLI)](view-builds-for-project.md#view-batch-builds-for-project-cli)
  + `--idempotency-token`: facoltativo. Se esegui il **retry-build** comando con l'opzione, nella richiesta viene incluso un identificatore o token univoco con distinzione tra maiuscole e minuscole. `retry-build` Il token è valido per 5 minuti dopo la richiesta . Se si ripete la `retry-build` richiesta con lo stesso token, ma si modifica un parametro, viene CodeBuild restituito un errore di mancata corrispondenza del parametro.

## Riprova una build manualmente ()AWS SDKs
<a name="retry-build-sdks"></a>

Per ulteriori informazioni sull'utilizzo AWS CodeBuild con AWS SDKs, consulta[AWS SDKs e riferimento agli strumenti](sdk-ref.md).

# Retry si integra automaticamente AWS CodeBuild
<a name="auto-retry-build"></a>

Puoi usare la AWS CodeBuild console o riprovare automaticamente AWS SDKs le tue build. AWS CLI AWS CodeBuild Con il ritentativo automatico abilitato, CodeBuild chiamerà automaticamente `RetryBuild` utilizzando il ruolo di servizio del progetto dopo un completamento non riuscito fino a un limite specificato. Ad esempio, se il limite di tentativi automatici è impostato su due, CodeBuild chiamerà l'`RetryBuild`API per riprovare automaticamente la build per un massimo di due volte aggiuntive.

**Nota**  
CodeBuild non supporta il ritentativo automatico per. CodePipeline

**Topics**
+ [Riprova automaticamente una build (console)](#auto-retry-build-console)
+ [Riprova una build automaticamente ()AWS CLI](#auto-retry-build-cli)
+ [Riprova automaticamente una build ()AWS SDKs](#auto-retry-build-sdks)

## Riprova automaticamente una build (console)
<a name="auto-retry-build-console"></a>

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

1. Seleziona **Crea progetto**. 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).
   +  In **Environment (Ambiente)**: 
     +  Per **Limite tentativi automatici**, inserisci il numero massimo di tentativi automatici desiderato dopo una compilazione non riuscita.

1. **In **Ambiente, scegli Configurazione** aggiuntiva.**

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

## Riprova una build automaticamente ()AWS CLI
<a name="auto-retry-build-cli"></a>
+ Eseguire il comando **create-project**:

  ```
  aws codebuild create-project \
      --name "<project-name>" \
      --auto-retry-limit <auto-retry-limit> \
      --source "<source>" \
      --artifacts {<artifacts>} \
      --environment "{\"type\": \"environment-type>\",\"image\": \"image-type>\",\"computeType\": \"compute-type>\"}" \
      --service-role "service-role>"
  ```

  Nel comando precedente, sostituire i seguenti segnaposto:
  + *<auto-retry-limit>*: imposta il limite di tentativi automatici sul numero massimo di tentativi automatici desiderato dopo una compilazione non riuscita.
  + *<project-name>*,,*<source>*,*<artifacts>*, *environment-type>* *image-type>**compute-type>*, e*service-role>*: Imposta le impostazioni di configurazione del progetto desiderate.

## Riprova automaticamente una build ()AWS SDKs
<a name="auto-retry-build-sdks"></a>

Per ulteriori informazioni sull'utilizzo AWS CodeBuild con AWS SDKs, consulta[AWS SDKs e riferimento agli strumenti](sdk-ref.md).

# Stop si integra AWS CodeBuild
<a name="stop-build"></a>

Puoi usare la AWS CodeBuild console o AWS SDKs interrompere un build in AWS CodeBuild. AWS CLI

**Topics**
+ [Interruzione di una compilazione (console)](#stop-build-console)
+ [Interruzione di una compilazione (AWS CLI)](#stop-build-cli)
+ [Interruzione di una compilazione (AWS SDKs)](#stop-build-sdks)

## Interruzione di una compilazione (console)
<a name="stop-build-console"></a>

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

1. Esegui una di queste operazioni:
   + **Se viene visualizzata la *build-ID* pagina ***build-project-name*:**, scegli Stop build.**
   + Nel riquadro di navigazione, selezionare **Build history (Cronologia build)**. Nell'elenco di build, selezionare la casella della build e selezionare **Stop build (Interrompi build)**.
   + Nel riquadro di navigazione, scegliere **Build projects (Progetti di compilazione)**. Nell'elenco dei progetti di compilazione, nella colonna **Name (Nome)**, selezionare il collegamento del nome del progetto di compilazione. Nell'elenco di build, selezionare la casella della build e selezionare **Stop build (Interrompi build)**.

**Nota**  
Per impostazione predefinita, vengono visualizzati i 100 progetti di compilazione o build più recenti. Per visualizzare altri progetti di compilazione o build, selezionare l'icona a forma di ingranaggio e selezionare un valore diverso per **Builds per page (Build per pagina)** o **Projects per page (Progetti per pagina)** oppure utilizzare le frecce avanti e indietro.  
Se AWS CodeBuild non riesci a interrompere correttamente una compilazione (ad esempio, se il processo di compilazione è già completo), il pulsante **Stop** è disabilitato o potrebbe non apparire.

## Interruzione di una compilazione (AWS CLI)
<a name="stop-build-cli"></a>
+ Eseguire il comando **stop-build**:

  ```
  aws codebuild stop-build --id id
  ```

  Nel comando precedente, sostituire il seguente segnaposto:
  + *id*: stringa obbligatoria. L'ID della compilazione da interrompere. Per ottenere un elenco delle build IDs, consulta i seguenti argomenti:
    + [Visualizza un elenco di build () IDs AWS CLI](view-build-list.md#view-build-list-cli)
    + [Visualizza un elenco di build IDs per un progetto di compilazione (AWS CLI)](view-builds-for-project.md#view-builds-for-project-cli)

  Se interrompe AWS CodeBuild correttamente la compilazione, il `buildStatus` valore nell'`build`oggetto nell'output è`STOPPED`.

  Se CodeBuild non è possibile interrompere correttamente la compilazione (ad esempio, se la compilazione è già completa), il `buildStatus` valore `build` dell'oggetto nell'output è lo stato finale della build (ad esempio,`SUCCEEDED`).

## Interruzione di una compilazione (AWS SDKs)
<a name="stop-build-sdks"></a>

Per ulteriori informazioni sull'utilizzo AWS CodeBuild con AWS SDKs, consulta[AWS SDKs e riferimento agli strumenti](sdk-ref.md).

# Interrompi gli accumuli in batch AWS CodeBuild
<a name="stop-batch-build"></a>

È possibile utilizzare la AWS CodeBuild console o interrompere AWS SDKs la compilazione in batch AWS CodeBuild. AWS CLI

**Nota**  
Se utilizzi il calcolo Lambda nella build in batch, la build Lambda in corso non può essere interrotta.

**Topics**
+ [Interrompi una compilazione in batch (console)](#stop-batch-build-console)
+ [Interrompi una compilazione in batch (AWS CLI)](#stop-batch-build-cli)
+ [Interrompi una compilazione in batch ()AWS SDKs](#stop-batch-build-sdks)

## Interrompi una compilazione in batch (console)
<a name="stop-batch-build-console"></a>

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

1. Esegui una di queste operazioni:
   + **Se viene visualizzata la *build-ID* pagina ***build-project-name*:**, scegli Stop build.**
   + Nel riquadro di navigazione, selezionare **Build history (Cronologia build)**. Nell'elenco di build, selezionare la casella della build e selezionare **Stop build (Interrompi build)**.
   + Nel riquadro di navigazione, scegliere **Build projects (Progetti di compilazione)**. Nell'elenco dei progetti di compilazione, nella colonna **Name (Nome)**, selezionare il collegamento del nome del progetto di compilazione. Nell'elenco di build, selezionare la casella della build e selezionare **Stop build (Interrompi build)**.

**Nota**  
Per impostazione predefinita, vengono visualizzati i 100 progetti di compilazione o build più recenti. Per visualizzare altri progetti di compilazione o build, selezionare l'icona a forma di ingranaggio e selezionare un valore diverso per **Builds per page (Build per pagina)** o **Projects per page (Progetti per pagina)** oppure utilizzare le frecce avanti e indietro.

## Interrompi una compilazione in batch (AWS CLI)
<a name="stop-batch-build-cli"></a>
+ Eseguire il comando [https://docs.aws.amazon.com/cli/latest/reference/codebuild/stop-build-batch.html](https://docs.aws.amazon.com/cli/latest/reference/codebuild/stop-build-batch.html):

  ```
  aws codebuild stop-build-batch --id <batch-build-id>
  ```

  Nel comando precedente, sostituire il seguente segnaposto:
  + *<batch-build-id>*: stringa richiesta. L'identificatore della build batch da interrompere. Per ottenere un elenco degli identificatori di build in batch, consultate i seguenti argomenti:
    + [Visualizza un elenco di build in batch IDs (AWS CLI)](view-build-list.md#view-batch-build-list-cli)
    + [Visualizza un elenco di build in batch IDs per un progetto di compilazione (AWS CLI)](view-builds-for-project.md#view-batch-builds-for-project-cli)

## Interrompi una compilazione in batch ()AWS SDKs
<a name="stop-batch-build-sdks"></a>

Per ulteriori informazioni sull'utilizzo AWS CodeBuild con AWS SDKs, consulta[AWS SDKs e riferimento agli strumenti](sdk-ref.md).

# Trigger AWS CodeBuild si crea automaticamente
<a name="build-triggers"></a>

Puoi creare un trigger su un progetto per pianificare una build una volta ogni ora, giorno o settimana. Puoi anche modificare un trigger per utilizzare una regola personalizzata con un'espressione CloudWatch cron di Amazon. Ad esempio, utilizzando un'espressione cron, puoi pianificare una build in un orario specifico ogni giorno feriale. Per informazioni sulla creazione e la modifica dei trigger, consulta [Creare trigger AWS CodeBuild](#trigger-create) e. [Modifica i AWS CodeBuild trigger](triggers-edit.md)

**Topics**
+ [Creare trigger AWS CodeBuild](#trigger-create)
+ [Modifica i AWS CodeBuild trigger](triggers-edit.md)

## Creare trigger AWS CodeBuild
<a name="trigger-create"></a>

Puoi creare un trigger su un progetto per pianificare una build una volta ogni ora, giorno o settimana. Puoi anche creare un trigger utilizzando una regola personalizzata con un'espressione CloudWatch cron di Amazon. Ad esempio, utilizzando un'espressione cron, puoi pianificare una build in un orario specifico ogni giorno feriale. 

**Nota**  
Non è possibile avviare una compilazione in batch da un trigger di compilazione, un EventBridge evento Amazon o un' AWS Step Functions attività.

**Topics**
+ [Crea AWS CodeBuild trigger (console)](#trigger-create-console)
+ [Crea AWS CodeBuild trigger a livello di codice](#trigger-create-code)

### Crea AWS CodeBuild trigger (console)
<a name="trigger-create-console"></a>

Utilizzare la procedura seguente per creare trigger utilizzando. Console di gestione AWS

**Per creare un trigger** 

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

1. Nel riquadro di navigazione, scegliere **Build projects (Progetti di compilazione)**.

1. Selezionare il collegamento del progetto di compilazione a cui si desidera aggiungere un trigger, quindi selezionare la scheda**Build triggers (Trigger della build)**.
**Nota**  
Per impostazione predefinita, vengono visualizzati i 100 progetti di build più recenti. Per visualizzare altri progetti di compilazione, selezionare l'icona a forma di ingranaggio, quindi selezionare un valore diverso per **Projects per page (Progetti per pagina)** oppure utilizzare le frecce avanti e indietro.

1. Selezionare **Create trigger (Crea trigger)**.

1. Alla voce **Trigger name (Nome trigger)**, inserire un nome.

1. Dal menu a discesa **Frequency (Frequenza)**, scegli la frequenza per il trigger. Se intendi creare una frequenza utilizzando un'espressione cron, seleziona **Custom (Personalizzato)**.

1. Specifica il parametro relativo alla frequenza del tuo trigger. Puoi inserire i primi caratteri delle selezioni nella casella di testo per filtrare le voci del menu a discesa.
**Nota**  
 Le ore e i minuti di inizio sono basati su zero. Il minuto di inizio è un numero compreso tra zero e 59. L'ora di inizio è un numero compreso tra zero e 23. Ad esempio, un trigger giornaliero che inizia ogni giorno alle 12:15 ha un'ora di inizio di 12 e un minuto di inizio di 15. Un trigger giornaliero che inizia ogni giorno a mezzanotte ha un'ora di inizio pari a zero e un minuto di inizio pari a zero. Un trigger giornaliero che inizia ogni giorno alle 23:59 ha un'ora di inizio di 23 e un minuto di inizio di 59.   
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/codebuild/latest/userguide/build-triggers.html)

1.  Seleziona **Enable this trigger (Attiva questo trigger)**. 

1.  (Facoltativo) Espandere **Advanced section (Sezione avanzata)**. Digitare una versione della sorgente in **Source version (Versione sorgente)**. 
   +  Per Amazon S3, inserisci l'ID della versione che corrisponde alla versione dell'elemento di input che desideri creare. Se il valore **Source version (Versione sorgente)** non è specificato, viene utilizzata l'ultima versione. 
   +  Per AWS CodeCommit, digita un ID di commit. Se **Source version (Versione di origine)** non è specificata, viene utilizzato l'ID commit HEAD del ramo predefinito. 
   + Per GitHub o GitHub Enterprise, digita un ID di commit, un ID di pull request, un nome di filiale o un nome di tag che corrisponda alla versione del codice sorgente che desideri creare. Se specifichi l'ID di una richiesta pull, devi utilizzare il formato `pr/pull-request-ID` (ad esempio, `pr/25`). Se specifichi un nome ramo, viene utilizzato l'ID commit HEAD del ramo. Se **Source version (Versione sorgente)** non è specificata, viene utilizzato l'ID commit HEAD del ramo predefinito.
   + Per Bitbucket, digita un ID commit, un nome ramo o un nome tag che corrispondono alla versione del codice sorgente che desideri utilizzare. Se specifichi un nome ramo, viene utilizzato l'ID commit HEAD del ramo. Se **Source version (Versione sorgente)** non è specificata, viene utilizzato l'ID commit HEAD del ramo predefinito.

1. (Facoltativo) Specificate un timeout compreso tra 5 minuti e 2160 minuti (36 ore). Questo valore specifica per quanto tempo AWS CodeBuild tenta una compilazione prima che si interrompa. Se **Hours (Ore)** e **Minutes (Minuti)** vengono lasciati vuoti, viene utilizzato il valore del timeout predefinito specificato nel progetto. 

1. Selezionare **Create trigger (Crea trigger)**.

### Crea AWS CodeBuild trigger a livello di codice
<a name="trigger-create-code"></a>

CodeBuild utilizza EventBridge le regole di Amazon per i trigger di compilazione. Puoi utilizzare l' EventBridge API per creare programmaticamente trigger di compilazione per i tuoi progetti. CodeBuild Per ulteriori informazioni, consulta [Amazon EventBridge API Reference](https://docs.aws.amazon.com/eventbridge/latest/APIReference/).

# Modifica i AWS CodeBuild trigger
<a name="triggers-edit"></a>

Puoi modificare un trigger su un progetto per pianificare una build una volta ogni ora, giorno o settimana. Puoi anche modificare un trigger per utilizzare una regola personalizzata con un'espressione CloudWatch cron di Amazon. Ad esempio, utilizzando un'espressione cron, puoi pianificare una build in un orario specifico ogni giorno feriale. Per informazioni su come creare un trigger , vedi [Creare trigger AWS CodeBuild](build-triggers.md#trigger-create).

**Topics**
+ [Modifica i AWS CodeBuild trigger (console)](#triggers-edit-console)
+ [Modifica i AWS CodeBuild trigger a livello di codice](#trigger-edit-code)

## Modifica i AWS CodeBuild trigger (console)
<a name="triggers-edit-console"></a>

Utilizzare la procedura seguente per modificare i trigger utilizzando. Console di gestione AWS

**Per modificare un trigger**

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

1. Nel riquadro di navigazione, scegliere **Build projects (Progetti di compilazione)**.

1. Selezionare il collegamento del progetto di compilazione da modificare, quindi selezionare la scheda **Build triggers (Trigger della build)**.
**Nota**  
Per impostazione predefinita, vengono visualizzati i 100 progetti di build più recenti. Per visualizzare altri progetti di compilazione, selezionare l'icona a forma di ingranaggio, quindi selezionare un valore diverso per **Projects per page (Progetti per pagina)** oppure utilizzare le frecce avanti e indietro.

1. Selezionare il pulsante di opzione accanto al trigger da modificare, quindi selezionare **Edit (Modifica)**.

1. Dal menu a discesa **Frequency (Frequenza)**, scegli la frequenza per il trigger. Se intendi creare una frequenza utilizzando un'espressione cron, seleziona **Custom (Personalizzato)**.

1. Specifica il parametro relativo alla frequenza del tuo trigger. Puoi inserire i primi caratteri delle selezioni nella casella di testo per filtrare le voci del menu a discesa.
**Nota**  
 Le ore e i minuti di inizio sono basati su zero. Il minuto di inizio è un numero compreso tra zero e 59. L'ora di inizio è un numero compreso tra zero e 23. Ad esempio, un trigger giornaliero che inizia ogni giorno alle 12:15 ha un'ora di inizio di 12 e un minuto di inizio di 15. Un trigger giornaliero che inizia ogni giorno a mezzanotte ha un'ora di inizio pari a zero e un minuto di inizio pari a zero. Un trigger giornaliero che inizia ogni giorno alle 23:59 ha un'ora di inizio di 23 e un minuto di inizio di 59.   
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/codebuild/latest/userguide/triggers-edit.html)

1.  Seleziona **Enable this trigger (Attiva questo trigger)**. 

**Nota**  
Puoi utilizzare la CloudWatch console Amazon all'indirizzo [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/)per modificare la versione sorgente, il timeout e altre opzioni non disponibili in AWS CodeBuild.

## Modifica i AWS CodeBuild trigger a livello di codice
<a name="trigger-edit-code"></a>

CodeBuild utilizza EventBridge le regole di Amazon per i trigger di compilazione. Puoi utilizzare l' EventBridge API per modificare a livello di codice i trigger di compilazione per i tuoi progetti. CodeBuild Per ulteriori informazioni, consulta [Amazon EventBridge API Reference](https://docs.aws.amazon.com/eventbridge/latest/APIReference/).

# Visualizza i dettagli della costruzione in AWS CodeBuild
<a name="view-build-details"></a>

È possibile utilizzare la AWS CodeBuild console o visualizzare AWS SDKs i dettagli sulle build gestite da. AWS CLI CodeBuild

**Topics**
+ [Visualizzazione dei dettagli delle compilazioni (console)](#view-build-details-console)
+ [Visualizzazione dei dettagli delle compilazioni (AWS CLI)](#view-build-details-cli)
+ [Visualizzazione dei dettagli delle compilazioni (AWS SDKs)](#view-build-details-sdks)
+ [Transizioni delle fasi della compilazione](view-build-details-phases.md)

## Visualizzazione dei dettagli delle compilazioni (console)
<a name="view-build-details-console"></a>

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

1. Esegui una delle seguenti operazioni:
   + Nel riquadro di navigazione, selezionare **Build history (Cronologia build)**. Nell'elenco delle build, nella colonna **Build run (Esecuzione build)**, selezionare il collegamento della build. 
   + Nel riquadro di navigazione, scegliere **Build projects (Progetti di compilazione)**. Nell'elenco dei progetti di compilazione, nella colonna **Name (Nome)**, selezionare il collegamento del nome del progetto di compilazione. Nell'elenco delle build, nella colonna **Build run (Esecuzione build)**, selezionare il collegamento della build.
**Nota**  
Per impostazione predefinita, vengono visualizzati i 10 progetti di compilazione o build più recenti. Per visualizzare altri progetti di compilazione o build, selezionare l'icona a forma di ingranaggio e selezionare un valore diverso per **Builds per page (Build per pagina)** o **Projects per page (Progetti per pagina)** oppure utilizzare le frecce avanti e indietro.

## Visualizzazione dei dettagli delle compilazioni (AWS CLI)
<a name="view-build-details-cli"></a>

Per ulteriori informazioni sull'utilizzo di AWS CLI with AWS CodeBuild, consulta. [Guida di riferimento alla riga di comando](cmd-ref.md)

Eseguire il comando **batch-get-builds**:

```
aws codebuild batch-get-builds --ids ids
```

Sostituire il seguente segnaposto:
+ *ids*: stringa richiesta. Una o più build IDs per visualizzarne i dettagli. Per specificare più di un ID build, separare ogni ID con uno spazio. Puoi specificare fino a 100 build IDs. Per ottenere un elenco delle build IDs, consulta i seguenti argomenti:
  + [Visualizza un elenco di build () IDs AWS CLI](view-build-list.md#view-build-list-cli)
  + [Visualizza un elenco di build IDs per un progetto di compilazione (AWS CLI)](view-builds-for-project.md#view-builds-for-project-cli)

Ad esempio, se si esegue questo comando:

```
aws codebuild batch-get-builds --ids codebuild-demo-project:e9c4f4df-3f43-41d2-ab3a-60fe2EXAMPLE codebuild-demo-project:815e755f-bade-4a7e-80f0-efe51EXAMPLE my-other-project:813bb6c6-891b-426a-9dd7-6d8a3EXAMPLE
```

In caso di esito positivo, nell'output vengono visualizzati dati simili a quelli descritti nella procedura [Per visualizzare un riepilogo delle informazioni sulla compilazione](getting-started-overview.md#getting-started-cli-monitor-build-cli).

## Visualizzazione dei dettagli delle compilazioni (AWS SDKs)
<a name="view-build-details-sdks"></a>

Per ulteriori informazioni sull'utilizzo AWS CodeBuild con AWS SDKs, consulta[AWS SDKs e riferimento agli strumenti](sdk-ref.md).

# Transizioni delle fasi della compilazione
<a name="view-build-details-phases"></a>

Le build AWS CodeBuild procedono per fasi:



![\[Le CodeBuild fasi.\]](http://docs.aws.amazon.com/it_it/codebuild/latest/userguide/images/build-phases.png)




**Importante**  
La fase `UPLOAD_ARTIFACTS` viene sempre tentata, anche se la fase `BUILD` fallisce.

# Visualizza un elenco di build IDs in AWS CodeBuild
<a name="view-build-list"></a>

È possibile utilizzare la AWS CodeBuild console o AWS SDKs visualizzare un elenco di build IDs per le build gestite da CodeBuild. AWS CLI

**Topics**
+ [Visualizza un elenco di build IDs (console)](#view-build-list-console)
+ [Visualizza un elenco di build () IDs AWS CLI](#view-build-list-cli)
+ [Visualizza un elenco di build in batch IDs (AWS CLI)](#view-batch-build-list-cli)
+ [Visualizza un elenco di build IDs (AWS SDKs)](#view-build-list-sdks)

## Visualizza un elenco di build IDs (console)
<a name="view-build-list-console"></a>

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

1. Nel riquadro di navigazione, selezionare **Build history (Cronologia build)**. 
**Nota**  
Per impostazione predefinita, vengono visualizzate solo le 10 build più recenti. Per visualizzare altre build, selezionare l'icona a forma di ingranaggio, quindi selezionare un valore diverso per **Builds per page (Build per pagina)** oppure utilizzare le frecce avanti e indietro.

## Visualizza un elenco di build () IDs AWS CLI
<a name="view-build-list-cli"></a>

Per ulteriori informazioni sull'utilizzo di AWS CLI with CodeBuild, consulta[Guida di riferimento alla riga di comando](cmd-ref.md).
+ Eseguire il comando **list-builds**:

  ```
  aws codebuild list-builds --sort-order sort-order --next-token next-token
  ```

  Nel comando precedente, sostituire i seguenti segnaposto:
  + *sort-order*: Stringa opzionale utilizzata per indicare come elencare la build IDs. I valori validi includono `ASCENDING` e `DESCENDING`.
  + *next-token*: stringa opzionale. Se durante un'esecuzione precedente c'erano più di 100 voci nell'elenco, vengono restituiti solo i primi 100 elementi, insieme a una stringa univoca denominata *token successivo*. Per ottenere il gruppo successivo di elementi nell'elenco, eseguire il comando nuovamente, aggiungendo il token successivo alla chiamata. Per ottenere tutti gli elementi dell'elenco, è necessario continuare a eseguire il comando con ogni token successivo restituito, finché non terminano i token successivi restituiti.

  Ad esempio, se si esegue questo comando:

  ```
  aws codebuild list-builds --sort-order ASCENDING
  ```

  Nell'output potrebbe essere visualizzato un risultato come il seguente:

  ```
  {
    "nextToken": "4AEA6u7J...The full token has been omitted for brevity...MzY2OA==",
    "ids": [
      "codebuild-demo-project:815e755f-bade-4a7e-80f0-efe51EXAMPLE"
      "codebuild-demo-project:84a7f3d1-d40e-4956-b4cf-7a9d4EXAMPLE"
      ... The full list of build IDs has been omitted for brevity ...
      "codebuild-demo-project:931d0b72-bf6f-4040-a472-5c707EXAMPLE"
    ]
  }
  ```

  Se si esegue nuovamente il comando:

  ```
  aws codebuild list-builds --sort-order ASCENDING --next-token 4AEA6u7J...The full token has been omitted for brevity...MzY2OA==
  ```

  Nell'output potrebbe essere visualizzato un risultato come il seguente:

  ```
  {
    "ids": [
      "codebuild-demo-project:49015049-21cf-4b50-9708-df115EXAMPLE",
      "codebuild-demo-project:543e7206-68a3-46d6-a4da-759abEXAMPLE",
      ... The full list of build IDs has been omitted for brevity ...
      "codebuild-demo-project:c282f198-4582-4b38-bdc0-26f96EXAMPLE"
    ]
  }
  ```

## Visualizza un elenco di build in batch IDs (AWS CLI)
<a name="view-batch-build-list-cli"></a>

Per ulteriori informazioni sull'utilizzo di AWS CLI with CodeBuild, consulta[Guida di riferimento alla riga di comando](cmd-ref.md).
+ Eseguire il comando **list-build-batches**:

  ```
  aws codebuild list-build-batches --sort-order sort-order --next-token next-token
  ```

  Nel comando precedente, sostituire i seguenti segnaposto:
  + *sort-order*: Stringa facoltativa utilizzata per indicare come elencare la build in batch IDs. I valori validi includono `ASCENDING` e `DESCENDING`.
  + *next-token*: stringa opzionale. Se durante un'esecuzione precedente c'erano più di 100 voci nell'elenco, vengono restituiti solo i primi 100 elementi, insieme a una stringa univoca denominata *token successivo*. Per ottenere il gruppo successivo di elementi nell'elenco, eseguire il comando nuovamente, aggiungendo il token successivo alla chiamata. Per ottenere tutti gli elementi dell'elenco, è necessario continuare a eseguire il comando con ogni token successivo restituito, finché non terminano i token successivi restituiti.

  Ad esempio, se si esegue questo comando:

  ```
  aws codebuild list-build-batches --sort-order ASCENDING
  ```

  Nell'output potrebbe essere visualizzato un risultato come il seguente:

  ```
  {
    "nextToken": "4AEA6u7J...The full token has been omitted for brevity...MzY2OA==",
    "ids": [
      "codebuild-demo-project:815e755f-bade-4a7e-80f0-efe51EXAMPLE"
      "codebuild-demo-project:84a7f3d1-d40e-4956-b4cf-7a9d4EXAMPLE"
      ... The full list of build IDs has been omitted for brevity ...
      "codebuild-demo-project:931d0b72-bf6f-4040-a472-5c707EXAMPLE"
    ]
  }
  ```

  Se si esegue nuovamente il comando:

  ```
  aws codebuild list-build-batches --sort-order ASCENDING --next-token 4AEA6u7J...The full token has been omitted for brevity...MzY2OA==
  ```

  Nell'output potrebbe essere visualizzato un risultato come il seguente:

  ```
  {
    "ids": [
      "codebuild-demo-project:49015049-21cf-4b50-9708-df115EXAMPLE",
      "codebuild-demo-project:543e7206-68a3-46d6-a4da-759abEXAMPLE",
      ... The full list of build IDs has been omitted for brevity ...
      "codebuild-demo-project:c282f198-4582-4b38-bdc0-26f96EXAMPLE"
    ]
  }
  ```

## Visualizza un elenco di build IDs (AWS SDKs)
<a name="view-build-list-sdks"></a>

Per ulteriori informazioni sull'utilizzo CodeBuild con AWS SDKs, consulta[AWS SDKs e riferimento agli strumenti](sdk-ref.md).

# Visualizza un elenco di build IDs per un progetto di compilazione in AWS CodeBuild
<a name="view-builds-for-project"></a>

È possibile utilizzare la AWS CodeBuild console o AWS SDKs visualizzare un elenco di build IDs per un progetto di compilazione in CodeBuild. AWS CLI

**Topics**
+ [Visualizza un elenco di build IDs per un progetto di compilazione (console)](#view-builds-for-project-console)
+ [Visualizza un elenco di build IDs per un progetto di compilazione (AWS CLI)](#view-builds-for-project-cli)
+ [Visualizza un elenco di build in batch IDs per un progetto di compilazione (AWS CLI)](#view-batch-builds-for-project-cli)
+ [Visualizza un elenco di build IDs per un progetto di compilazione (AWS SDKs)](#view-builds-for-project-sdks)

## Visualizza un elenco di build IDs per un progetto di compilazione (console)
<a name="view-builds-for-project-console"></a>

1. Apri la CodeBuild console all'indirizzo [https://console.aws.amazon.com/codebuild/](https://console.aws.amazon.com/codebuild/).

1. Nel riquadro di navigazione, scegliere **Build projects (Progetti di compilazione)**. Nell'elenco dei progetti di compilazione, nella colonna **Name (Nome)**, scegliere il progetto di compilazione. 

**Nota**  
Per impostazione predefinita, vengono visualizzati i 100 progetti di compilazione o build più recenti. Per visualizzare altri progetti di compilazione o build, selezionare l'icona a forma di ingranaggio e selezionare un valore diverso per **Builds per page (Build per pagina)** o **Projects per page (Progetti per pagina)** oppure utilizzare le frecce avanti e indietro.

## Visualizza un elenco di build IDs per un progetto di compilazione (AWS CLI)
<a name="view-builds-for-project-cli"></a>

Per ulteriori informazioni sull'utilizzo di AWS CLI with AWS CodeBuild, consulta[Guida di riferimento alla riga di comando](cmd-ref.md).

Eseguire il comando **list-builds-for-project**, come segue:

```
aws codebuild list-builds-for-project --project-name project-name --sort-order sort-order --next-token next-token
```

Nel comando precedente, sostituire i seguenti segnaposto:
+ *project-name*: Stringa obbligatoria utilizzata per indicare il nome del progetto di build per cui elencare le build IDs . Per ottenere un elenco di progetti di compilazione, consulta [Visualizzazione di un elenco di nomi di progetti di compilazione (AWS CLI)](view-project-list.md#view-project-list-cli).
+ *sort-order*: stringa opzionale utilizzata per indicare come elencare la build IDs. I valori validi includono `ASCENDING` e `DESCENDING`.
+ *next-token*: stringa opzionale. Se durante un'esecuzione precedente c'erano più di 100 voci nell'elenco, vengono restituiti solo i primi 100 elementi, insieme a una stringa univoca denominata *token successivo*. Per ottenere il gruppo successivo di elementi nell'elenco, eseguire il comando nuovamente, aggiungendo il token successivo alla chiamata. Per ottenere tutte le voci nell'elenco, è necessario continuare a eseguire il comando con ogni token successivo restituito, finché non terminano i token successivi restituiti.

Ad esempio, se si esegue un comando simile a questo:

```
aws codebuild list-builds-for-project --project-name codebuild-demo-project --sort-order ASCENDING
```

Nell'output potrebbe comparire un risultato come il seguente:

```
{
  "nextToken": "4AEA6u7J...The full token has been omitted for brevity...MzY2OA==",
  "ids": [
    "codebuild-demo-project:9b175d16-66fd-4e71-93a0-50a08EXAMPLE"
    "codebuild-demo-project:a9d1bd09-18a2-456b-8a36-7d65aEXAMPLE"
    ... The full list of build IDs has been omitted for brevity ...
    "codebuild-demo-project:fe70d102-c04f-421a-9cfa-2dc15EXAMPLE"
  ]
}
```

Se si esegue nuovamente il comando:

```
aws codebuild list-builds-for-project --project-name codebuild-demo-project --sort-order ASCENDING --next-token 4AEA6u7J...The full token has been omitted for brevity...MzY2OA==
```

Nell'output potrebbe comparire un risultato come il seguente:

```
{
  "ids": [
    "codebuild-demo-project:98253670-7a8a-4546-b908-dc890EXAMPLE"
    "codebuild-demo-project:ad5405b2-1ab3-44df-ae2d-fba84EXAMPLE"
    ... The full list of build IDs has been omitted for brevity ...
    "codebuild-demo-project:f721a282-380f-4b08-850a-e0ac1EXAMPLE"
  ]
}
```

## Visualizza un elenco di build in batch IDs per un progetto di compilazione (AWS CLI)
<a name="view-batch-builds-for-project-cli"></a>

Per ulteriori informazioni sull'utilizzo di AWS CLI with AWS CodeBuild, consulta[Guida di riferimento alla riga di comando](cmd-ref.md).

Eseguire il comando **list-build-batches-for-project**, come segue:

```
aws codebuild list-build-batches-for-project --project-name project-name --sort-order sort-order --next-token next-token
```

Nel comando precedente, sostituire i seguenti segnaposto:
+ *project-name*: Stringa obbligatoria utilizzata per indicare il nome del progetto di build per cui elencare le build IDs . Per ottenere un elenco di progetti di compilazione, consulta [Visualizzazione di un elenco di nomi di progetti di compilazione (AWS CLI)](view-project-list.md#view-project-list-cli).
+ *sort-order*: stringa opzionale utilizzata per indicare come elencare la build IDs. I valori validi includono `ASCENDING` e `DESCENDING`.
+ *next-token*: stringa opzionale. Se durante un'esecuzione precedente c'erano più di 100 voci nell'elenco, vengono restituiti solo i primi 100 elementi, insieme a una stringa univoca denominata *token successivo*. Per ottenere il gruppo successivo di elementi nell'elenco, eseguire il comando nuovamente, aggiungendo il token successivo alla chiamata. Per ottenere tutte le voci nell'elenco, è necessario continuare a eseguire il comando con ogni token successivo restituito, finché non terminano i token successivi restituiti.

Ad esempio, se si esegue un comando simile a questo:

```
aws codebuild list-build-batches-for-project --project-name codebuild-demo-project --sort-order ASCENDING
```

Nell'output potrebbe comparire un risultato come il seguente:

```
{
  "nextToken": "4AEA6u7J...The full token has been omitted for brevity...MzY2OA==",
  "ids": [
    "codebuild-demo-project:9b175d16-66fd-4e71-93a0-50a08EXAMPLE"
    "codebuild-demo-project:a9d1bd09-18a2-456b-8a36-7d65aEXAMPLE"
    ... The full list of build IDs has been omitted for brevity ...
    "codebuild-demo-project:fe70d102-c04f-421a-9cfa-2dc15EXAMPLE"
  ]
}
```

Se si esegue nuovamente il comando:

```
aws codebuild list-build-batches-for-project --project-name codebuild-demo-project --sort-order ASCENDING --next-token 4AEA6u7J...The full token has been omitted for brevity...MzY2OA==
```

Nell'output potrebbe comparire un risultato come il seguente:

```
{
  "ids": [
    "codebuild-demo-project:98253670-7a8a-4546-b908-dc890EXAMPLE"
    "codebuild-demo-project:ad5405b2-1ab3-44df-ae2d-fba84EXAMPLE"
    ... The full list of build IDs has been omitted for brevity ...
    "codebuild-demo-project:f721a282-380f-4b08-850a-e0ac1EXAMPLE"
  ]
}
```

## Visualizza un elenco di build IDs per un progetto di compilazione (AWS SDKs)
<a name="view-builds-for-project-sdks"></a>

Per ulteriori informazioni sull'utilizzo AWS CodeBuild con AWS SDKs, consulta[AWS SDKs e riferimento agli strumenti](sdk-ref.md).