

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

# Esempio di Amazon Elastic File System per AWS CodeBuild
<a name="sample-efs"></a>

 Potresti voler creare le tue AWS CodeBuild build su Amazon Elastic File System, un servizio di file scalabile e condiviso per istanze Amazon EC2. La capacità di storage di Amazon EFS è elastica, quindi aumenta o si riduce man mano che i file vengono aggiunti e rimossi. Ha una semplice interfaccia di servizi Web che ti permette di creare e configurare i file system. Gestisce anche tutta l'infrastruttura di storage dei file, quindi non devi preoccuparti di distribuire, applicare patch o mantenere le configurazioni dei file system. Per ulteriori informazioni, consulta [Cos'è Amazon Elastic File System?](https://docs.aws.amazon.com/efs/latest/ug/whatisefs.html) nella *Amazon Elastic File System User Guide*. 

 Questo esempio mostra come configurare un CodeBuild progetto in modo che monti e poi crei un'applicazione Java su un file system Amazon EFS. Prima di iniziare, è necessario disporre di un'applicazione Java pronta per la creazione che venga caricata in un bucket di input S3 o in un AWS CodeCommit repository GitHub Enterprise Server o Bitbucket. GitHub 

I dati in transito per il file system sono crittografati. Per crittografare i dati in transito utilizzando un'immagine diversa, consulta [Crittografia dei dati in transito](https://docs.aws.amazon.com/efs/latest/ug/encryption-in-transit.html). 

**Topics**
+ [Utilizzo AWS CodeBuild con Amazon Elastic File System](#sample-efs-high-level-steps)
+ [Risolvi i problemi di integrazione con Amazon EFS](sample-efs-troubleshooting.md)

## Utilizzo AWS CodeBuild con Amazon Elastic File System
<a name="sample-efs-high-level-steps"></a>

L'esempio copre i quattro passaggi di alto livello necessari per utilizzare Amazon EFS con AWS CodeBuild. Questi sono: 

1. Crea un cloud privato virtuale (VPC) nel tuo AWS account. 

1. Creare un file system che utilizza questo VPC. 

1. Crea e costruisci un CodeBuild progetto che utilizza il VPC. Il CodeBuild progetto utilizza quanto segue per identificare il file system:
   +  Un identificatore univoco del file system. Si sceglie l'identificatore quando si specifica il file system nel progetto di compilazione.
   + L'ID del file system. L'ID viene visualizzato quando visualizzi il file system nella console Amazon EFS.
   +  Un punto di montaggio. Questa è una directory nel contenitore Docker che monta il file system. 
   + Opzioni di montaggio. Includono dettagli su come montare il file system.

1. Esamina il progetto di compilazione per assicurarti che siano stati generati i file e le variabili di progetto corretti.

**Nota**  
 Un file system creato in Amazon EFS è supportato solo su piattaforme Linux. 

 

**Topics**
+ [Fase 1: Creare un VPC utilizzando CloudFormation](#sample-efs-create-vpc)
+ [Fase 2: crea un file system Amazon Elastic File System con il tuo VPC](#sample-efs-create-efs)
+ [Fase 3: creare un CodeBuild progetto da utilizzare con Amazon EFS](#sample-efs-create-acb)
+ [Passaggio 4: rivedi il progetto di compilazione](#sample-efs-summary)

### Fase 1: Creare un VPC utilizzando CloudFormation
<a name="sample-efs-create-vpc"></a>

 Crea il tuo VPC con un CloudFormation modello. 

1.  Segui le istruzioni [CloudFormation Modello VPC](cloudformation-vpc-template.md) per l'uso CloudFormation per creare un VPC. 
**Nota**  
 Il VPC creato da questo CloudFormation modello ha due sottoreti private e due sottoreti pubbliche. È necessario utilizzare solo sottoreti private quando si utilizza AWS CodeBuild per montare il file system creato in Amazon EFS. Se si utilizza una delle sottoreti pubblici, la build ha esito negativo. 

1. Accedi Console di gestione AWS e apri la console Amazon VPC all'indirizzo. [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)

1.  Scegli il VPC con cui hai creato. CloudFormation

1. Prendere nota del nome del VPC e dell'ID presenti nella scheda **Description (Descrizione)**. Questo ID sarà necessario al momento della creazione del progetto AWS CodeBuild più avanti in questo esempio. 

### Fase 2: crea un file system Amazon Elastic File System con il tuo VPC
<a name="sample-efs-create-efs"></a>

 Crea un semplice file system Amazon EFS per questo esempio utilizzando il VPC creato in precedenza. 

1. Accedi Console di gestione AWS e apri la console Amazon EFS all'indirizzo [ https://console.aws.amazon.com/efs/](https://console.aws.amazon.com/efs/).

1.  Scegliere **Create file system (Crea file system)**. 

1.  In **VPC** scegliere il nome VPC annotato in precedenza in questo esempio. 

1.  Lasciare le zone di disponibilità associate alle sottoreti selezionate. 

1.  Selezionare **Next Step (Fase successiva)**. 

1.  In **Aggiungi tag**, per la chiave **Name** predefinita, in **Value**, inserisci il nome del tuo file system Amazon EFS. 

1.  Mantenere **Bursting** e **General Purpose (Utilizzo generico)** selezionati come performance predefinita e modalità di throughput, quindi scegliere **Next Step (Fase successiva)**. 

1. Per **Configure client access (Configura accesso client)**, scegliere **Next Step (Passaggio successivo)**.

1.  Scegliere **Create File System (Crea file system)**. 

1.  (Facoltativo) Ti consigliamo di aggiungere una policy al tuo file system Amazon EFS che applichi la crittografia dei dati in transito. **Nella console Amazon EFS, scegli **Politica del file system**, scegli **Modifica**, seleziona la casella Applica la **crittografia in transito per tutti i client**, quindi scegli Salva.**

### Fase 3: creare un CodeBuild progetto da utilizzare con Amazon EFS
<a name="sample-efs-create-acb"></a>

 Crea un AWS CodeBuild progetto che utilizzi il VPC creato in precedenza in questo esempio. Quando la build viene eseguita, monta il file system Amazon EFS creato in precedenza. Successivamente, memorizza il file.jar creato dall'applicazione Java nella directory del punto di montaggio del file system.

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)**, quindi **Create build project (Crea progetto di compilazione)**. 

1.  In **Project name (Nome progetto)** immettere un nome per il progetto. 

1.  In **Source provider (Provider di origine)** scegliere il repository contenente l'applicazione Java che si desidera compilare. 

1.  Inserisci le informazioni, come l'URL del repository, da utilizzare per localizzare l' CodeBuild applicazione. Le opzioni variano a seconda del provider di origine. Per ulteriori informazioni, consulta [Choose source provider](create-project.md#create-project-source-provider). 

1.  In **Environment image (Immagine ambiente)** scegliere **Managed image (Immagine gestita)**. 

1.  In **Operating system (Sistema operativo)**, scegliere **Amazon Linux 2**. 

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

1.  Da **Image**, scegliete **aws/codebuild/amazonlinux-x86\$164-standard:4.0**. 

1.  Da **Environment type (Tipo ambiente)**, seleziona **Linux**. 

1.  In **Service role (Ruolo del servizio)** scegliere **New service role (Nuovo ruolo del servizio)**. In **Nome ruolo, inserisci un nome** per il ruolo creato per te. CodeBuild 

1. Espandere **Additional configuration (Configurazione aggiuntiva)**.

1.  Seleziona **Enable this flag if you want to build Docker images or want your builds to get elevated privileges (Abilita questo flag se desideri creare immagini Docker o se desideri che le build ottengano privilegi elevati)**.
**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.

1.  In **VPC** scegliere l'ID VPC. 

1.  In **Subnets (Sottoreti)** scegliere una o più sottoreti private associate al VPC. È necessario utilizzare sottoreti private in una build che monta un file system Amazon EFS. Se si utilizza una sottorete pubblica, la build ha esito negativo. 

1.  Da **Security Group (Gruppo di sicurezza)**, scegliere il gruppo di sicurezza predefinito.

1.  In **File Systems (File system)**, immettere le seguenti informazioni:
   + Per **Identifier**, immettere un identificatore univoco del file system. Deve contenere meno di 129 caratteri e solo caratteri alfanumerici e caratteri di sottolineatura. CodeBuild utilizza questo identificatore per creare una variabile di ambiente che identifichi il file system elastico. Il formato della variabile di ambiente è `CODEBUILD_<file_system_identifier>` in lettere maiuscole. Ad esempio, se si immette `my_efs`, la variabile di ambiente è `CODEBUILD_MY_EFS`. 
   + Per **ID**, scegliere l'ID del file system. 
   + (Facoltativo) Inserisci una directory nel file system. CodeBuild monta questa directory. Se si lascia vuoto il **percorso della directory**, CodeBuild monta l'intero file system. Il percorso del file è relativo rispetto alla root del file system. 
   + Per **Mount point**, inserisci il percorso assoluto della directory nel contenitore di build in cui è montato il file system. Se questa directory non esiste, la CodeBuild crea durante la compilazione. 
   + (Facoltativo) Immettere le opzioni di montaggio. Se lasci vuote **le opzioni di montaggio**, CodeBuild utilizza le opzioni di montaggio predefinite:

     ```
     nfsvers=4.1
     rsize=1048576
     wsize=1048576
     hard
     timeo=600
     retrans=2
     ```

     Per ulteriori informazioni, consulta le [opzioni di montaggio NFS consigliate](https://docs.aws.amazon.com/efs/latest/ug/mounting-fs-nfs-mount-settings.html) nella *Amazon Elastic File System User Guide*. 

1.  Per **Build specification (Specifiche di compilazione)** scegliere **Insert build commands (Inserisci comandi di compilazione)** e selezionare **Switch to editor (Passa a editor)**. 

1.  Inserisci i seguenti comandi build spec nell'editor. Sostituire `<file_system_identifier>` con l'identificatore inserito nel passaggio 17. Utilizzare lettere maiuscole (ad esempio, `CODEBUILD_MY_EFS`).

   ```
   version: 0.2
   phases:
     install:
       runtime-versions:
         java: corretto11    
     build:
       commands:
         - mvn compile -Dgpg.skip=true -Dmaven.repo.local=$CODEBUILD_<file_system_identifier>
   ```

1.  Utilizzare i valori di default per tutte le altre impostazioni, quindi scegliere **Create build project (Crea progetto di compilazione)**. Al termine della compilazione viene visualizzata la pagina della console per il progetto. 

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

### Passaggio 4: rivedi il progetto di compilazione
<a name="sample-efs-summary"></a>



 Dopo aver creato il AWS CodeBuild progetto: 
+  Hai un file.jar creato dalla tua applicazione Java che è integrato nel tuo file system Amazon EFS nella tua directory dei punti di montaggio. 
+  Una variabile di ambiente che identifichi il file system viene creata utilizzando l'identificatore del file system immesso al momento della creazione del progetto. 

 Per ulteriori informazioni, consulta [Mounting file system](https://docs.aws.amazon.com/efs/latest/ug/mounting-fs.html) nella *Amazon Elastic File System User Guide*. 

# Risolvi i problemi di integrazione con Amazon EFS
<a name="sample-efs-troubleshooting"></a>

Di seguito sono riportati gli errori che potresti riscontrare durante la configurazione di Amazon EFS con CodeBuild.

**Topics**
+ [CLIENT\$1ERROR: montaggio di '127.0.0.1: /' non riuscito. Autorizzazione negata](#sample-efs-troubleshooting.permission-denied)
+ [CLIENT\$1ERROR: montaggio di '127.0.0.1: /' non riuscito. Reimpostazione della connessione da parte di un peer](#sample-efs-troubleshooting.connection-reset)
+ [VPC\$1CLIENT\$1ERROR: errore EC2 imprevisto: UnauthorizedOperation](#sample-efs-troubleshooting.unauthorized-operation)

## CLIENT\$1ERROR: montaggio di '127.0.0.1: /' non riuscito. Autorizzazione negata
<a name="sample-efs-troubleshooting.permission-denied"></a>

L'autorizzazione IAM non è supportata per il montaggio di Amazon EFS con CodeBuild. Se utilizzi una policy del file system Amazon EFS personalizzata, dovrai concedere l'accesso in lettura e scrittura a tutti i principali IAM. Esempio:

```
"Principal": {
  "AWS": "*"
}
```

## CLIENT\$1ERROR: montaggio di '127.0.0.1: /' non riuscito. Reimpostazione della connessione da parte di un peer
<a name="sample-efs-troubleshooting.connection-reset"></a>

Esistono due possibili cause di questo errore:
+ La sottorete CodeBuild VPC si trova in una zona di disponibilità diversa rispetto alla destinazione di montaggio di Amazon EFS. Puoi risolvere questo problema aggiungendo una sottorete VPC nella stessa zona di disponibilità del target di montaggio Amazon EFS.
+ Il gruppo di sicurezza non dispone delle autorizzazioni per comunicare con Amazon EFS. Puoi risolvere questo problema aggiungendo una regola in entrata per consentire tutto il traffico proveniente dal VPC (aggiungi il blocco CIDR primario per il tuo VPC) o dal gruppo di sicurezza stesso.

## VPC\$1CLIENT\$1ERROR: errore EC2 imprevisto: UnauthorizedOperation
<a name="sample-efs-troubleshooting.unauthorized-operation"></a>

Questo errore si verifica quando tutte le sottoreti nella configurazione VPC per il CodeBuild progetto sono sottoreti pubbliche. È necessario disporre di almeno una sottorete privata nel VPC per garantire la connettività di rete. 