

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

# Guida introduttiva con CodeBuild
<a name="getting-started-overview"></a>

Nei seguenti tutorial, viene utilizzato AWS CodeBuild per creare una raccolta di file di input di codice sorgente di esempio in una versione distribuibile del codice sorgente.

Entrambi i tutorial hanno lo stesso input e gli stessi risultati, ma uno utilizza la AWS CodeBuild console e l'altro utilizza la. AWS CLI

**Importante**  
Non è consigliabile utilizzare l'account AWS root per completare questo tutorial.

**Topics**
+ [

## Guida introduttiva all' AWS CodeBuild utilizzo della console
](#getting-started)
+ [

## Guida introduttiva all' AWS CodeBuild utilizzo di AWS CLI
](#getting-started-cli)

## Guida introduttiva all' AWS CodeBuild utilizzo della console
<a name="getting-started"></a>

*In questo tutorial, puoi AWS CodeBuild creare una raccolta di file di input di esempio del codice sorgente (*build input artefact o *build input*) in una versione distribuibile del codice sorgente (build output artifact* *o build output*).* In particolare, si richiede di CodeBuild utilizzare Apache Maven, uno strumento di compilazione comune, per creare un set di file di classe Java in un file Java Archive (JAR). Non è necessario avere familiarità con Apache Maven o Java per completare questa procedura guidata.

È possibile utilizzare CodeBuild tramite la CodeBuild console, il AWS CodePipeline, o il AWS CLI. AWS SDKs Questo tutorial illustra come utilizzare la CodeBuild console. Per ulteriori informazioni sull'uso di CodePipeline, consultare [Usa CodeBuild con CodePipeline](how-to-create-pipeline.md).

**Importante**  
I passaggi di questo tutorial richiedono la creazione di risorse (ad esempio un bucket S3) che potrebbero comportare addebiti sul tuo account. AWS Questi includono eventuali addebiti per CodeBuild e per AWS risorse e azioni relative ad Amazon S3 e AWS KMS CloudWatch Logs. Per ulteriori informazioni, consulta [AWS CodeBuild i prezzi, i prezzi](https://aws.amazon.com/codebuild/pricing) di [Amazon S3, i prezzi](https://aws.amazon.com/s3/pricing) e [AWS Key Management Service i prezzi](https://aws.amazon.com/kms/pricing) di [Amazon CloudWatch ](https://aws.amazon.com/cloudwatch/pricing).

**Topics**
+ [

### Fase 1: Creare il codice sorgente
](#getting-started-create-source-code-console)
+ [

### Passaggio 2: creare il file buildspec
](#getting-started-create-build-spec-console)
+ [

### Fase 3: Creare due bucket S3
](#getting-started-input-bucket-console)
+ [

### Fase 4: caricamento del codice di origine e del file buildspec
](#getting-started-upload-source-code-console)
+ [

### Fase 5: creazione del progetto di compilazione
](#getting-started-create-build-project-console)
+ [

### Fase 6: esecuzione della compilazione
](#getting-started-run-build-console)
+ [

### Fase 7: visualizzazione del riepilogo delle informazioni sulla compilazione
](#getting-started-monitor-build-console)
+ [

### Fase 8: visualizzazione di informazioni dettagliate sulla compilazione
](#getting-started-build-log-console)
+ [

### Fase 9: generazione dell'artefatto di output della compilazione
](#getting-started-output-console)
+ [

### Passaggio 10: eliminare i bucket S3
](#getting-started-clean-up-console)
+ [

### Wrapping
](#getting-started-next-steps-console)

### Fase 1: Creare il codice sorgente
<a name="getting-started-create-source-code-console"></a>

(Parte di: [Guida introduttiva all' AWS CodeBuild utilizzo della console](#getting-started))

In questo passaggio, crei il codice sorgente che desideri CodeBuild inserire nel bucket di output. Questo codice sorgente è costituito da due file di classe Java e un Project Object Model (POM) di Apache Maven.

1. In una directory vuota sul tuo computer o istanza locale, creare la struttura della directory.

   ```
   (root directory name)
       `-- src
            |-- main
            |     `-- java
            `-- test
                  `-- java
   ```

1. Utilizzando un editor di testo a scelta, creare questo file, nominarlo `MessageUtil.java` e quindi salvarlo nella directory `src/main/java`.

   ```
   public class MessageUtil {
     private String message;
   
     public MessageUtil(String message) {
       this.message = message;
     }
   
     public String printMessage() {
       System.out.println(message);
       return message;
     }
   
     public String salutationMessage() {
       message = "Hi!" + message;
       System.out.println(message);
       return message;
     }
   }
   ```

   Questo file di classe crea come output la stringa di caratteri che gli viene trasmessa. Il costruttore `MessageUtil` imposta la stringa di caratteri. Il metodo `printMessage` crea l'output. Il metodo `salutationMessage` restituisce `Hi!` seguito dalla stringa di caratteri.

1. Creare questo file, nominarlo `TestMessageUtil.java` e quindi salvarlo nella directory `/src/test/java`.

   ```
   import org.junit.Test;
   import org.junit.Ignore;
   import static org.junit.Assert.assertEquals;
   
   public class TestMessageUtil {
   
     String message = "Robert";    
     MessageUtil messageUtil = new MessageUtil(message);
      
     @Test
     public void testPrintMessage() {      
       System.out.println("Inside testPrintMessage()");     
       assertEquals(message,messageUtil.printMessage());
     }
   
     @Test
     public void testSalutationMessage() {
       System.out.println("Inside testSalutationMessage()");
       message = "Hi!" + "Robert";
       assertEquals(message,messageUtil.salutationMessage());
     }
   }
   ```

   Questo file di classe imposta la variabile `message` nella classe `MessageUtil` su `Robert`. Quindi effettua dei test per vedere se l'impostazione della variabile `message` è riuscita controllando se le stringhe `Robert` e `Hi!Robert` sono visualizzate nell'output.

1. Creare questo file, denominarlo `pom.xml` e salvarlo nella directory radice (primo livello).

   ```
   <project xmlns="http://maven.apache.org/POM/4.0.0" 
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <groupId>org.example</groupId>
     <artifactId>messageUtil</artifactId>
     <version>1.0</version>
     <packaging>jar</packaging>
     <name>Message Utility Java Sample App</name>
     <dependencies>
       <dependency>
         <groupId>junit</groupId>
         <artifactId>junit</artifactId>
         <version>4.11</version>
         <scope>test</scope>
       </dependency>	
     </dependencies>
     <build>
       <plugins>
         <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-compiler-plugin</artifactId>
           <version>3.8.0</version>
         </plugin>
       </plugins>
     </build>
   </project>
   ```

   Apache Maven utilizza le istruzioni in questo file per convertire i file `MessageUtil.java` e `TestMessageUtil.java` in un file denominato `messageUtil-1.0.jar`, quindi per eseguire i test specificati. 

A questo punto, la tua struttura di directory dovrebbe avere questo aspetto.

```
(root directory name)
    |-- pom.xml
    `-- src
         |-- main
         |     `-- java
         |           `-- MessageUtil.java
         `-- test
               `-- java
                     `-- TestMessageUtil.java
```

### Passaggio 2: creare il file buildspec
<a name="getting-started-create-build-spec-console"></a>

(Fase precedente: [Fase 1: Creare il codice sorgente](#getting-started-create-source-code-console))

In questa fase, crei un file di specifica di compilazione. Un *buildspec* è una raccolta di comandi di compilazione e impostazioni correlate, in formato YAML, che viene utilizzata per eseguire una build. CodeBuild Senza una specifica di compilazione, CodeBuild non è possibile convertire con successo l'input della build in output della build o individuare l'artefatto di output della build nell'ambiente di compilazione per caricarlo nel bucket di output.

Creare questo file, denominarlo `buildspec.yml` e salvarlo nella directory radice (primo livello).

```
version: 0.2

phases:
  install:
    runtime-versions:
      java: corretto11
  pre_build:
    commands:
      - echo Nothing to do in the pre_build phase...
  build:
    commands:
      - echo Build started on `date`
      - mvn install
  post_build:
    commands:
      - echo Build completed on `date`
artifacts:
  files:
    - target/messageUtil-1.0.jar
```

**Importante**  
Poiché una dichiarazione della specifica di compilazione deve essere uno YAML valido, in una dichiarazione della specifica di compilazione è importante la spaziatura. Se il numero di spazi nella dichiarazione della specifica di compilazione non corrisponde a questo, la compilazione potrebbe non riuscire immediatamente. È possibile usare un convalidatore YAML per verificare se la dichiarazione della specifica di compilazione è uno YAML valido. 

**Nota**  
Invece di includere un file di specifica di compilazione nel codice sorgente, è possibile dichiarare i comandi di compilazione separatamente al momento della creazione di un progetto di compilazione. Questa funzione è utile se si desidera creare il codice sorgente con diversi comandi di compilazione senza aggiornare ogni volta l'archivio del codice sorgente. Per ulteriori informazioni, consulta [Sintassi buildspec](build-spec-ref.md#build-spec-ref-syntax).

In questa dichiarazione della specifica di compilazione:
+ `version` rappresenta la versione dello standard di specifica di compilazione utilizzata. Questa dichiarazione della specifica di compilazione utilizza la versione più recente, `0.2`.
+ `phases` rappresenta le fasi di build durante le quali è possibile fornire istruzioni a CodeBuild per eseguire i comandi. Queste fasi di compilazione sono elencate qui come `install`, `pre_build`, `build` e `post_build`. Non puoi modificare l'ortografia dei nomi di queste fasi di compilazione e non puoi creare ulteriori nomi di fasi di compilazione. 

  In questo esempio, durante la `build` fase, CodeBuild esegue il comando. `mvn install` Questo comando fornisce istruzioni a Apache Maven per compilare, testare e creare pacchetti dei file di classe Java in un artefatto di output della compilazione. Per completezza, in questo esempio alcuni comandi `echo` sono posizionati in ciascuna fase di build. Quando più avanti in questo tutorial visualizzerai informazioni build dettagliate, l'output di questi comandi `echo` può aiutarti a comprendere meglio in che modo CodeBuild esegue i comandi e in quale ordine. Anche se tutte le fasi di compilazione sono incluse in questo esempio, non è necessario includere una fase di compilazione se non prevedi di eseguire comandi durante tale fase. Per ogni fase di compilazione, CodeBuild esegue ogni comando specificato, uno alla volta, nell'ordine elencato, dall'inizio alla fine. 
+ `artifacts`rappresenta l'insieme di artefatti di output della build che CodeBuild vengono caricati nel bucket di output. `files`rappresenta i file da includere nell'output della build. CodeBuild carica il singolo `messageUtil-1.0.jar` file trovato nella directory `target` relativa nell'ambiente di compilazione. Il nome del file `messageUtil-1.0.jar` e il nome della directory `target` sono basati sul modo in cui Apache Maven crea e archivia elementi di output di compilazione unicamente per questo esempio. Nelle tue build, questi nomi di file e directory sono differenti. 

Per ulteriori informazioni, consulta [Riferimento per buildspec](build-spec-ref.md).

A questo punto, la tua struttura di directory dovrebbe avere questo aspetto.

```
(root directory name)
    |-- pom.xml
    |-- buildspec.yml
    `-- src
         |-- main
         |     `-- java
         |           `-- MessageUtil.java
         `-- test
               `-- java
                     `-- TestMessageUtil.java
```

### Fase 3: Creare due bucket S3
<a name="getting-started-input-bucket-console"></a>

(Fase precedente: [Passaggio 2: creare il file buildspec](#getting-started-create-build-spec-console))

Anche se è possibile utilizzare un singolo bucket per questo tutorial, due bucket consentono di comprendere più agevolmente la provenienza dell'input della build e la destinazione dell'output della build.
+ Uno di questi bucket archivia l'input di compilazione (il *bucket di input*) archivia l'input della build. In questo tutorial, il nome di questo bucket di input è`codebuild-region-ID-account-ID-input-bucket`, *region-ID* dov'è la AWS regione del bucket e *account-ID* l'ID del tuo account. AWS 
+ L'altro bucket (il *bucket di output*) archivia l'output di compilazione. In questa esercitazione, il nome di questo bucket di output è `codebuild-region-ID-account-ID-output-bucket`.

Se hai scelto nomi diversi per questi bucket, assicurati di usarli in tutto questo tutorial.

Questi due bucket devono trovarsi nella stessa AWS regione delle tue build. Ad esempio, se si richiede di CodeBuild eseguire una build nella regione Stati Uniti orientali (Ohio), anche questi bucket devono trovarsi nella regione Stati Uniti orientali (Ohio).

Per ulteriori informazioni, consulta [Creazione di un bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket.html) nella *Guida per l'utente di Amazon Simple Storage Service*. 

**Nota**  
Sebbene supporti CodeBuild anche gli input di compilazione memorizzati nei CodeCommit repository e Bitbucket, questo tutorial non mostra come usarli. GitHub Per ulteriori informazioni, consulta [Pianifica una compilazione](planning.md).

### Fase 4: caricamento del codice di origine e del file buildspec
<a name="getting-started-upload-source-code-console"></a>

(Fase precedente: [Fase 3: Creare due bucket S3](#getting-started-input-bucket-console))

In questa fase, aggiungi il codice sorgente e il file di specifica di compilazione al bucket di input.

Utilizzando l'utilità zip del tuo sistema operativo, crea un file denominato `MessageUtil.zip` che includa `MessageUtil.java`, `TestMessageUtil.java`, `pom.xml` e `buildspec.yml`. 

La struttura di directory del file `MessageUtil.zip` deve avere il seguente aspetto.

```
MessageUtil.zip
    |-- pom.xml
    |-- buildspec.yml
    `-- src
         |-- main
         |     `-- java
         |           `-- MessageUtil.java
         `-- test
               `-- java
                     `-- TestMessageUtil.java
```

**Importante**  
Non includere la directory `(root directory name)`, ma solo le directory e i file contenuti nella directory `(root directory name)`.

Carica il file `MessageUtil.zip` nel bucket di input denominato `codebuild-region-ID-account-ID-input-bucket`. 

**Importante**  
Per i repository Bitbucket CodeCommit GitHub, per convenzione, è necessario memorizzare un file delle specifiche di compilazione denominato `buildspec.yml` nella radice (livello superiore) di ciascun repository o includere la dichiarazione delle specifiche di compilazione come parte della definizione del progetto di compilazione. Non creare un file ZIP che contiene il codice sorgente dell'archivio e il file della specifica di compilazione.   
Solo per gli input di compilazione archiviati nei bucket S3, è necessario creare un file ZIP che contiene il codice di origine e, per convenzione, un file della specifica di compilazione denominato `buildspec.yml` nel root (livello superiore) o includere la dichiarazione della specifica di compilazione come parte della definizione del progetto di compilazione.  
Se si desidera utilizzare un nome diverso per il file della specifica di compilazione, oppure se si desidera fare riferimento a una specifica di compilazione in un percorso diverso da quello principale, è possibile specificare una sostituzione della specifica di compilazione come parte della definizione del progetto di compilazione. Per ulteriori informazioni, consulta [Nome del file buildspec e posizione di storage](build-spec-ref.md#build-spec-ref-name-storage).

### Fase 5: creazione del progetto di compilazione
<a name="getting-started-create-build-project-console"></a>

(Fase precedente: [Fase 4: caricamento del codice di origine e del file buildspec](#getting-started-upload-source-code-console))

In questo passaggio, crei un progetto di compilazione che AWS CodeBuild utilizza per eseguire la build. Un *progetto di compilazione* include informazioni su come eseguire una build, tra cui dove trovare il codice sorgente, quale ambiente di compilazione utilizzare, quali comandi di compilazione eseguire e dove archiviare l'output della build. Un *ambiente di compilazione* rappresenta una combinazione di sistema operativo, linguaggio di programmazione, runtime e strumenti CodeBuild utilizzati per eseguire una build. L'ambiente di compilazione è espresso come immagine Docker. Per ulteriori informazioni, consulta l'argomento relativo alla [panoramica del Docker](https://docs.docker.com/get-started/overview/) sul sito web Docker Docs. 

Per questo ambiente di compilazione, si richiede di CodeBuild utilizzare un'immagine Docker che contenga una versione del Java Development Kit (JDK) e Apache Maven.<a name="getting-started-create-build-project-console-procedure"></a>

**Per creare il progetto build**

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

1. Usa il selettore di AWS regione per scegliere una AWS regione in cui è supportata. CodeBuild Per ulteriori informazioni, consulta [Endpoint e quote AWS CodeBuild](https://docs.aws.amazon.com/general/latest/gr/rande.html#codebuild_region) nella *Riferimenti generali di Amazon Web Services*.

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. Nella pagina **Create build project (Crea progetto di compilazione)**, in **Project Configuration (Configurazione progetto)**, per **Project name (Nome progetto)**, immetti un nome per questo progetto di compilazione (in questo esempio, `codebuild-demo-project`). I nomi dei progetti di compilazione devono essere univoci per ogni AWS account. Se scegli un nome differente, assicurati di utilizzarlo in tutto il tutorial.
**Nota**  
Nella pagina **Create build project (Crea progetto di compilazione)**, può comparire un messaggio di errore simile al seguente: **You are not authorized to perform this operation (Non sei autorizzato a eseguire questa operazione)**. Ciò è probabilmente dovuto al fatto che hai effettuato l'accesso Console di gestione AWS come utente che non dispone delle autorizzazioni per creare un progetto di compilazione. Per risolvere questo problema, esci da Console di gestione AWS, quindi accedi nuovamente con le credenziali appartenenti a una delle seguenti entità IAM:   
Un utente amministratore nel tuo AWS account. Per ulteriori informazioni, consulta [Creazione del primo utente e gruppo Account AWS root](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started_create-admin-group.html) nella *Guida per l'utente*.
Un utente del tuo AWS account con le `AWSCodeBuildAdminAccess` politiche `IAMFullAccess` gestite collegate a quell'utente o a un gruppo IAM a cui l'utente appartiene. `AmazonS3ReadOnlyAccess` Se nel tuo AWS account non hai un utente o un gruppo con queste autorizzazioni e non riesci ad aggiungere queste autorizzazioni al tuo utente o gruppo, contatta l'amministratore dell' AWS account per ricevere assistenza. Per ulteriori informazioni, consulta [AWS politiche gestite (predefinite) per AWS CodeBuild](auth-and-access-control-iam-identity-based-access-control.md#managed-policies).
Entrambe le opzioni includono le autorizzazioni di amministratore che consentono di creare un progetto di compilazione in modo da poter completare questo tutorial. È consigliabile utilizzare sempre le autorizzazioni minime necessarie per eseguire l'attività. Per ulteriori informazioni, consulta [AWS CodeBuild riferimento alle autorizzazioni](auth-and-access-control-permissions-reference.md).

1. In **Source**, per **provider di origine**, scegli **Amazon S3**.

1. Per **Bucket**, scegli **codebuild- - *region-ID* -input-bucket**. *account-ID*

1.  Per **S3 object key (Chiave oggetto S3)**, immettere **MessageUtil.zip**.

1. In **Environment (Ambiente)**, per **Environment image (Immagine ambiente)**, lasciare selezionato **Managed image (Immagine gestita)**.

1. Per il **sistema operativo**, scegli **Amazon Linux**.

1. In **Runtime(s) (Runtime)**, seleziona **Standard**.

1. Per **Image**, scegli **aws/codebuild/amazonlinux-x86\$164-standard:corretto11**.

1. Alla voce **Service role (Ruolo del servizio)**, lasciare selezionato **New service role (Nuovo ruolo del servizio)** e lasciare immutata la voce **Role name (Nome ruolo)**.

1. Per **Buildspec (Specifica di compilazione)**, lasciare selezionata l'opzione **Use a buildspec file (Utilizza un file buildspec)**.

1. In **Artifacts**, per **Tipo**, scegli Amazon **S3**.

1. Per il **nome del bucket**, scegli **codebuild** - - -output-bucket. *region-ID* *account-ID*

1. Lasciare vuoti i campi **Name (Nome)** e **Path (Percorso)**.

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

### Fase 6: esecuzione della compilazione
<a name="getting-started-run-build-console"></a>

(Fase precedente: [Fase 5: creazione del progetto di compilazione](#getting-started-create-build-project-console))

In questo passaggio, si ordina di eseguire la build con AWS CodeBuild le impostazioni del progetto di compilazione.<a name="getting-started-run-build-console-console-procedure"></a>

**Per eseguire la build**

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 **codebuild-demo-project**, quindi scegli Avvia compilazione.** La compilazione viene avviata immediatamente.

### Fase 7: visualizzazione del riepilogo delle informazioni sulla compilazione
<a name="getting-started-monitor-build-console"></a>

(Fase precedente: [Fase 6: esecuzione della compilazione](#getting-started-run-build-console))

In questa fase, visualizzi un riepilogo delle informazioni sullo stato della compilazione.

#### Per visualizzare un riepilogo delle informazioni sulla compilazione
<a name="getting-started-monitor-build-console-title"></a><a name="getting-started-run-build-console-procedure"></a>

1. Se la *<build-ID>* pagina **codebuild-demo-project:** non è visualizzata, nella barra di navigazione, scegli **Cronologia build**. Quindi, nell'elenco dei progetti di compilazione, per **Project**, scegli il link **Build run** for **codebuild-demo-project**. Deve esserci un solo collegamento corrispondente. Se è stata completato questo tutorial in precedenza, scegliere il collegamento con il valore più recente nella colonna **Completed (Completato)**.

1. Nella pagina di **stato della compilazione**, nei **dettagli della fase**, devono essere visualizzate le seguenti fasi di compilazione, con **Succeeded** nella colonna **Stato**:
   + **SUBMITTED (INVIATO)**
   + **IN CODA**
   + **PROVISIONING**
   + **DOWNLOAD\$1SOURCE**
   + **INSTALL (INSTALLA)**
   + **PRE\$1BUILD**
   + **BUILD**
   + **POST\$1BUILD**
   + **UPLOAD\$1ARTIFACTS (CARICA\$1ARTEFATTO)**
   + **FINALIZING (FINALIZZAZIONE)**
   + **COMPLETED**

   In **Build Status (Stato della compilazione)**, deve essere visualizzato **Succeeded (Riuscito)**.

   Se invece viene visualizzato **In Progress (In corso)**, scegliere il pulsante di aggiornamento. 

1. Accanto a ogni fase di build, il valore **Duration (Durata)** indica la durata della fase di build. Il valore **End time (Ora fine)** indica il momento in cui è terminata quella fase di build.

### Fase 8: visualizzazione di informazioni dettagliate sulla compilazione
<a name="getting-started-build-log-console"></a>

(Fase precedente: [Fase 7: visualizzazione del riepilogo delle informazioni sulla compilazione](#getting-started-monitor-build-console))

In questo passaggio, visualizzi informazioni dettagliate sulla build in CloudWatch Logs.

**Nota**  
 Per proteggere le informazioni riservate, nei CodeBuild log sono nascoste le seguenti informazioni:   
 AWS chiave IDs di accesso. Per ulteriori informazioni, consulta [la sezione Gestione delle chiavi di accesso per gli utenti IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html) nella *Guida per l'AWS Identity and Access Management utente*. 
 Stringhe specificate utilizzando l'archivio parametri. Per ulteriori informazioni, consulta la [procedura dettagliata della console di [Systems Manager Parameter Store](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-paramstore.html) e Systems Manager Parameter Store nella Guida](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-walk.html#sysman-paramstore-console) per l'utente di *Amazon EC2 Systems* Manager. 
 Stringhe specificate utilizzando. Gestione dei segreti AWS Per ulteriori informazioni, consulta [Gestione delle chiavi](security-key-management.md). <a name="getting-started-build-log-console-procedure"></a>

**Per visualizzare informazioni dettagliate sulla compilazione**

1. Con la pagina dei dettagli della compilazione ancora visualizzata dalla fase precedente, le ultime 10.000 righe del log di compilazione vengono visualizzate in **Build logs (Log di compilazione)**. Per visualizzare l'intero registro di compilazione nei CloudWatch registri, scegli il link **Visualizza l'intero registro**. 

1. Nel flusso di CloudWatch log di Logs, puoi sfogliare gli eventi di registro. Per impostazione predefinita, viene visualizzato solo l'ultimo set di eventi di log. Per visualizzare gli eventi di log precedenti, scorrere all'inizio dell'elenco.

1. In questo tutorial, la maggior parte degli eventi di log contengono informazioni dettagliate su come CodeBuild scarica e installa i file delle dipendenze di compilazione nel proprio ambiente di compilazione, cosa che probabilmente non interessa. È possibile utilizzare la casella **Filter events (Filtra eventi)** per ridurre le informazioni visualizzate. Ad esempio, se si immette `"[INFO]"` in **Filter events (Filtra eventi)** vengono visualizzati solo gli eventi contenenti `[INFO]`. Per ulteriori informazioni, consulta [Filter and pattern syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/FilterAndPatternSyntax.html) nella *Amazon CloudWatch User Guide*.

### Fase 9: generazione dell'artefatto di output della compilazione
<a name="getting-started-output-console"></a>

(Fase precedente: [Fase 8: visualizzazione di informazioni dettagliate sulla compilazione](#getting-started-build-log-console))

In questo passaggio, ottieni il `messageUtil-1.0.jar` file CodeBuild creato e caricato nel bucket di output.

Puoi utilizzare la CodeBuild console o la console Amazon S3 per completare questo passaggio.



**Per ottenere l'artefatto di output della build (console)AWS CodeBuild**

1. Con la CodeBuild console ancora aperta e la pagina dei dettagli della build ancora visualizzata nel passaggio precedente, scegli la scheda **Dettagli della build** e scorri verso il basso fino alla sezione **Artefatti**. 
**Nota**  
Se la pagina dei dettagli della build non è visualizzata, nella barra di navigazione, scegli **Cronologia build**, quindi scegli il link **Build run**.

1. Il link alla cartella Amazon S3 si trova nella posizione di caricamento degli **artefatti**. Questo collegamento apre la cartella in Amazon S3 in cui si trova il file degli artefatti di output della `messageUtil-1.0.jar` build.

**Per ottenere l'elemento di output della build (console Amazon S3)**

1. Apri la console Amazon S3 all'indirizzo. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)

1. Aprire `codebuild-region-ID-account-ID-output-bucket`.

1. Aprire la cartella `codebuild-demo-project`.

1. Aprire la cartella `target`, contenente il file dell'artefatto di output di compilazione `messageUtil-1.0.jar`.

### Passaggio 10: eliminare i bucket S3
<a name="getting-started-clean-up-console"></a>

(Fase precedente: [Fase 9: generazione dell'artefatto di output della compilazione](#getting-started-output-console))

Per evitare addebiti continui AWS sul tuo account, puoi eliminare i bucket di input e output utilizzati in questo tutorial. Per istruzioni, consulta [Eliminare o svuotare un bucket nella Guida per l'utente](https://docs.aws.amazon.com/AmazonS3/latest/userguide/delete-or-empty-bucket.html) di *Amazon Simple Storage Service*.

Se utilizzi l'utente IAM o un utente IAM amministratore per eliminare questi bucket, l'utente deve disporre di più autorizzazioni di accesso. Aggiungi la seguente istruzione tra i marker (*\$1\$1\$1 BEGIN ADDING STATEMENT HERE \$1\$1\$1*e*\$1\$1\$1 END ADDING STATEMENTS HERE \$1\$1\$1*) a una politica di accesso esistente per l'utente. 

Le ellissi (...) in questa affermazione sono usate per brevità. Non rimuovere nessuna istruzione nella policy di accesso esistente. Non immettere queste ellissi nella policy.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:DeleteBucket",
        "s3:DeleteObject"
      ],
      "Resource": "*"
    }
  ]
}
```

------

### Wrapping
<a name="getting-started-next-steps-console"></a>



In questo tutorial, creavi AWS CodeBuild un set di file di classe Java in un file JAR. Quindi hai visualizzato i risultati della compilazione.

Ora puoi provare a utilizzarlo CodeBuild nei tuoi scenari. Segui le istruzioni in [Pianifica una compilazione](planning.md). Se non ti senti ancora pronto, puoi provare a compilare alcuni degli esempi. Per ulteriori informazioni, consulta [Usa esempi basati su casi per CodeBuild](use-case-based-samples.md). 

## Guida introduttiva all' AWS CodeBuild utilizzo di AWS CLI
<a name="getting-started-cli"></a>

*In questo tutorial, si utilizza AWS CodeBuild per creare una raccolta di file di input di codice sorgente di esempio (chiamati *build input artifacts* o *build input*) in una versione distribuibile del codice sorgente (chiamata *build output artifact o build output*).* In particolare, si richiede di CodeBuild utilizzare Apache Maven, uno strumento di compilazione comune, per creare un set di file di classe Java in un file Java Archive (JAR). Non è necessario avere familiarità con Apache Maven o Java per completare questa procedura guidata.

È possibile utilizzare CodeBuild tramite la CodeBuild console, il AWS CodePipeline, o il AWS CLI. AWS SDKs Questo tutorial mostra come utilizzare CodeBuild con. AWS CLI Per informazioni sull'utilizzo CodePipeline, vedere[Usa CodeBuild con CodePipeline](how-to-create-pipeline.md).

**Importante**  
I passaggi di questo tutorial richiedono la creazione di risorse (ad esempio un bucket S3) che potrebbero comportare addebiti sul tuo AWS account. Questi includono eventuali addebiti per CodeBuild e per AWS risorse e azioni relative ad Amazon S3 e AWS KMS CloudWatch Logs. Per ulteriori informazioni, consulta [CodeBuildi prezzi, i prezzi](https://aws.amazon.com/codebuild/pricing) di [Amazon S3, i prezzi](https://aws.amazon.com/s3/pricing) e [AWS Key Management Service i prezzi](https://aws.amazon.com/kms/pricing) di [Amazon CloudWatch ](https://aws.amazon.com/cloudwatch/pricing).

**Topics**
+ [

### Fase 1: Creare il codice sorgente
](#getting-started-cli-create-source-code)
+ [

### Passaggio 2: creare il file buildspec
](#getting-started-cli-create-build-spec)
+ [

### Fase 3: Creare due bucket S3
](#getting-started-cli-input-bucket)
+ [

### Fase 4: caricamento del codice di origine e del file buildspec
](#getting-started-cli-upload-source-code)
+ [

### Fase 5: creazione del progetto di compilazione
](#getting-started-cli-create-build-project)
+ [

### Fase 6: esecuzione della compilazione
](#getting-started-cli-run-build)
+ [

### Fase 7: visualizzazione del riepilogo delle informazioni sulla compilazione
](#getting-started-cli-monitor-build)
+ [

### Fase 8: visualizzazione di informazioni dettagliate sulla compilazione
](#getting-started-cli-build-log)
+ [

### Fase 9: generazione dell'artefatto di output della compilazione
](#getting-started-cli-output)
+ [

### Passaggio 10: eliminare i bucket S3
](#getting-started-cli-clean-up)
+ [

### Wrapping
](#getting-started-cli-next-steps)

### Fase 1: Creare il codice sorgente
<a name="getting-started-cli-create-source-code"></a>

(Parte di: [Guida introduttiva all' AWS CodeBuild utilizzo di AWS CLI](#getting-started-cli))

In questo passaggio, crei il codice sorgente che desideri CodeBuild inserire nel bucket di output. Questo codice sorgente è costituito da due file di classe Java e un Project Object Model (POM) di Apache Maven.

1. In una directory vuota sul tuo computer o istanza locale, creare la struttura della directory.

   ```
   (root directory name)
       `-- src
            |-- main
            |     `-- java
            `-- test
                  `-- java
   ```

1. Utilizzando un editor di testo a scelta, creare questo file, nominarlo `MessageUtil.java` e quindi salvarlo nella directory `src/main/java`.

   ```
   public class MessageUtil {
     private String message;
   
     public MessageUtil(String message) {
       this.message = message;
     }
   
     public String printMessage() {
       System.out.println(message);
       return message;
     }
   
     public String salutationMessage() {
       message = "Hi!" + message;
       System.out.println(message);
       return message;
     }
   }
   ```

   Questo file di classe crea come output la stringa di caratteri che gli viene trasmessa. Il costruttore `MessageUtil` imposta la stringa di caratteri. Il metodo `printMessage` crea l'output. Il metodo `salutationMessage` restituisce `Hi!` seguito dalla stringa di caratteri.

1. Creare questo file, nominarlo `TestMessageUtil.java` e quindi salvarlo nella directory `/src/test/java`.

   ```
   import org.junit.Test;
   import org.junit.Ignore;
   import static org.junit.Assert.assertEquals;
   
   public class TestMessageUtil {
   
     String message = "Robert";    
     MessageUtil messageUtil = new MessageUtil(message);
      
     @Test
     public void testPrintMessage() {      
       System.out.println("Inside testPrintMessage()");     
       assertEquals(message,messageUtil.printMessage());
     }
   
     @Test
     public void testSalutationMessage() {
       System.out.println("Inside testSalutationMessage()");
       message = "Hi!" + "Robert";
       assertEquals(message,messageUtil.salutationMessage());
     }
   }
   ```

   Questo file di classe imposta la variabile `message` nella classe `MessageUtil` su `Robert`. Quindi effettua dei test per vedere se l'impostazione della variabile `message` è riuscita controllando se le stringhe `Robert` e `Hi!Robert` sono visualizzate nell'output.

1. Creare questo file, denominarlo `pom.xml` e salvarlo nella directory radice (primo livello).

   ```
   <project xmlns="http://maven.apache.org/POM/4.0.0" 
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <groupId>org.example</groupId>
     <artifactId>messageUtil</artifactId>
     <version>1.0</version>
     <packaging>jar</packaging>
     <name>Message Utility Java Sample App</name>
     <dependencies>
       <dependency>
         <groupId>junit</groupId>
         <artifactId>junit</artifactId>
         <version>4.11</version>
         <scope>test</scope>
       </dependency>	
     </dependencies>
     <build>
       <plugins>
         <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-compiler-plugin</artifactId>
           <version>3.8.0</version>
         </plugin>
       </plugins>
     </build>
   </project>
   ```

   Apache Maven utilizza le istruzioni in questo file per convertire i file `MessageUtil.java` e `TestMessageUtil.java` in un file denominato `messageUtil-1.0.jar`, quindi per eseguire i test specificati. 

A questo punto, la tua struttura di directory dovrebbe avere questo aspetto.

```
(root directory name)
    |-- pom.xml
    `-- src
         |-- main
         |     `-- java
         |           `-- MessageUtil.java
         `-- test
               `-- java
                     `-- TestMessageUtil.java
```

### Passaggio 2: creare il file buildspec
<a name="getting-started-cli-create-build-spec"></a>

(Fase precedente: [Fase 1: Creare il codice sorgente](#getting-started-cli-create-source-code))

In questa fase, crei un file di specifica di compilazione. Un *buildspec* è una raccolta di comandi di compilazione e impostazioni correlate, in formato YAML, che viene utilizzata per eseguire una build. CodeBuild Senza una specifica di compilazione, CodeBuild non è possibile convertire con successo l'input della build in output della build o individuare l'artefatto di output della build nell'ambiente di compilazione per caricarlo nel bucket di output.

Creare questo file, denominarlo `buildspec.yml` e salvarlo nella directory radice (primo livello).

```
version: 0.2

phases:
  install:
    runtime-versions:
      java: corretto11
  pre_build:
    commands:
      - echo Nothing to do in the pre_build phase...
  build:
    commands:
      - echo Build started on `date`
      - mvn install
  post_build:
    commands:
      - echo Build completed on `date`
artifacts:
  files:
    - target/messageUtil-1.0.jar
```

**Importante**  
Poiché una dichiarazione della specifica di compilazione deve essere uno YAML valido, in una dichiarazione della specifica di compilazione è importante la spaziatura. Se il numero di spazi nella dichiarazione della specifica di compilazione non corrisponde a questo, la compilazione potrebbe non riuscire immediatamente. È possibile usare un convalidatore YAML per verificare se la dichiarazione della specifica di compilazione è uno YAML valido. 

**Nota**  
Invece di includere un file di specifica di compilazione nel codice sorgente, è possibile dichiarare i comandi di compilazione separatamente al momento della creazione di un progetto di compilazione. Questa funzione è utile se si desidera creare il codice sorgente con diversi comandi di compilazione senza aggiornare ogni volta l'archivio del codice sorgente. Per ulteriori informazioni, consulta [Sintassi buildspec](build-spec-ref.md#build-spec-ref-syntax).

In questa dichiarazione della specifica di compilazione:
+ `version` rappresenta la versione dello standard di specifica di compilazione utilizzata. Questa dichiarazione della specifica di compilazione utilizza la versione più recente, `0.2`.
+ `phases` rappresenta le fasi di build durante le quali è possibile fornire istruzioni a CodeBuild per eseguire i comandi. Queste fasi di compilazione sono elencate qui come `install`, `pre_build`, `build` e `post_build`. Non puoi modificare l'ortografia dei nomi di queste fasi di compilazione e non puoi creare ulteriori nomi di fasi di compilazione. 

  In questo esempio, durante la `build` fase, CodeBuild esegue il comando. `mvn install` Questo comando fornisce istruzioni a Apache Maven per compilare, testare e creare pacchetti dei file di classe Java in un artefatto di output della compilazione. Per completezza, in questo esempio alcuni comandi `echo` sono posizionati in ciascuna fase di build. Quando più avanti in questo tutorial visualizzerai informazioni build dettagliate, l'output di questi comandi `echo` può aiutarti a comprendere meglio in che modo CodeBuild esegue i comandi e in quale ordine. Anche se tutte le fasi di compilazione sono incluse in questo esempio, non è necessario includere una fase di compilazione se non prevedi di eseguire comandi durante tale fase. Per ogni fase di compilazione, CodeBuild esegue ogni comando specificato, uno alla volta, nell'ordine elencato, dall'inizio alla fine. 
+ `artifacts`rappresenta l'insieme di artefatti di output della build che CodeBuild vengono caricati nel bucket di output. `files`rappresenta i file da includere nell'output della build. CodeBuild carica il singolo `messageUtil-1.0.jar` file trovato nella directory `target` relativa nell'ambiente di compilazione. Il nome del file `messageUtil-1.0.jar` e il nome della directory `target` sono basati sul modo in cui Apache Maven crea e archivia elementi di output di compilazione unicamente per questo esempio. Nelle tue build, questi nomi di file e directory sono differenti. 

Per ulteriori informazioni, consulta [Riferimento per buildspec](build-spec-ref.md).

A questo punto, la tua struttura di directory dovrebbe avere questo aspetto.

```
(root directory name)
    |-- pom.xml
    |-- buildspec.yml
    `-- src
         |-- main
         |     `-- java
         |           `-- MessageUtil.java
         `-- test
               `-- java
                     `-- TestMessageUtil.java
```

### Fase 3: Creare due bucket S3
<a name="getting-started-cli-input-bucket"></a>

(Fase precedente: [Passaggio 2: creare il file buildspec](#getting-started-cli-create-build-spec))

Anche se è possibile utilizzare un singolo bucket per questo tutorial, due bucket consentono di comprendere più agevolmente la provenienza dell'input della build e la destinazione dell'output della build.
+ Uno di questi bucket archivia l'input di compilazione (il *bucket di input*) archivia l'input della build. In questo tutorial, il nome di questo bucket di input è`codebuild-region-ID-account-ID-input-bucket`, *region-ID* dov'è la AWS regione del bucket e *account-ID* l'ID del tuo account. AWS 
+ L'altro bucket (il *bucket di output*) archivia l'output di compilazione. In questa esercitazione, il nome di questo bucket di output è `codebuild-region-ID-account-ID-output-bucket`.

Se hai scelto nomi diversi per questi bucket, assicurati di usarli in tutto questo tutorial.

Questi due bucket devono trovarsi nella stessa AWS regione delle tue build. Ad esempio, se si richiede di CodeBuild eseguire una build nella regione Stati Uniti orientali (Ohio), anche questi bucket devono trovarsi nella regione Stati Uniti orientali (Ohio).

Per ulteriori informazioni, consulta [Creazione di un bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket.html) nella *Guida per l'utente di Amazon Simple Storage Service*. 

**Nota**  
Sebbene supporti CodeBuild anche gli input di compilazione memorizzati nei CodeCommit repository e Bitbucket, questo tutorial non mostra come usarli. GitHub Per ulteriori informazioni, consulta [Pianifica una compilazione](planning.md).

### Fase 4: caricamento del codice di origine e del file buildspec
<a name="getting-started-cli-upload-source-code"></a>

(Fase precedente: [Fase 3: Creare due bucket S3](#getting-started-cli-input-bucket))

In questa fase, aggiungi il codice sorgente e il file di specifica di compilazione al bucket di input.

Utilizzando l'utilità zip del tuo sistema operativo, crea un file denominato `MessageUtil.zip` che includa `MessageUtil.java`, `TestMessageUtil.java`, `pom.xml` e `buildspec.yml`. 

La struttura di directory del file `MessageUtil.zip` deve avere il seguente aspetto.

```
MessageUtil.zip
    |-- pom.xml
    |-- buildspec.yml
    `-- src
         |-- main
         |     `-- java
         |           `-- MessageUtil.java
         `-- test
               `-- java
                     `-- TestMessageUtil.java
```

**Importante**  
Non includere la directory `(root directory name)`, ma solo le directory e i file contenuti nella directory `(root directory name)`.

Carica il file `MessageUtil.zip` nel bucket di input denominato `codebuild-region-ID-account-ID-input-bucket`. 

**Importante**  
Per i repository Bitbucket CodeCommit GitHub, per convenzione, è necessario memorizzare un file delle specifiche di compilazione denominato `buildspec.yml` nella radice (livello superiore) di ciascun repository o includere la dichiarazione delle specifiche di compilazione come parte della definizione del progetto di compilazione. Non creare un file ZIP che contiene il codice sorgente dell'archivio e il file della specifica di compilazione.   
Solo per gli input di compilazione archiviati nei bucket S3, è necessario creare un file ZIP che contiene il codice di origine e, per convenzione, un file della specifica di compilazione denominato `buildspec.yml` nel root (livello superiore) o includere la dichiarazione della specifica di compilazione come parte della definizione del progetto di compilazione.  
Se si desidera utilizzare un nome diverso per il file della specifica di compilazione, oppure se si desidera fare riferimento a una specifica di compilazione in un percorso diverso da quello principale, è possibile specificare una sostituzione della specifica di compilazione come parte della definizione del progetto di compilazione. Per ulteriori informazioni, consulta [Nome del file buildspec e posizione di storage](build-spec-ref.md#build-spec-ref-name-storage).

### Fase 5: creazione del progetto di compilazione
<a name="getting-started-cli-create-build-project"></a>

(Fase precedente: [Fase 4: caricamento del codice di origine e del file buildspec](#getting-started-cli-upload-source-code))

In questo passaggio, crei un progetto di compilazione che AWS CodeBuild utilizza per eseguire la build. Un *progetto di compilazione* include informazioni su come eseguire una build, tra cui dove trovare il codice sorgente, quale ambiente di compilazione utilizzare, quali comandi di compilazione eseguire e dove archiviare l'output della build. Un *ambiente di compilazione* rappresenta una combinazione di sistema operativo, linguaggio di programmazione, runtime e strumenti CodeBuild utilizzati per eseguire una build. L'ambiente di compilazione è espresso come immagine Docker. Per ulteriori informazioni, consulta l'argomento relativo alla [panoramica del Docker](https://docs.docker.com/get-started/overview/) sul sito web Docker Docs. 

Per questo ambiente di compilazione, si richiede di CodeBuild utilizzare un'immagine Docker che contenga una versione del Java Development Kit (JDK) e Apache Maven.<a name="getting-started-cli-create-build-project-cli"></a>

**Per creare il progetto build**

1. Usa il per eseguire il comando: AWS CLI **create-project**

   ```
   aws codebuild create-project --generate-cli-skeleton
   ```

   Nell'output vengono visualizzati dati in formato JSON. Copia i dati in un file denominato `create-project.json` in una posizione sul computer o sull'istanza locale in cui AWS CLI è installato. Se si sceglie di utilizzare un nome di file diverso, assicurarsi di utilizzarlo durante tutto il tutorial.

   Modificare i dati copiati per seguire questo formato, quindi salvare i risultati:

   ```
   {
     "name": "codebuild-demo-project",
     "source": {
       "type": "S3",
       "location": "codebuild-region-ID-account-ID-input-bucket/MessageUtil.zip"
     },
     "artifacts": {
       "type": "S3",
       "location": "codebuild-region-ID-account-ID-output-bucket"
     },
     "environment": {
       "type": "LINUX_CONTAINER",
       "image": "aws/codebuild/standard:5.0",
       "computeType": "BUILD_GENERAL1_SMALL"
     },
     "serviceRole": "serviceIAMRole"
   }
   ```

   Sostituisci *serviceIAMRole* con l'Amazon Resource Name (ARN) di un ruolo di CodeBuild servizio (ad esempio,`arn:aws:iam::account-ID:role/role-name`). Per crearne uno, consulta [Consenti CodeBuild di interagire con altri servizi AWS](setting-up-service-role.md).

   In questi dati:
   + `name` rappresenta un identificatore necessario per questo progetto di compilazione (in questo esempio, `codebuild-demo-project`). I nomi dei progetti di compilazione devono essere univoci per tutti i progetti di compilazione nel tuo account. 
   + For`source`, `type` è un valore obbligatorio che rappresenta il tipo di repository del codice sorgente (in questo esempio, `S3` per un bucket Amazon S3).
   + Per `source`, `location` rappresenta il percorso per il codice sorgente (in questo esempio, il nome del bucket di input seguito dal nome del file ZIP).
   + For`artifacts`, `type` è un valore obbligatorio che rappresenta il tipo di repository dell'elemento di output della build (in questo esempio, `S3` per un bucket Amazon S3).
   + Per `artifacts`, `location` rappresenta il nome del bucket di output creato o identificato in precedenza (in questo esempio, `codebuild-region-ID-account-ID-output-bucket`).
   + For`environment`, `type` è un valore obbligatorio che rappresenta il tipo di ambiente di compilazione (in questo esempio,). `LINUX_CONTAINER`
   + For`environment`, `image` è un valore obbligatorio che rappresenta il nome dell'immagine Docker e la combinazione di tag utilizzata da questo progetto di build, come specificato dal tipo di repository di immagini Docker (in questo esempio, `aws/codebuild/standard:5.0` per un'immagine Docker nel repository di immagini CodeBuild Docker). `aws/codebuild/standard`è il nome dell'immagine Docker. `5.0`è il tag dell'immagine Docker. 

     Per trovare più immagini Docker da utilizzare negli scenari, consulta il [Riferimento ambiente di compilazione](build-env-ref.md).
   + For`environment`, `computeType` è un valore obbligatorio che rappresenta le risorse di elaborazione CodeBuild utilizzate (in questo esempio,`BUILD_GENERAL1_SMALL`).
**Nota**  
Altri valori disponibili nel formato JSON originale dei dati, ad esempio `description`, `buildspec`, `auth` (inclusi `type` e `resource`), `path`, `namespaceType`, `name` (per `artifacts`), `packaging`, `environmentVariables` (inclusi `name` e `value`), `timeoutInMinutes`, `encryptionKey` e `tags` (inclusi `key` e `value`) sono facoltativi. Non vengono utilizzati in questo tutorial, perciò non vengono mostrati qui. Per ulteriori informazioni, consulta [Creazione di un progetto di compilazione (AWS CLI)](create-project.md#create-project-cli).

1. Passare alla directory contenente il file appena salvato, quindi eseguire nuovamente il comando **create-project**.

   ```
   aws codebuild create-project --cli-input-json file://create-project.json
   ```

   Se l'operazione ha esito positivo, dati simili a questo appaiono nell'output.

   ```
   {
     "project": {
       "name": "codebuild-demo-project",
       "serviceRole": "serviceIAMRole",
       "tags": [],
       "artifacts": {
         "packaging": "NONE",
         "type": "S3",
         "location": "codebuild-region-ID-account-ID-output-bucket",
         "name": "message-util.zip"
       },
       "lastModified": 1472661575.244,
       "timeoutInMinutes": 60,
       "created": 1472661575.244,
       "environment": {
         "computeType": "BUILD_GENERAL1_SMALL",
         "image": "aws/codebuild/standard:5.0",
         "type": "LINUX_CONTAINER",
         "environmentVariables": []
       },
       "source": {
         "type": "S3",
         "location": "codebuild-region-ID-account-ID-input-bucket/MessageUtil.zip"
       },
       "encryptionKey": "arn:aws:kms:region-ID:account-ID:alias/aws/s3",
       "arn": "arn:aws:codebuild:region-ID:account-ID:project/codebuild-demo-project"
     }
   }
   ```
   + `project` rappresenta le informazioni su questo progetto di compilazione.
     + `tags` rappresenta tutti i tag dichiarati.
     + `packaging` rappresenta il modo in cui l'elemento di output di compilazione viene archiviato nel bucket di output. `NONE` significa che una cartella viene creata nel bucket di output. L'elemento di output di compilazione viene archiviato in questa cartella.
     + `lastModified` rappresenta l'orario, in formato Unix, in cui le informazioni sul progetto di compilazione sono state modificate l'ultima volta.
     + `timeoutInMinutes`rappresenta il numero di minuti trascorsi i quali CodeBuild interrompe la compilazione se la compilazione non è stata completata. Il valore predefinito è 60 minuti.
     + `created` rappresenta l'orario, in formato Unix, in cui il progetto di compilazione è stato creato.
     + `environmentVariables`rappresenta tutte le variabili di ambiente dichiarate e disponibili CodeBuild per l'uso durante la compilazione.
     + `encryptionKey`rappresenta l'ARN della chiave gestita dal cliente CodeBuild utilizzata per crittografare l'artefatto di output della build.
     + `arn` rappresenta l'ARN del progetto di compilazione.

**Nota**  
Dopo aver eseguito il **create-project** comando, potrebbe essere emesso un messaggio di errore simile al seguente: **Utente: non autorizzato a eseguire: *user-ARN*** codebuild:. CreateProject Ciò è probabilmente dovuto al fatto che lo hai configurato AWS CLI con le credenziali di un utente che non dispone di autorizzazioni sufficienti da utilizzare per CodeBuild creare progetti di compilazione. Per risolvere questo problema, configura AWS CLI con credenziali appartenenti a una delle seguenti entità IAM:   
Un utente amministratore nel tuo AWS account. Per ulteriori informazioni, consulta [Creazione del primo utente e gruppo Account AWS root](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started_create-admin-group.html) nella *Guida per l'utente*.
Un utente del tuo AWS account con le `AWSCodeBuildAdminAccess` politiche `IAMFullAccess` gestite collegate a quell'utente o a un gruppo IAM a cui l'utente appartiene. `AmazonS3ReadOnlyAccess` Se nel tuo AWS account non hai un utente o un gruppo con queste autorizzazioni e non riesci ad aggiungere queste autorizzazioni al tuo utente o gruppo, contatta l'amministratore dell' AWS account per ricevere assistenza. Per ulteriori informazioni, consulta [AWS politiche gestite (predefinite) per AWS CodeBuild](auth-and-access-control-iam-identity-based-access-control.md#managed-policies).

### Fase 6: esecuzione della compilazione
<a name="getting-started-cli-run-build"></a>

(Fase precedente: [Fase 5: creazione del progetto di compilazione](#getting-started-cli-create-build-project))

In questo passaggio, si ordina di AWS CodeBuild eseguire la build con le impostazioni del progetto di compilazione.<a name="getting-started-run-build-cli"></a>

**Per eseguire la build**

1. Usa il AWS CLI per eseguire il **start-build** comando:

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

   Sostituiscilo *project-name* con il nome del progetto di build del passaggio precedente (ad esempio,`codebuild-demo-project`).

1. Se eseguito correttamente, nell'output compaiono dei dati simili ai seguenti:

   ```
   {
     "build": { 
       "buildComplete": false,
       "initiator": "user-name",   
       "artifacts": { 
         "location": "arn:aws:s3:::codebuild-region-ID-account-ID-output-bucket/message-util.zip"
       },
       "projectName": "codebuild-demo-project",
       "timeoutInMinutes": 60, 
       "buildStatus": "IN_PROGRESS",
       "environment": {
         "computeType": "BUILD_GENERAL1_SMALL",
         "image": "aws/codebuild/standard:5.0",
         "type": "LINUX_CONTAINER",
         "environmentVariables": []
       },
       "source": {
         "type": "S3",
         "location": "codebuild-region-ID-account-ID-input-bucket/MessageUtil.zip"
       },
       "currentPhase": "SUBMITTED",
       "startTime": 1472848787.882,
       "id": "codebuild-demo-project:0cfbb6ec-3db9-4e8c-992b-1ab28EXAMPLE",
       "arn": "arn:aws:codebuild:region-ID:account-ID:build/codebuild-demo-project:0cfbb6ec-3db9-4e8c-992b-1ab28EXAMPLE"    
     }
   }
   ```
   + `build` rappresenta le informazioni su questa compilazione.
     + `buildComplete` indica se la compilazione è stata completata (`true`). In caso contrario, `false`.
     + `initiator` rappresenta l'entità che ha avviato la compilazione.
     + `artifacts` rappresenta le informazioni sull'output di compilazione, tra cui la posizione.
     + `projectName` rappresenta il nome del progetto di compilazione.
     + `buildStatus` rappresenta l'attuale stato della compilazione nel momento in cui il comando **start-build** è stato eseguito.
     + `currentPhase` rappresenta la fase di compilazione attuale nel momento in cui il comando **start-build** è stato eseguito.
     + `startTime` rappresenta l'orario, in formato Unix, in cui il processo di compilazione è stato avviato.
     + `id` rappresenta l'ID della compilazione.
     + `arn` rappresenta l'ARN della compilazione.

   Annotare il valore `id`. Questo valore servirà nella fase successiva.

### Fase 7: visualizzazione del riepilogo delle informazioni sulla compilazione
<a name="getting-started-cli-monitor-build"></a>

(Fase precedente: [Fase 6: esecuzione della compilazione](#getting-started-cli-run-build))

In questa fase, visualizzi un riepilogo delle informazioni sullo stato della compilazione.<a name="getting-started-cli-monitor-build-cli"></a>

**Per visualizzare un riepilogo delle informazioni sulla compilazione**
+ Usa il AWS CLI per eseguire il **batch-get-builds** comando.

  ```
  aws codebuild batch-get-builds --ids id
  ```

  Sostituisci *id* con il `id` valore visualizzato nell'output del passaggio precedente.

  Se l'operazione ha esito positivo, dati simili a questo appaiono nell'output.

  ```
  {
    "buildsNotFound": [],
    "builds": [
      {
        "buildComplete": true,
        "phases": [
          {
            "phaseStatus": "SUCCEEDED",
            "endTime": 1472848788.525,
            "phaseType": "SUBMITTED",
            "durationInSeconds": 0,
            "startTime": 1472848787.882
          },
          ... The full list of build phases has been omitted for brevity ...
          {
            "phaseType": "COMPLETED",
            "startTime": 1472848878.079
          }
        ],
        "logs": {
          "groupName": "/aws/codebuild/codebuild-demo-project",
          "deepLink": "https://console.aws.amazon.com/cloudwatch/home?region=region-ID#logEvent:group=/aws/codebuild/codebuild-demo-project;stream=38ca1c4a-e9ca-4dbc-bef1-d52bfEXAMPLE",
          "streamName": "38ca1c4a-e9ca-4dbc-bef1-d52bfEXAMPLE"
        },
        "artifacts": {
          "md5sum": "MD5-hash",
          "location": "arn:aws:s3:::codebuild-region-ID-account-ID-output-bucket/message-util.zip",
          "sha256sum": "SHA-256-hash"
        },
        "projectName": "codebuild-demo-project",
        "timeoutInMinutes": 60,
        "initiator": "user-name",
        "buildStatus": "SUCCEEDED",
        "environment": {
          "computeType": "BUILD_GENERAL1_SMALL",
          "image": "aws/codebuild/standard:5.0",
          "type": "LINUX_CONTAINER",
          "environmentVariables": []
        },
        "source": {
          "type": "S3",
          "location": "codebuild-region-ID-account-ID-input-bucket/MessageUtil.zip"
        },
        "currentPhase": "COMPLETED",
        "startTime": 1472848787.882,
        "endTime": 1472848878.079,
        "id": "codebuild-demo-project:38ca1c4a-e9ca-4dbc-bef1-d52bfEXAMPLE",
        "arn": "arn:aws:codebuild:region-ID:account-ID:build/codebuild-demo-project:38ca1c4a-e9ca-4dbc-bef1-d52bfEXAMPLE"      
      }
    ]
  }
  ```
  + `buildsNotFound`rappresenta la build IDs per tutte le build in cui le informazioni non sono disponibili. In questo esempio, deve essere vuoto.
  + `builds` rappresenta le informazioni su ogni build di sono disponibili informazioni. In questo esempio, nell'output appaiono informazioni relative a una sola compilazione.
    + `phases` rappresenta il set di fasi di compilazione che CodeBuild esegue durante il processo di compilazione. Le informazioni su ogni fase di compilazione sono elencate separatamente come `startTime`, `endTime` e `durationInSeconds` (l'orario in cui la fase di compilazione è stata avviata ed è terminata, espresso in formato Unix, e della sua durata in secondi), ma anche `phaseType`, ad esempio (`SUBMITTED`, `PROVISIONING`, `DOWNLOAD_SOURCE`, `INSTALL`, `PRE_BUILD`, `BUILD`, `POST_BUILD`, `UPLOAD_ARTIFACTS`, `FINALIZING` o `COMPLETED`) e `phaseStatus` (ad esempio, `SUCCEEDED`, `FAILED`, `FAULT`, `TIMED_OUT`, `IN_PROGRESS` o `STOPPED`). La prima volta che esegui il comando **batch-get-builds**, potrebbero esserci poche fasi (o nessuna). Dopo esecuzioni successive del comando **batch-get-builds** con lo stesso ID di compilazione, nell'output dovrebbero essere visualizzate più fasi di compilazione.
    + `logs`rappresenta informazioni in Amazon CloudWatch Logs sui log della build.
    + `md5sum` MD5 e `sha256sum` rappresentano gli hash SHA-256 dell'artefatto di output della build. Questi appaiono nell'output solo se il valore `packaging` del progetto di compilazione è impostato su `ZIP`. Non hai impostato tale valore in questo tutorial. Puoi utilizzare questi hash insieme a uno strumento di checksum per la conferma sia dell'integrità sia dell'autenticità dei file.
**Nota**  
Puoi anche utilizzare la console Amazon S3 per visualizzare questi hash. Seleziona la casella accanto all'artefatto di output della compilazione, scegli **Actions (Operazioni)**, quindi **Properties (Proprietà)**. **Nel riquadro **Proprietà**, espandi **Metadati** e visualizza i valori per **x-amz-meta-codebuild-content-md5 e -content-sha256**. x-amz-meta-codebuild** (Nella console Amazon S3, il **ETag**valore dell'artefatto di output della build non deve essere interpretato come l'hash MD5 o SHA-256.)  
Se usi il AWS SDKs per ottenere questi hash, i valori sono denominati e. `codebuild-content-md5` `codebuild-content-sha256` 
    + `endTime` rappresenta l'orario, in formato Unix, in cui il processo di compilazione è terminato.
**Nota**  
I metadati di Amazon S3 hanno un' CodeBuild intestazione denominata `x-amz-meta-codebuild-buildarn` che contiene la CodeBuild build che pubblica gli `buildArn` artefatti su Amazon S3. `buildArn`Viene aggiunto per consentire il tracciamento della fonte per le notifiche e per fare riferimento alla build da cui viene generato l'artefatto.

### Fase 8: visualizzazione di informazioni dettagliate sulla compilazione
<a name="getting-started-cli-build-log"></a>

(Fase precedente: [Fase 7: visualizzazione del riepilogo delle informazioni sulla compilazione](#getting-started-cli-monitor-build))

In questo passaggio, visualizzerai informazioni dettagliate sulla tua build in CloudWatch Logs.

**Nota**  
 Per proteggere le informazioni riservate, nei CodeBuild log sono nascoste le seguenti informazioni:   
 AWS chiave IDs di accesso. Per ulteriori informazioni, consulta [la sezione Gestione delle chiavi di accesso per gli utenti IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html) nella *Guida per l'AWS Identity and Access Management utente*. 
 Stringhe specificate utilizzando l'archivio parametri. Per ulteriori informazioni, consulta la [procedura dettagliata della console di [Systems Manager Parameter Store](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-paramstore.html) e Systems Manager Parameter Store nella Guida](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-walk.html#sysman-paramstore-console) per l'utente di *Amazon EC2 Systems* Manager. 
 Stringhe specificate utilizzando. Gestione dei segreti AWS Per ulteriori informazioni, consulta [Gestione delle chiavi](security-key-management.md). <a name="getting-started-cli-build-log-cli"></a>

**Per visualizzare informazioni dettagliate sulla compilazione**

1. Utilizzare il browser Web per accedere alla posizione `deepLink` apparsa nell'output nella fase precedente (ad esempio, `https://console.aws.amazon.com/cloudwatch/home?region=region-ID#logEvent:group=/aws/codebuild/codebuild-demo-project;stream=38ca1c4a-e9ca-4dbc-bef1-d52bfEXAMPLE`).

1. Nel flusso di CloudWatch log dei registri, è possibile sfogliare gli eventi del registro. Per impostazione predefinita, viene visualizzato solo l'ultimo set di eventi di log. Per visualizzare gli eventi di log precedenti, scorrere all'inizio dell'elenco.

1. In questo tutorial, la maggior parte degli eventi di log contengono informazioni dettagliate su come CodeBuild scarica e installa i file delle dipendenze di compilazione nel proprio ambiente di compilazione, cosa che probabilmente non interessa. È possibile utilizzare la casella **Filter events (Filtra eventi)** per ridurre le informazioni visualizzate. Ad esempio, se si immette `"[INFO]"` in **Filter events (Filtra eventi)** vengono visualizzati solo gli eventi contenenti `[INFO]`. Per ulteriori informazioni, consulta [Filter and pattern syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html) nella *Amazon CloudWatch User Guide*.

Queste parti di un flusso di log di CloudWatch Logs si riferiscono a questo tutorial.

```
...
[Container] 2016/04/15 17:49:42 Entering phase PRE_BUILD 
[Container] 2016/04/15 17:49:42 Running command echo Entering pre_build phase...
[Container] 2016/04/15 17:49:42 Entering pre_build phase... 
[Container] 2016/04/15 17:49:42 Phase complete: PRE_BUILD Success: true 
[Container] 2016/04/15 17:49:42 Entering phase BUILD 
[Container] 2016/04/15 17:49:42 Running command echo Entering build phase... 
[Container] 2016/04/15 17:49:42 Entering build phase...
[Container] 2016/04/15 17:49:42 Running command mvn install 
[Container] 2016/04/15 17:49:44 [INFO] Scanning for projects... 
[Container] 2016/04/15 17:49:44 [INFO]
[Container] 2016/04/15 17:49:44 [INFO] ------------------------------------------------------------------------ 
[Container] 2016/04/15 17:49:44 [INFO] Building Message Utility Java Sample App 1.0 
[Container] 2016/04/15 17:49:44 [INFO] ------------------------------------------------------------------------ 
... 
[Container] 2016/04/15 17:49:55 ------------------------------------------------------- 
[Container] 2016/04/15 17:49:55  T E S T S 
[Container] 2016/04/15 17:49:55 ------------------------------------------------------- 
[Container] 2016/04/15 17:49:55 Running TestMessageUtil 
[Container] 2016/04/15 17:49:55 Inside testSalutationMessage() 
[Container] 2016/04/15 17:49:55 Hi!Robert 
[Container] 2016/04/15 17:49:55 Inside testPrintMessage() 
[Container] 2016/04/15 17:49:55 Robert 
[Container] 2016/04/15 17:49:55 Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.018 sec
[Container] 2016/04/15 17:49:55  
[Container] 2016/04/15 17:49:55 Results : 
[Container] 2016/04/15 17:49:55  
[Container] 2016/04/15 17:49:55 Tests run: 2, Failures: 0, Errors: 0, Skipped: 0 
...
[Container] 2016/04/15 17:49:56 [INFO] ------------------------------------------------------------------------ 
[Container] 2016/04/15 17:49:56 [INFO] BUILD SUCCESS 
[Container] 2016/04/15 17:49:56 [INFO] ------------------------------------------------------------------------ 
[Container] 2016/04/15 17:49:56 [INFO] Total time: 11.845 s 
[Container] 2016/04/15 17:49:56 [INFO] Finished at: 2016-04-15T17:49:56+00:00 
[Container] 2016/04/15 17:49:56 [INFO] Final Memory: 18M/216M 
[Container] 2016/04/15 17:49:56 [INFO] ------------------------------------------------------------------------ 
[Container] 2016/04/15 17:49:56 Phase complete: BUILD Success: true 
[Container] 2016/04/15 17:49:56 Entering phase POST_BUILD 
[Container] 2016/04/15 17:49:56 Running command echo Entering post_build phase... 
[Container] 2016/04/15 17:49:56 Entering post_build phase... 
[Container] 2016/04/15 17:49:56 Phase complete: POST_BUILD Success: true 
[Container] 2016/04/15 17:49:57 Preparing to copy artifacts 
[Container] 2016/04/15 17:49:57 Assembling file list 
[Container] 2016/04/15 17:49:57 Expanding target/messageUtil-1.0.jar 
[Container] 2016/04/15 17:49:57 Found target/messageUtil-1.0.jar 
[Container] 2016/04/15 17:49:57 Creating zip artifact
```

In questo esempio, sono state completate CodeBuild con successo le fasi di pre-compilazione, compilazione e post-compilazione. Ha eseguito lo unit test e la creazione del file `messageUtil-1.0.jar` è riuscita.

### Fase 9: generazione dell'artefatto di output della compilazione
<a name="getting-started-cli-output"></a>

(Fase precedente: [Fase 8: visualizzazione di informazioni dettagliate sulla compilazione](#getting-started-cli-build-log))

In questo passaggio, si ottiene il `messageUtil-1.0.jar` file CodeBuild creato e caricato nel bucket di output.

Puoi utilizzare la CodeBuild console o la console Amazon S3 per completare questo passaggio.



**Per ottenere l'artefatto di output della build (console)AWS CodeBuild**

1. Con la CodeBuild console ancora aperta e la pagina dei dettagli della build ancora visualizzata nel passaggio precedente, scegli la scheda **Dettagli della build** e scorri verso il basso fino alla sezione **Artefatti**. 
**Nota**  
Se la pagina dei dettagli della build non è visualizzata, nella barra di navigazione, scegli **Cronologia build**, quindi scegli il link **Build run**.

1. Il link alla cartella Amazon S3 si trova nella posizione di caricamento degli **artefatti**. Questo collegamento apre la cartella in Amazon S3 in cui si trova il file degli artefatti di output della `messageUtil-1.0.jar` build.

**Per ottenere l'elemento di output della build (console Amazon S3)**

1. Apri la console Amazon S3 all'indirizzo. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)

1. Aprire `codebuild-region-ID-account-ID-output-bucket`.

1. Aprire la cartella `codebuild-demo-project`.

1. Aprire la cartella `target`, contenente il file dell'artefatto di output di compilazione `messageUtil-1.0.jar`.

### Passaggio 10: eliminare i bucket S3
<a name="getting-started-cli-clean-up"></a>

(Fase precedente: [Fase 9: generazione dell'artefatto di output della compilazione](#getting-started-cli-output))

Per evitare addebiti continui AWS sul tuo account, puoi eliminare i bucket di input e output utilizzati in questo tutorial. Per istruzioni, consulta [Eliminare o svuotare un bucket nella Guida per l'utente](https://docs.aws.amazon.com/AmazonS3/latest/userguide/delete-or-empty-bucket.html) di *Amazon Simple Storage Service*.

Se utilizzi l'utente IAM o un utente IAM amministratore per eliminare questi bucket, l'utente deve disporre di più autorizzazioni di accesso. Aggiungi la seguente istruzione tra i marker (*\$1\$1\$1 BEGIN ADDING STATEMENT HERE \$1\$1\$1*e*\$1\$1\$1 END ADDING STATEMENTS HERE \$1\$1\$1*) a una politica di accesso esistente per l'utente. 

Le ellissi (...) in questa affermazione sono usate per brevità. Non rimuovere nessuna istruzione nella policy di accesso esistente. Non immettere queste ellissi nella policy.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:DeleteBucket",
        "s3:DeleteObject"
      ],
      "Resource": "*"
    }
  ]
}
```

------

### Wrapping
<a name="getting-started-cli-next-steps"></a>



In questo tutorial, creavi AWS CodeBuild un set di file di classe Java in un file JAR. Quindi hai visualizzato i risultati della compilazione.

Ora puoi provare a utilizzarlo CodeBuild nei tuoi scenari. Segui le istruzioni in [Pianifica una compilazione](planning.md). Se non ti senti ancora pronto, puoi provare a compilare alcuni degli esempi. Per ulteriori informazioni, consulta [Usa esempi basati su casi per CodeBuild](use-case-based-samples.md). 