

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

# Tutorial: Esegui la distribuzione su istanze Amazon EC2 con CodePipeline
<a name="tutorials-ec2-deploy"></a>

Questo tutorial ti aiuta a creare un'azione di distribuzione CodePipeline che distribuisce il codice nelle istanze che hai configurato in Amazon EC2.

**Nota**  
Come parte della creazione di una pipeline nella console, per gli artefatti verrà utilizzato un bucket di artefatti S3. CodePipeline (Questo è diverso dal bucket utilizzato per un'azione sorgente S3.) Se il bucket di artefatti S3 si trova in un account diverso da quello della pipeline, assicurati che il bucket di artefatti S3 sia di proprietà di utenti sicuri e affidabili. Account AWS 

**Nota**  
L'`EC2`azione di distribuzione è disponibile solo per le pipeline di tipo V2.

## Prerequisiti
<a name="tutorials-ec2-deploy-prereqs"></a>

Per utilizzare questo tutorial per creare la pipeline di distribuzione continua, è necessario disporre di alcune risorse. Ecco di cosa hai bisogno prima di iniziare:

**Nota**  
Tutte queste risorse devono essere create all'interno della stessa regione. AWS 
+ Un repository per il controllo del codice sorgente (utilizzato in questo tutorial GitHub) in cui aggiungere un `script.sh` file di esempio.
+ È necessario utilizzare un ruolo di CodePipeline servizio esistente che è stato aggiornato con le autorizzazioni per questa azione. Per aggiornare il tuo ruolo di servizio, consulta[Autorizzazioni relative alla policy del ruolo di servizio per l'azione di implementazione di EC2](action-reference-EC2Deploy.md#action-reference-EC2Deploy-permissions-action).

Dopo aver soddisfatto questi prerequisiti, puoi procedere con il tutorial e creare la pipeline di distribuzione continua.

## Fase 1: creazione di istanze Amazon EC2 Linux
<a name="tutorials-ec2-deploy-instances"></a>

In questa fase, creerai le istanze Amazon EC2 in cui distribuirai un'applicazione di esempio. Come parte di questo processo, crea un ruolo di istanza in IAM, se non lo hai già creato nella regione in cui desideri creare risorse.

**Per creare un ruolo dell'istanza**

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

1. Dal pannello di controllo della console, scegli **Roles (Ruoli)**.

1. Scegli **Crea ruolo**.

1. In **Seleziona il tipo di entità affidabile**, seleziona **Servizio AWS**. In **Scegli un caso d'uso**, seleziona **EC2**. In **Select your use case (Seleziona il tuo caso d'uso)** selezionare **EC2**. Scegli **Next (Successivo)**.

1. Cerca e seleziona la politica denominata **`AmazonSSMManagedEC2InstanceDefaultPolicy`**. 

1. Cerca e seleziona la politica denominata **`AmazonSSMManagedInstanceCore`**. Scegliere **Next: Tags (Successivo: Tag)**.

1. Scegliere **Next:Review (Successivo: Rivedi)**. Immettere un nome per il ruolo (ad esempio **EC2InstanceRole**).
**Nota**  
Prendere nota del nome del ruolo per la fase successiva. È possibile scegliere questo ruolo quando si crea l'istanza.
**Nota**  
Aggiungerai le autorizzazioni a questo ruolo per consentire l'accesso al bucket di artefatti S3 per la tua pipeline dopo la creazione della pipeline.

   Scegli **Crea ruolo**.

**Per avviare istanze**

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

1. Dalla navigazione laterale, scegli **Istanze e seleziona **Launch** instances nella** parte superiore della pagina.

1. In **Nome**, inserisci **MyInstances**. **Questo assegna all'istanza un tag **Key** di **Name** e un tag Value di.** **MyInstances** 

1. In **Immagini dell'applicazione e del sistema operativo (Amazon Machine Image)**, individua l'opzione AMI **Amazon Linux** con il AWS logo e assicurati che sia selezionata. (Questa AMI è descritta come AMI Amazon Linux 2 (HVM) ed è etichettata come «Idoneo al piano gratuito».)

1. In **Tipo di istanza**, scegli il `t2.micro` tipo idoneo al piano gratuito come configurazione hardware per la tua istanza.

1. In **Coppia di chiavi (login)**, scegli una coppia di chiavi o creane una. 

1. In **Impostazioni di rete**, assicurati che lo stato sia **Attiva**.

1. Espandi **Advanced details** (Dettagli avanzati). Nel **profilo dell'istanza** IAM, scegli il ruolo IAM che hai creato nella procedura precedente (ad esempio,**EC2InstanceRole**).
**Nota**  
Non lasciare vuoto il ruolo dell'istanza poiché ciò crea un ruolo predefinito e non seleziona il ruolo che hai creato.

1. In **Riepilogo**, in **Numero di istanze**, inserisci`2`.

1. Scegliere **Launch Instance (Avvia istanza)**. 

1. È possibile visualizzare lo stato dell'avvio nella pagina **Instances (Istanze)**. Quando avvii un'istanza, il suo stato iniziale è `pending`. Una volta avviata l'istanza, il suo stato passa a `running` e riceve un nome DNS pubblico. Se la colonna **Public DNS (DNS pubblico)** non è visualizzata, scegliere l'icona **Show/Hide (Mostra/Nascondi)** quindi selezionare **Public DNS (DNS pubblico)**.

## Fase 2: aggiungi le autorizzazioni per artifact bucket al ruolo dell'istanza EC2
<a name="tutorials-ec2-deploy-role-s3"></a>

Devi aggiornare il ruolo dell'istanza EC2 che hai creato per l'istanza per consentirle di accedere al bucket di artefatti della pipeline. 

**Nota**  
Quando crei l'istanza, crei o utilizzi un ruolo di istanza EC2 esistente. Per evitare `Access Denied` errori, devi aggiungere le autorizzazioni del bucket S3 al ruolo dell'istanza per assegnare le autorizzazioni dell'istanza al bucket di artefatti. CodePipeline Crea un ruolo predefinito o aggiorna il tuo ruolo esistente con l'`s3:GetObject`autorizzazione limitata al bucket di artefatti per la regione della tua pipeline.

1. Accedi alla tua pipeline nella console. CodePipeline Seleziona **Impostazioni**. Visualizza il nome e la posizione dell'archivio di artefatti per una pipeline esistente. Prendi nota del bucket di artefatti Amazon Resource Name (ARN) e copialo.

1. Passare alla console IAM e quindi scegliere **Ruoli**. Scegli il ruolo di istanza che hai creato nella fase 1 di questo tutorial.

1. Nella scheda **Permissions (Autorizzazioni)** scegliere **Add inline policy (Aggiungi policy inline)**.

1. Aggiungi il seguente codice JSON al documento di policy, sostituendo il valore nel `Resource` campo con il bucket ARN.

   ```
   {
       "Effect": "Allow",
       "Principal": "*",
       "Action": "s3:GetObject",
       "Resource": "arn:aws:s3:::BucketName"
   }
   ```

1. Scegliere **Aggiorna**.

## Passaggio 3: aggiungi un file di script al tuo repository
<a name="tutorials-ec2-deploy-file"></a>

Incolla questo testo di esempio per creare il `script.sh` file per la fase post-script della distribuzione.

```
echo "Hello World!" 
```

**Aggiunta di un file `script.sh` nell'archivio di codice sorgente**

1. Apri un editor di testo, quindi copia e incolla il file precedente in un nuovo file.

1. Conferma e inserisci il file `script.sh` nell'archivio del codice sorgente.

   1. Aggiungi il file.

      ```
      git add .
      ```

   1. Conferma la modifica.

      ```
      git commit -m "Adding script.sh."
      ```

   1. Invia la conferma.

      ```
      git push
      ```

   Prendi nota del percorso nel tuo repository.

   ```
   /MyDemoRepo/test/script.sh
   ```

## Fase 4: Creazione della pipeline
<a name="tutorials-ec2-deploy-pipeline"></a>

Usa la CodePipeline procedura guidata per creare le fasi della pipeline e connettere il tuo repository di origine.

**Creazione della pipeline**

1. Apri la console all' CodePipeline indirizzo. [https://console.aws.amazon.com/codepipeline/](https://console.aws.amazon.com/codepipeline/)

1. Nella pagina **Welcome (Benvenuto)**, pagina **Getting started (Nozioni di base)** o pagina **Pipelines (Pipeline)**, scegliere **Create pipeline (Crea pipeline)**.

1. Nella pagina **Passaggio 1: Scegli l'opzione di creazione**, in **Opzioni di creazione**, scegli l'opzione **Crea pipeline personalizzata**. Scegli **Next (Successivo)**.

1. Nel **Passaggio 2: Scegliete le impostazioni della pipeline**, in **Nome della tubazione**, immettete. **MyPipeline**

1. CodePipeline fornisce condotte di tipo V1 e V2, che differiscono per caratteristiche e prezzo. Il tipo V2 è l'unico tipo che puoi scegliere nella console. Per ulteriori informazioni, consulta i tipi di [pipeline.](https://docs.aws.amazon.com/codepipeline/latest/userguide/pipeline-types-planning.html?icmpid=docs_acp_help_panel) Per informazioni sui prezzi di CodePipeline, consulta la sezione [Prezzi](https://aws.amazon.com/codepipeline/pricing/).

1. In **Ruolo di servizio**, scegli **Usa il ruolo di servizio esistente**, quindi scegli il ruolo di CodePipeline servizio che è stato aggiornato con le autorizzazioni richieste per questa azione. Per configurare il ruolo CodePipeline di servizio per questa azione, consulta[Autorizzazioni relative alla policy del ruolo di servizio per l'azione di implementazione di EC2](action-reference-EC2Deploy.md#action-reference-EC2Deploy-permissions-action).

1. Lasciare i valori predefiniti delle impostazioni in **Advanced settings (Impostazioni avanzate)**, quindi scegliere **Next (Successivo)**.

1. Nella pagina **Passaggio 3: Aggiungi fase di origine**, aggiungi una fase di origine:

   1. In **Source provider**, scegli **GitHub (tramite GitHub app)**.

   1. In **Connessione**, scegli una connessione esistente o creane una nuova. Per creare o gestire una connessione per l'azione GitHub sorgente, consulta[GitHub connessioni](connections-github.md).

   1. In **Repository name (Nome repository)**, scegli il nome del repository GitHub .

   Scegli **Next (Successivo)**.

1. Nella pagina **Passaggio 4: Aggiungi fase di creazione**, scegli **Ignora**.

1. **Nella pagina **Fase 5: Aggiungi fase di implementazione**, scegli EC2.**  
![\[\]](http://docs.aws.amazon.com/it_it/codepipeline/latest/userguide/images/ec2deploy-action.png)

   1. Per la **directory Target**, inserisci la directory sull'istanza in cui desideri eseguire la distribuzione, ad esempio. `/home/ec2-user/testhelloworld`
**Nota**  
Specificate la directory di distribuzione che desiderate che l'azione utilizzi sull'istanza. L'azione automatizzerà la creazione della directory specificata sull'istanza come parte della distribuzione.

   1. Per **PostScript**, inserisci il percorso e il nome del file dello script, ad esempio`test/script.sh`.

   1. Scegli **Next (Successivo)**.

1. Nella pagina **Step 6: Review** (Fase 6: esamina), esamina la configurazione della pipeline, quindi seleziona **Create pipeline** (Crea pipeline) per creare la pipeline.  
![\[\]](http://docs.aws.amazon.com/it_it/codepipeline/latest/userguide/images/ec2deploy-pipeline.png)

1. Dopo che la pipeline è stata eseguita correttamente, scegli **Visualizza dettagli per visualizzare i** registri dell'azione e visualizzare l'output dell'azione di elaborazione gestita.  
![\[\]](http://docs.aws.amazon.com/it_it/codepipeline/latest/userguide/images/ec2deploy-logs.png)  
![\[\]](http://docs.aws.amazon.com/it_it/codepipeline/latest/userguide/images/ec2deploy-logs2.png)

## Fase 5: testa la tua pipeline
<a name="tutorials-ec2-deploy-test"></a>

La tua pipeline dovrebbe avere tutto il necessario per eseguire una distribuzione AWS continua end-to-end nativa. Ora, testane la funzionalità inserendo una modifica del codice all'archivio del codice sorgente.

**Test della pipeline**

1. Effettua una modifica del codice nell'archivio del codice sorgente configurato, conferma e inserisci la modifica.

1. Apri la CodePipeline console all'indirizzo [https://console.aws.amazon.com/codepipeline/](https://console.aws.amazon.com/codepipeline/).

1. Seleziona la pipeline nell'elenco.

1. Osserva l'avanzamento della pipeline attraverso le varie fasi. La pipeline dovrebbe essere completata e la tua azione distribuirà lo script sulle tue istanze.

1. Per ulteriori informazioni sulla risoluzione dei problemi, consulta. [L'azione EC2 Deploy fallisce e viene visualizzato un messaggio di errore `No such file`](troubleshooting.md#troubleshooting-ec2-deploy)