

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

# Che cos'è CodeDeploy?
<a name="welcome"></a>

CodeDeploy è un servizio di distribuzione che automatizza le distribuzioni di applicazioni su istanze Amazon EC2, istanze locali, funzioni Lambda serverless o servizi Amazon ECS.

È possibile distribuire una varietà quasi illimitata di contenuti di applicazioni, tra cui:
+ Codice
+ Funzioni serverless AWS Lambda 
+ File Web e di configurazione
+ Eseguibili
+ Pacchetti
+ Script
+ File multimediali

CodeDeploy può distribuire contenuti applicativi eseguiti su un server e archiviati in bucket GitHub , repository o repository Bitbucket di Amazon S3. CodeDeploy può anche implementare una funzione Lambda serverless. Non è necessario modificare il codice esistente prima di poter utilizzare CodeDeploy. 

CodeDeploy ti semplifica le seguenti operazioni:
+ Il rilascio rapido di nuove funzionalità.
+ Aggiorna le versioni delle AWS Lambda funzioni.
+ Evitare tempi di inattività durante la distribuzione dell'applicazione.
+ La gestione della complessità dell'aggiornamento delle applicazioni, senza molti dei rischi associati alle distribuzioni manuali soggette a errori.

Il servizio si dimensiona con l'infrastruttura in modo da permetterti di distribuire facilmente a una sola o a migliaia di istanze.

CodeDeploy funziona con vari sistemi per la gestione della configurazione, il controllo del codice sorgente, [l'integrazione [continua](https://aws.amazon.com/devops/continuous-delivery/)](https://aws.amazon.com/devops/continuous-integration/), la distribuzione continua e l'implementazione continua. Per ulteriori informazioni, consulta [Integrazioni di prodotti](https://aws.amazon.com/codedeploy/product-integrations/).

 La CodeDeploy console offre anche un modo per cercare rapidamente le risorse, come repository, progetti di creazione, applicazioni di distribuzione e pipeline. Scegli **Go to resource (Vai alla risorsa)** o premi il tasto `/` e digita il nome della risorsa. Qualsiasi corrispondenza verrà visualizzata nell'elenco. Le ricerche rispettano la distinzione tra maiuscole e minuscole. Puoi visualizzare solo le risorse per le quali disponi dell'autorizzazione di visualizzazione. Per ulteriori informazioni, consulta [Gestione delle identità e degli accessi per AWS CodeDeploy](security-iam.md). 

**Topics**
+ [Vantaggi di AWS CodeDeploy](#benefits)
+ [Panoramica delle piattaforme di elaborazione CodeDeploy](#compute-platform)
+ [Panoramica dei tipi di implementazione CodeDeploy](#welcome-deployment-overview)
+ [Ci piacerebbe conoscere la tua opinione](#welcome-contact-us)
+ [Primary Components](primary-components.md)
+ [Deployments](deployment-steps.md)
+ [Application Specification Files](application-specification-files.md)

## Vantaggi di AWS CodeDeploy
<a name="benefits"></a>

CodeDeploy offre i seguenti vantaggi:
+ Applicazioni **server, serverless e containerless**. CodeDeployconsente di distribuire sia applicazioni tradizionali su server sia applicazioni che distribuiscono una versione con AWS Lambda funzioni serverless o un'applicazione Amazon ECS.
+ **Implementazioni automatizzate.** CodeDeploy automatizza completamente le implementazioni delle applicazioni negli ambienti di sviluppo, test e produzione. CodeDeploysi adatta alla tua infrastruttura in modo da poter eseguire l'implementazione su una o migliaia di istanze.
+ **Ridurre al minimo i tempi di inattività.** Se l'applicazione utilizza la piattaforma di elaborazione EC2/on-premise, CodeDeploy aiuta a massimizzare la disponibilità dell'applicazione. Durante una distribuzione sul posto, CodeDeploy esegue un aggiornamento continuo tra le istanze Amazon EC2. È possibile specificare il numero di istanze da mettere offline alla volta per gli aggiornamenti. Durante una blue/green distribuzione, la revisione più recente dell'applicazione viene installata sulle istanze sostitutive. Il traffico è reindirizzato a queste istanze quando si sceglie, immediatamente o non appena terminato il test, il nuovo ambiente. Per entrambi i tipi di distribuzione, CodeDeploy monitora lo stato delle applicazioni in base alle regole configurate. 
+ **Interrompere ed eseguire il rollback**. È possibile arrestare ed eseguire il rollback automaticamente o manualmente sulle distribuzioni in caso di errore. 
+ **Controllo centralizzato**. È possibile avviare e monitorare lo stato delle distribuzioni tramite la console o il CodeDeploy . AWS CLI Riceverai un report che elenca quando è stata distribuita ogni revisione dell'applicazione e su quali istanze Amazon EC2. 
+ **Facile da adottare.** CodeDeploy è indipendente dalla piattaforma e funziona con qualsiasi applicazione. Puoi riutilizzare facilmente il codice di configurazione. CodeDeploy può anche integrarsi con il processo di rilascio del software o la toolchain di distribuzione continua.
+ **Distribuzioni simultanee** Se disponi di più di un'applicazione che utilizza la piattaforma di calcolo EC2/on-premise, CodeDeploy puoi distribuirle contemporaneamente sullo stesso set di istanze.



## Panoramica delle piattaforme di elaborazione CodeDeploy
<a name="compute-platform"></a>

CodeDeploy è in grado di distribuire applicazioni su tre piattaforme di elaborazione:
+ **EC2/On-premise**: descrive le istanze di server fisici che possono essere istanze cloud Amazon EC2, server locali o entrambi. Le applicazioni create utilizzando la piattaforma di calcolo EC2/on-premise possono essere composte da file eseguibili, file di configurazione, immagini e altro ancora.

  Le implementazioni che utilizzano la piattaforma di elaborazione EC2/on-premise gestiscono il modo in cui il traffico viene indirizzato alle istanze utilizzando un tipo di distribuzione locale o blu/verde. Per ulteriori informazioni, consulta [Panoramica dei tipi di implementazione CodeDeploy](#welcome-deployment-overview).
+ **AWS Lambda**: utilizzato per distribuire applicazioni costituite da una versione aggiornata di una funzione Lambda. AWS Lambda gestisce la funzione Lambda in un ambiente di calcolo serverless costituito da una struttura di calcolo ad alta disponibilità. Tutta l'amministrazione delle risorse di calcolo viene eseguita da. AWS Lambda Per ulteriori informazioni, vedere [Serverless Computing and Applications](https://aws.amazon.com/serverless/). Per ulteriori informazioni sulle AWS Lambda funzioni Lambda, vedere. [AWS Lambda](https://aws.amazon.com/lambda/)

  Puoi gestire il modo in cui il traffico viene spostato verso le versioni aggiornate della funzione Lambda durante un'implementazione scegliendo una configurazione canary, lineare o. all-at-once 
+ **Amazon ECS**: utilizzato per distribuire un'applicazione containerizzata Amazon ECS come set di attività. CodeDeploy esegue una blue/green distribuzione installando una versione aggiornata dell'applicazione come nuovo set di attività sostitutivo. CodeDeploy reindirizza il traffico di produzione dal set di attività dell'applicazione originale al set di attività sostitutivo. Il set di attività originale viene terminato una volta completata l'implementazione. Per ulteriori informazioni su Amazon ECS, consulta [Amazon Elastic Container Service](https://aws.amazon.com/ecs/).

  Puoi gestire il modo in cui il traffico viene spostato verso il set di attività aggiornato durante una distribuzione scegliendo una configurazione canaria, lineare o. all-at-once
**Nota**  
Le blue/green implementazioni di Amazon ECS sono supportate utilizzando entrambi e. CodeDeploy CloudFormation I dettagli relativi a queste distribuzioni sono descritti nelle sezioni successive.

La tabella seguente descrive come CodeDeploy i componenti vengono utilizzati con ciascuna piattaforma di elaborazione. Per ulteriori informazioni, consulta: 
+  [Utilizzo dei gruppi di distribuzione in CodeDeploy](deployment-groups.md) 
+  [Utilizzo delle distribuzioni in CodeDeploy](deployments.md) 
+  [Utilizzo delle configurazioni di distribuzione in CodeDeploy](deployment-configurations.md) 
+  [Utilizzo delle revisioni delle applicazioni per CodeDeploy](application-revisions.md) 
+  [Utilizzo delle applicazioni in CodeDeploy](applications.md) 


| CodeDeploy componente | EC2/locale | AWS Lambda | Amazon ECS | 
| --- | --- | --- | --- | 
| Gruppo di distribuzione | Distribuisce una revisione a un set di istanze. | Implementa una nuova versione di una funzione Lambda serverless su un'infrastruttura di elaborazione ad alta disponibilità. | Speciifica il servizio Amazon ECS con l'applicazione containerizzata da distribuire come set di attività, un listener di produzione e di test opzionale utilizzato per servire il traffico verso l'applicazione distribuita, quando reindirizzare il traffico e terminare il set di attività originale dell'applicazione distribuita e le impostazioni opzionali di attivazione, allarme e rollback. | 
| Implementazione | Implementa una nuova revisione composta da un'applicazione e un file. AppSpec AppSpec specifica come distribuire l'applicazione sulle istanze di un gruppo di distribuzione. | Sposta il traffico di produzione da una versione di una funzione Lambda a una nuova versione della stessa funzione. Il AppSpec file specifica quale versione della funzione Lambda distribuire. | Implementa una versione aggiornata di un'applicazione containerizzata Amazon ECS come nuovo set di attività sostitutivo. CodeDeploy reindirizza il traffico di produzione dal set di attività con la versione originale al nuovo set di attività sostitutivo con la versione aggiornata. Quando la distribuzione giunge a completamento, il set di attività originale viene terminato. | 
| Configurazione dell’implementazione | Impostazioni che determinano la velocità di distribuzione e il numero minimo di istanze che devono essere integre in qualsiasi momento durante una distribuzione. | Impostazioni che determinano in che modo il traffico viene spostato verso le versioni aggiornate della funzione Lambda. | Impostazioni che determinano in che modo il traffico viene spostato verso il set di attività Amazon ECS aggiornato. | 
| Revision | Una combinazione di AppSpec file e file di applicazione, come file eseguibili, file di configurazione e così via. | Un AppSpec file che specifica la funzione Lambda da distribuire e le funzioni Lambda che possono eseguire test di convalida durante gli hook degli eventi del ciclo di vita della distribuzione. |  Un AppSpec file che specifica: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/codedeploy/latest/userguide/welcome.html)  | 
| Applicazione | Raccolta di gruppi di distribuzione e revisioni. Un'applicazione EC2/on-premise utilizza la piattaforma di calcolo EC2/on-premise. | Raccolta di gruppi di distribuzione e revisioni. Un'applicazione utilizzata per una AWS Lambda distribuzione utilizza la piattaforma di calcolo AWS Lambda serverless. | Raccolta di gruppi di distribuzione e revisioni. Un'applicazione utilizzata per una distribuzione Amazon ECS utilizza la piattaforma di calcolo Amazon ECS. | 

## Panoramica dei tipi di implementazione CodeDeploy
<a name="welcome-deployment-overview"></a>

CodeDeploy offre due opzioni di tipo di distribuzione:
+ **Distribuzione sul posto**: l'applicazione su ogni istanza del gruppo di distribuzione viene interrotta, viene installata la revisione più recente dell'applicazione e la nuova versione dell'applicazione viene avviata e convalidata. È possibile utilizzare un sistema di bilanciamento del carico in modo che ogni istanza venga annullata durante la distribuzione e quindi ripristinata in servizio al termine della distribuzione. Solo le distribuzioni che utilizzano la piattaforma di elaborazione EC2/on-premise possono utilizzare distribuzioni sul posto. Per ulteriori informazioni sulle implementazioni sul posto, consulta. [Panoramica di una distribuzione sul posto](#welcome-deployment-overview-in-place)
**Nota**  
AWS Le distribuzioni Lambda e Amazon ECS non possono utilizzare un tipo di distribuzione sul posto.
+ Implementazione **blu/verde: il comportamento della distribuzione** dipende dalla piattaforma di elaborazione utilizzata:
  + **Blue/green on an EC2/On-Piattaforma di elaborazione locale**: le istanze in un gruppo di distribuzione (l'ambiente originale) vengono sostituite da un diverso set di istanze (l'ambiente sostitutivo) utilizzando questi passaggi:
    + Le istanze vengono fornite per l'ambiente sostitutivo.
    + La revisione più recente dell'applicazione viene installata sulle istanze sostitutive.
    + Si verifica un tempo di attesa opzionale per attività come il test delle applicazioni e la verifica del sistema.
    + Le istanze nell'ambiente sostitutivo vengono registrate con uno o più sistemi di bilanciamento del carico Elastic Load Balancing, causando il reindirizzamento del traffico verso di essi. Le istanze nell'ambiente originale vengono cancellate e possono essere terminate o mantenute in esecuzione per altri usi.
**Nota**  
Se utilizzi una piattaforma di elaborazione EC2/on-premise, tieni presente che le blue/green distribuzioni funzionano solo con istanze Amazon EC2.
  + **Blu/verde su una piattaforma di elaborazione AWS Lambda Amazon ECS** **o Amazon: il traffico viene spostato in incrementi in base a una configurazione **canaria**, lineare o di distribuzione. **all-at-once****
  + **Implementazioni blu/verdi tramite CloudFormation**: il traffico viene spostato dalle risorse attuali alle risorse aggiornate come parte di un aggiornamento dello stack. CloudFormation Attualmente sono supportate solo le implementazioni ECS. blue/green 

  Per ulteriori informazioni sulle blue/green distribuzioni, consulta. [Panoramica di una distribuzione blue/green](#welcome-deployment-overview-blue-green)

**Nota**  
Utilizzando l' CodeDeploy agente, è possibile eseguire una distribuzione su un'istanza a cui si è effettuato l'accesso senza la necessità di un'applicazione, di un gruppo di distribuzione o persino di un AWS account. Per informazioni, consulta [Utilizzare l' CodeDeploy agente per convalidare un pacchetto di distribuzione su un computer locale](deployments-local.md).

**Topics**
+ [Panoramica di una distribuzione sul posto](#welcome-deployment-overview-in-place)
+ [Panoramica di una distribuzione blue/green](#welcome-deployment-overview-blue-green)

### Panoramica di una distribuzione sul posto
<a name="welcome-deployment-overview-in-place"></a>

**Nota**  
AWS Le distribuzioni Lambda e Amazon ECS non possono utilizzare un tipo di distribuzione sul posto.

Ecco come funziona una distribuzione sul posto:

1. Innanzitutto, si creano contenuti distribuibili sulla macchina di sviluppo locale o in un ambiente simile, quindi si aggiunge un *file (file) AppSpec con le specifiche dell'applicazione*. Il AppSpec file è unico per. CodeDeploy Definisce le azioni di distribuzione che si CodeDeploy desidera eseguire. Raggruppi il contenuto distribuibile e il AppSpec file in un file di archivio, quindi lo carichi in un bucket Amazon S3 o in un repository. GitHub Questo file di archivio viene chiamato *revisione dell'applicazione* (o semplicemente *revisione*).

1. Successivamente, fornisci CodeDeploy informazioni sulla tua distribuzione, ad esempio da quale bucket o GitHub repository Amazon S3 estrarre la revisione e su quale set di istanze Amazon EC2 distribuirne il contenuto. CodeDeploy *chiama un insieme di istanze Amazon EC2 un gruppo di distribuzione.* Un gruppo di distribuzione contiene istanze Amazon EC2 con tag individuali, istanze Amazon EC2 in gruppi Amazon EC2 Auto Scaling o entrambi.

   Ogni volta che carichi con successo una nuova revisione di un'applicazione che desideri distribuire al gruppo di distribuzione, quel bundle viene impostato come *revisione di destinazione* per il gruppo di distribuzione. In altre parole, la revisione dell'applicazione attualmente destinata alla distribuzione è la revisione target, che è anche la revisione che viene utilizzata per le distribuzioni automatiche.

1. Successivamente, l' CodeDeploy agente di ogni istanza esegue un sondaggio CodeDeploy per determinare cosa e quando estrarre dal GitHub bucket o dal repository Amazon S3 specificato.

1. Infine, l' CodeDeploy agente di ogni istanza estrae la revisione di destinazione dal bucket GitHub o dal repository Amazon S3 e, utilizzando le istruzioni nel file, distribuisce AppSpec i contenuti nell'istanza.

 CodeDeploy tiene traccia delle distribuzioni in modo da poter conoscere lo stato della distribuzione, i parametri di configurazione della distribuzione, lo stato dell'istanza e così via.

### Panoramica di una distribuzione blue/green
<a name="welcome-deployment-overview-blue-green"></a>

Una blue/green distribuzione viene utilizzata per aggiornare le applicazioni riducendo al minimo le interruzioni causate dalle modifiche di una nuova versione dell'applicazione. CodeDeploy effettua il provisioning della nuova versione dell'applicazione insieme a quella precedente prima di reindirizzare il traffico di produzione. 
+  **AWS Lambda**: il traffico viene spostato da una versione di una funzione Lambda a una nuova versione della stessa funzione Lambda. 
+  **Amazon ECS**: il traffico viene spostato da un'attività impostata nel servizio Amazon ECS a un'attività aggiornata e sostitutiva impostata nello stesso servizio Amazon ECS. 
+  **EC2/On-premise**: il traffico viene spostato da un set di istanze nell'ambiente originale a un set di istanze sostitutivo. 

Tutte le implementazioni AWS Lambda e Amazon ECS sono distribuite e offrono una serie di vantaggi rispetto a una blue/green. An EC2/On-Premises deployment can be in-place or blue/green. A blue/green distribuzione sul posto:
+ È possibile installare e testare un'applicazione nel nuovo ambiente di sostituzione e distribuirla alla produzione semplicemente reindirizzando il traffico.
+  Se utilizzi la piattaforma di elaborazione EC2/on-premise, tornare alla versione più recente di un'applicazione è più rapido e affidabile. Questo perché il traffico può essere instradato nuovamente verso le istanze originali a patto che non siano state terminate. Con una distribuzione in loco, è necessario eseguire il rollback delle versioni ridistribuendo la versione precedente dell'applicazione.
+ Se utilizzi la piattaforma di calcolo EC2/on-premise, vengono fornite nuove istanze per una distribuzione e riflettono la maggior parte delle configurazioni del server. blue/green up-to-date In questo modo, è possibile evitare i tipi di problemi talvolta associati alle istanze con esecuzione prolungata.
+ Se utilizzi la piattaforma di calcolo AWS Lambda, puoi controllare come il traffico viene spostato dalla versione originale della funzione Lambda alla nuova versione della AWS funzione Lambda. AWS 
+ Se utilizzi la piattaforma di calcolo Amazon ECS, puoi controllare come il traffico viene spostato dal set di attività originale al nuovo set di attività.

Una blue/green distribuzione con CloudFormation può utilizzare uno dei seguenti metodi:
+ **CloudFormation modelli per le distribuzioni**: quando si configurano le distribuzioni con i CloudFormation modelli, le distribuzioni vengono attivate dagli aggiornamenti. CloudFormation Quando modifichi una risorsa e carichi una modifica al modello, un aggiornamento dello stack avvia la nuova distribuzione. CloudFormation Per un elenco delle risorse che puoi utilizzare nei CloudFormation modelli, consulta. [CloudFormation modelli di CodeDeploy riferimento](reference-cloudformation-templates.md)
+ **Distribuzioni blu/verdi tramite CloudFormation**: puoi utilizzarle CloudFormation per gestire le tue blue/green distribuzioni tramite aggiornamenti dello stack. È possibile definire le risorse blu e verdi, oltre a specificare le impostazioni di routing e stabilizzazione del traffico, all'interno del modello di stack. Quindi, se aggiorni risorse selezionate durante un aggiornamento dello stack, CloudFormation genera tutte le risorse verdi necessarie, sposta il traffico in base ai parametri di routing del traffico specificati ed elimina le risorse blu. *Per ulteriori informazioni, consulta [Automatizza le blue/green distribuzioni di Amazon ECS tramite l' CodeDeploy utilizzo CloudFormation nella Guida](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/blue-green.html) per l'utente.AWS CloudFormation *
**Nota**  
Supportato solo per le blue/green distribuzioni Amazon ECS.

Il modo in cui configuri una blue/green distribuzione dipende dalla piattaforma di elaborazione utilizzata dalla distribuzione.



#### Implementazione Blue/Green su una piattaforma di elaborazione AWS Lambda Amazon ECS o Amazon ECS
<a name="blue-green-lambda-compute-type"></a>

Se utilizzi la piattaforma di calcolo Amazon ECS AWS Lambda o Amazon ECS, devi indicare in che modo il traffico viene spostato dalla funzione originale AWS Lambda o dal set di attività Amazon ECS alla nuova funzione o set di attività. Per indicare come viene spostato il traffico, devi specificare una delle seguenti configurazioni di distribuzione:
+ **canarino**
+ **lineare**
+ **all-at-once**

Per informazioni su come viene spostato il traffico in una configurazione canaria, lineare o di all-at-once distribuzione, vedere. [Configurazione dell’implementazione](primary-components.md#primary-components-deployment-configuration)

Per i dettagli sulla configurazione della distribuzione Lambda, consulta. [Configurazioni di distribuzione su una piattaforma di elaborazione AWS Lambda](deployment-configurations.md#deployment-configuration-lambda)

Per dettagli sulla configurazione di distribuzione di Amazon ECS, consulta[Configurazioni delle implementazioni su una piattaforma di calcolo Amazon ECS](deployment-configurations.md#deployment-configuration-ecs).

#### Blue/Green deployment on an EC2/onpiattaforma di elaborazione -premise
<a name="blue-green-server-compute-type"></a>

**Nota**  
È necessario utilizzare le istanze Amazon EC2 per le blue/green distribuzioni sulla piattaforma di elaborazione EC2/on-premise. Le istanze locali non sono supportate per il tipo di distribuzione. blue/green 

Se utilizzi la piattaforma di calcolo EC2/on-premise, vale quanto segue:

 È necessario disporre di una o più istanze Amazon EC2 con tag di identificazione Amazon EC2 o di un gruppo Amazon EC2 Auto Scaling. Le istanze devono soddisfare anche i seguenti requisiti:
+ Ogni istanza Amazon EC2 deve avere il profilo di istanza IAM corretto collegato.
+ L' CodeDeploy agente deve essere installato e in esecuzione su ogni istanza.

**Nota**  
In genere è inoltre in esecuzione una revisione dell'applicazione sulle istanze dell'ambiente originale, ma questo non è un requisito per la distribuzione. blue/green 

Quando si crea un gruppo di distribuzione utilizzato nelle blue/green distribuzioni, è possibile scegliere come specificare l'ambiente sostitutivo:

**Copia un gruppo Amazon EC2 Auto Scaling esistente**: blue/green durante la CodeDeploy distribuzione, crea le istanze per il tuo ambiente sostitutivo durante la distribuzione. Con questa opzione, CodeDeploy utilizza il gruppo Amazon EC2 Auto Scaling specificato come modello per l'ambiente sostitutivo, incluso lo stesso numero di istanze in esecuzione e molte altre opzioni di configurazione.

**Scegli le istanze manualmente**: puoi specificare le istanze da conteggiare come sostitutive utilizzando i tag delle istanze Amazon EC2, i nomi dei gruppi di Amazon EC2 Auto Scaling o entrambi. Se scegli questa opzione, non devi specificare le istanze per l'ambiente di sostituzione fino a quando non crei una distribuzione.

Come funziona:

1. Hai già delle istanze o un gruppo Amazon EC2 Auto Scaling che funge da ambiente originale. La prima volta che esegui una blue/green distribuzione, in genere utilizzi istanze già utilizzate in una distribuzione locale.

1. In un' CodeDeploy applicazione esistente, si crea un gruppo di blue/green distribuzione in cui, oltre alle opzioni richieste per una distribuzione sul posto, si specifica quanto segue:
   + Il sistema di bilanciamento del carico o i sistemi di bilanciamento del carico che indirizzano il traffico dall'ambiente originale all'ambiente sostitutivo durante il processo di distribuzione. blue/green 
   + Se reinstradare il traffico verso l'ambiente di sostituzione immediatamente o attendere di reinstradarlo manualmente. 
   + La velocità in cui il traffico viene instradato verso le istanze di sostituzione.
   + Se le istanze sostituite vengono terminate o lasciate in esecuzione.

1. Crei una distribuzione per questo gruppo di distribuzione durante la quale si verifica quanto segue:

   1. Se scegli di copiare un gruppo Amazon EC2 Auto Scaling, le istanze vengono fornite per l'ambiente sostitutivo.

   1. La revisione dell'applicazione che specifichi per la distribuzione viene installata sulle istanze di sostituzione.

   1. Se è stato specificato un tempo di attesa nelle impostazioni del gruppo di distribuzione, la distribuzione viene messa in pausa. Questo è il momento in cui puoi eseguire i test e le verifiche nell'ambiente di sostituzione. Se non reinstradi manualmente il traffico prima della fine del periodo di attesa, la distribuzione viene arrestata.

   1. Le istanze nell'ambiente sostitutivo vengono registrate con un sistema di bilanciamento del carico Elastic Load Balancing e il traffico inizia a essere indirizzato verso di esse.

   1. Viene annullata la registrazione delle istanze nell'ambiente originale e, in base a ciò che hai specificato nel gruppo di distribuzione, tali istanze vengono terminate o lasciate in esecuzione.

#### Distribuzione Blue/Green tramite CloudFormation
<a name="blue-green-cfn-config-type"></a>

Puoi gestire le implementazioni CodeDeploy blu/verdi modellando le tue risorse con un modello. CloudFormation 

Quando si modellano le blue/green risorse utilizzando un CloudFormation modello, si crea un aggiornamento dello stack che aggiorna il set di attività. CloudFormation Il traffico di produzione passa dal set di attività originale del servizio a un set di attività sostitutivo tutto in una volta, con distribuzioni lineari e tempi di bake o con distribuzioni canary. L'aggiornamento dello stack avvia una distribuzione in CodeDeploy. È possibile visualizzare lo stato e la cronologia della distribuzione in CodeDeploy, ma non è possibile creare o gestire CodeDeploy risorse al di fuori del CloudFormation modello.

**Nota**  
Per le blue/green distribuzioni tramite CloudFormation, non è necessario creare un' CodeDeploy applicazione o un gruppo di distribuzione.

Questo metodo supporta solo le blue/green distribuzioni di Amazon ECS. Per ulteriori informazioni sulle blue/green distribuzioni tramite, consulta. CloudFormation[Crea una blue/green distribuzione Amazon ECS tramite CloudFormation](deployments-create-ecs-cfn.md)

## Ci piacerebbe conoscere la tua opinione
<a name="welcome-contact-us"></a>

Apprezziamo il tuo feedback. Per contattarci, visita [il CodeDeploy ](https://forums.aws.amazon.com/forum.jspa?forumID=179) forum.

**Argomenti**
+ [Primary Components](primary-components.md)
+ [Deployments](deployment-steps.md)
+ [Application Specification Files](application-specification-files.md)

# CodeDeploy componenti primari
<a name="primary-components"></a>

Prima di iniziare a utilizzare il servizio, è necessario acquisire familiarità con i componenti principali del processo di distribuzione. CodeDeploy 

**Topics**
+ [Applicazione](#primary-components-application)
+ [Compute platform (Piattaforma di calcolo)](#primary-components-compute-platform)
+ [Configurazione dell’implementazione](#primary-components-deployment-configuration)
+ [Gruppo di distribuzione](#primary-components-deployment-group)
+ [Il tipo di implementazione](#primary-components-deployment-type)
+ [Profilo dell’istanza IAM](#primary-components-iam-instance-profile)
+ [Revision](#primary-components-revision)
+ [Ruolo del servizio](#primary-components-service-role)
+ [Revisione dell'obiettivo](#primary-components-target-revision)
+ [Altri componenti](#primary-components-other-components)

## Applicazione
<a name="primary-components-application"></a>

Un'*applicazione* è un nome che identifica in modo univoco l'applicazione che desideri distribuire. CodeDeploy utilizza questo nome, che funge da contenitore, per garantire che durante una distribuzione venga fatto riferimento alla combinazione corretta di revisione, configurazione di distribuzione e gruppo di distribuzione.

## Compute platform (Piattaforma di calcolo)
<a name="primary-components-compute-platform"></a>

Una piattaforma di *elaborazione è una piattaforma* su cui CodeDeploy distribuisce un'applicazione. Esistono tre piattaforme di elaborazione:
+ **EC2/On-Premises**: descrive le istanze di server fisici che possono essere istanze EC2 cloud Amazon, server locali o entrambi. Le applicazioni create utilizzando la piattaforma di calcolo EC2 /On-Premises possono essere composte da file eseguibili, file di configurazione, immagini e altro.

  Le distribuzioni che utilizzano la piattaforma di calcolo EC2 /On-Premises gestiscono il modo in cui il traffico viene indirizzato alle istanze utilizzando un tipo di distribuzione locale o blu/verde. Per ulteriori informazioni, consulta [Panoramica dei tipi di implementazione CodeDeploy](welcome.md#welcome-deployment-overview).
+ **AWS Lambda**: utilizzato per distribuire applicazioni costituite da una versione aggiornata di una funzione Lambda. AWS Lambda gestisce la funzione Lambda in un ambiente di calcolo serverless costituito da una struttura di calcolo ad alta disponibilità. Tutta l'amministrazione delle risorse di calcolo viene eseguita da. AWS Lambda Per ulteriori informazioni, vedere [Serverless Computing and Applications](https://aws.amazon.com/serverless/). Per ulteriori informazioni sulle AWS Lambda funzioni Lambda, vedere. [AWS Lambda](https://aws.amazon.com/lambda/)

  Puoi gestire il modo in cui il traffico viene spostato verso le versioni aggiornate della funzione Lambda durante un'implementazione scegliendo una configurazione canary, lineare o. all-at-once 
+ **Amazon ECS**: utilizzato per distribuire un'applicazione containerizzata Amazon ECS come set di attività. CodeDeploy esegue una blue/green distribuzione installando una versione aggiornata dell'applicazione come nuovo set di attività sostitutivo. CodeDeploy reindirizza il traffico di produzione dal set di attività dell'applicazione originale al set di attività sostitutivo. Il set di attività originale viene terminato una volta completata l'implementazione. Per ulteriori informazioni su Amazon ECS, consulta [Amazon Elastic Container Service](https://aws.amazon.com/ecs/).

  Puoi gestire il modo in cui il traffico viene spostato verso il set di attività aggiornato durante una distribuzione scegliendo una configurazione canaria, lineare o. all-at-once

**Nota**  
Le blue/green implementazioni di Amazon ECS sono supportate sia tramite che. CodeDeploy CloudFormation I dettagli relativi a queste distribuzioni sono descritti nelle sezioni successive.

## Configurazione dell’implementazione
<a name="primary-components-deployment-configuration"></a>

Una *configurazione di distribuzione* è un insieme di regole di distribuzione e condizioni di successo e fallimento della distribuzione utilizzate CodeDeploy durante una distribuzione. Se la distribuzione utilizza la piattaforma di calcolo EC2 /On-Premises, è possibile specificare il numero minimo di istanze integre per la distribuzione. Se la tua distribuzione utilizza la piattaforma di calcolo Amazon ECS AWS Lambda o la piattaforma di calcolo Amazon ECS, puoi specificare in che modo il traffico viene indirizzato alla funzione Lambda aggiornata o al set di attività ECS.

Per ulteriori informazioni su come specificare il numero minimo di host integri per una distribuzione che utilizza la piattaforma di calcolo /On-Premises, consulta EC2. [Informazioni sul numero minimo di istanze integre](instances-health.md#minimum-healthy-hosts)

Le seguenti configurazioni di distribuzione specificano come viene instradato il traffico durante una distribuzione che utilizza la piattaforma di calcolo Lambda o ECS:
+ **Canary:** il traffico viene trasferito in due incrementi. Puoi scegliere tra opzioni canarie predefinite che specificano la percentuale di traffico trasferito alla funzione Lambda aggiornata o all'attività ECS impostata nel primo incremento e l'intervallo, in minuti, prima che il traffico rimanente venga spostato nel secondo incremento. 
+ **Lineare**: il traffico viene trasferito in incrementi uguali con lo stesso intervallo di tempo, in minuti, tra ciascun incremento. Puoi scegliere tra opzioni lineari predefinite che specificano la percentuale del traffico trasferito in ogni incremento e l'intervallo di tempo, in minuti, tra ciascun incremento.
+ **Rll-at-once: Tutto il traffico viene spostato contemporaneamente dalla funzione Lambda o dal set di attività ECS originale alla funzione o al set di attività aggiornato.**

## Gruppo di distribuzione
<a name="primary-components-deployment-group"></a>

Un *gruppo di distribuzione* è un insieme di singole istanze. Un gruppo di distribuzione contiene istanze con tag individuali, EC2 istanze Amazon in gruppi Amazon EC2 Auto Scaling o entrambi. Per informazioni sui tag delle EC2 istanze Amazon, consulta [Working with Tags Using the Console](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#Using_Tags_Console). Per informazioni sulle istanze locali, consulta [Utilizzo di istanze locali per CodeDeploy](instances-on-premises.md). Per informazioni su Amazon EC2 Auto Scaling, consulta. [Integrazione CodeDeploy con Amazon EC2 Auto Scaling](integrations-aws-auto-scaling.md)

## Il tipo di implementazione
<a name="primary-components-deployment-type"></a>

Un *tipo di distribuzione* è un metodo utilizzato per rendere disponibile la revisione più recente dell'applicazione sulle istanze di un gruppo di distribuzione. Esistono due tipi di distribuzione:
+ **Distribuzione sul posto**: l'applicazione su ogni istanza del gruppo di distribuzione viene interrotta, viene installata la revisione più recente dell'applicazione e la nuova versione dell'applicazione viene avviata e convalidata. È possibile utilizzare un sistema di bilanciamento del carico in modo che ogni istanza venga annullata durante la distribuzione e quindi ripristinata in servizio al termine della distribuzione. Solo le distribuzioni che utilizzano la piattaforma di calcolo EC2 /On-Premises possono utilizzare le distribuzioni sul posto. Per ulteriori informazioni sulle distribuzioni sul posto, vedere. [Panoramica di una distribuzione sul posto](welcome.md#welcome-deployment-overview-in-place)
+ **Implementazione blu/verde**: il comportamento della distribuzione dipende dalla piattaforma di elaborazione utilizzata:
  + **Blue/green on an EC2/On-Piattaforma di elaborazione locale**: le istanze in un gruppo di distribuzione (l'ambiente originale) vengono sostituite da un diverso set di istanze (l'ambiente sostitutivo) utilizzando questi passaggi:
    + Le istanze vengono fornite per l'ambiente sostitutivo.
    + La revisione più recente dell'applicazione viene installata sulle istanze sostitutive.
    + Si verifica un tempo di attesa opzionale per attività come il test delle applicazioni e la verifica del sistema.
    + Le istanze nell'ambiente sostitutivo vengono registrate con uno o più sistemi di bilanciamento del carico Elastic Load Balancing, causando il reindirizzamento del traffico verso di essi. Le istanze nell'ambiente originale vengono cancellate e possono essere terminate o mantenute in esecuzione per altri usi.
**Nota**  
Se utilizzi una piattaforma di calcolo EC2 /On-Premises, tieni presente che le blue/green distribuzioni funzionano solo con istanze Amazon. EC2 
  + **Blu/verde su una piattaforma di calcolo AWS Lambda Amazon ECS** **o Amazon: il traffico viene spostato in incrementi in base a una configurazione **canaria**, lineare o di distribuzione. **all-at-once****
  + **Implementazioni blu/verdi tramite CloudFormation**: il traffico viene spostato dalle risorse attuali alle risorse aggiornate come parte di un aggiornamento dello stack. CloudFormation Attualmente sono supportate solo le implementazioni ECS. blue/green 

  Per ulteriori informazioni sulle blue/green distribuzioni, consulta. [Panoramica di una distribuzione blue/green](welcome.md#welcome-deployment-overview-blue-green)

**Nota**  
Le blue/green implementazioni di Amazon ECS sono supportate utilizzando entrambi e. CodeDeploy CloudFormation I dettagli relativi a queste distribuzioni sono descritti nelle sezioni successive.

## Profilo dell’istanza IAM
<a name="primary-components-iam-instance-profile"></a>

Un *profilo di istanza* IAM è un ruolo IAM che colleghi alle tue EC2 istanze Amazon. Questo profilo include le autorizzazioni necessarie per accedere ai bucket GitHub o ai repository Amazon S3 in cui sono archiviate le applicazioni. Per ulteriori informazioni, consulta [Fase 4: crea un profilo di istanza IAM per le tue istanze Amazon EC2](getting-started-create-iam-instance-profile.md).

## Revision
<a name="primary-components-revision"></a>

Una *revisione* è una versione dell'applicazione. Una revisione della distribuzione AWS Lambda è un file in formato YAML o JSON che specifica le informazioni sulla funzione Lambda da distribuire. Una revisione della distribuzione EC2 /On-Premises è un file di archivio che contiene il contenuto di origine (codice sorgente, pagine Web, file eseguibili e script di distribuzione) e un file di specifiche dell'applicazione (file). AppSpec AWS Le revisioni Lambda possono essere archiviate in bucket Amazon S3. EC2/Le revisioni locali vengono archiviate in bucket o repository Amazon S3. GitHub Per Amazon S3, una revisione è identificata in modo univoco dalla relativa chiave oggetto Amazon S3 e dalla sua ETag versione o da entrambe. Infatti GitHub, una revisione è identificata in modo univoco dal relativo ID di commit.

## Ruolo del servizio
<a name="primary-components-service-role"></a>

Un *ruolo di servizio* è un ruolo IAM che concede le autorizzazioni a un AWS servizio in modo che possa accedere alle AWS risorse. Le policy associate al ruolo di servizio determinano a quali AWS risorse il servizio può accedere e le azioni che può eseguire con tali risorse. Infatti CodeDeploy, un ruolo di servizio viene utilizzato per quanto segue:
+ Per leggere i tag applicati alle istanze o i nomi dei gruppi Amazon EC2 Auto Scaling associati alle istanze. Ciò consente di CodeDeploy identificare le istanze in cui può distribuire applicazioni.
+ Per eseguire operazioni su istanze, gruppi Amazon EC2 Auto Scaling e sistemi di bilanciamento del carico Elastic Load Balancing.
+ Pubblicare informazioni su argomenti di Amazon SNS in modo che le notifiche possano essere inviate quando si verificano eventi di distribuzione o istanza specifici.
+ Per recuperare informazioni sugli CloudWatch allarmi per configurare il monitoraggio degli allarmi per le distribuzioni.

Per ulteriori informazioni, consulta [Fase 2: Creare un ruolo di servizio per CodeDeploy](getting-started-create-service-role.md).

## Revisione dell'obiettivo
<a name="primary-components-target-revision"></a>

Una *revisione target* è la versione più recente della revisione dell'applicazione che hai caricato nel tuo repository e che desideri distribuire alle istanze di un gruppo di distribuzione. In altre parole, la revisione dell'applicazione attualmente destinata alla distribuzione. che è anche la revisione che viene utilizzata per le distribuzioni automatiche.

## Altri componenti
<a name="primary-components-other-components"></a>

Per informazioni sugli altri componenti del CodeDeploy flusso di lavoro, consulta i seguenti argomenti:
+ [Scegli un tipo di CodeDeploy repository](application-revisions-repository-type.md)
+  [CodeDeploy implementazioni](deployment-steps.md)
+  [CodeDeploy file delle specifiche dell'applicazione (AppSpec)](application-specification-files.md)
+  [CodeDeploy salute dell'istanza](instances-health.md)
+  [Collaborazione con l' CodeDeploy agente](codedeploy-agent.md)
+  [Utilizzo di istanze locali per CodeDeploy](instances-on-premises.md)

# CodeDeploy implementazioni
<a name="deployment-steps"></a>

Questo argomento fornisce informazioni sulle componenti e sul flusso di lavoro delle distribuzioni in CodeDeploy. Il processo di distribuzione varia a seconda della piattaforma di elaborazione o del metodo di distribuzione (Lambda, Amazon ECS, EC2/on-premise o AWS CloudFormation tramite) che usi per le distribuzioni.

**Topics**
+ [Implementazioni su una piattaforma di elaborazione Lambda AWS](deployment-steps-lambda.md)
+ [Implementazioni su una piattaforma di calcolo Amazon ECS](deployment-steps-ecs.md)
+ [Distribuzioni su una piattaforma di elaborazione EC2/on-premise](deployment-steps-server.md)

# Implementazioni su una piattaforma di elaborazione Lambda AWS
<a name="deployment-steps-lambda"></a>

Questo argomento fornisce informazioni sui componenti e sul flusso di lavoro delle CodeDeploy distribuzioni che utilizzano la piattaforma di calcolo AWS Lambda. 

**Topics**
+ [Flusso di lavoro di implementazione su una piattaforma di elaborazione AWS Lambda](#deployment-process-workflow-lambda)
+ [Caricamento della revisione dell'applicazione](#deployment-steps-uploading-your-app-lambda)
+ [Creazione di gruppi di applicazioni e distribuzione](#deployment-steps-registering-app-deployment-groups-lambda)
+ [Implementazione della revisione dell'applicazione](#deployment-steps-deploy-lambda)
+ [Aggiornamento dell'applicazione](#deployment-steps-updating-your-app-lambda)
+ [Distribuzioni interrotte e non riuscite](#deployment-stop-fail-lambda)
+ [Ridistribuzioni e rollback della distribuzione](#deployment-rollback-lambda)

## Flusso di lavoro di implementazione su una piattaforma di elaborazione AWS Lambda
<a name="deployment-process-workflow-lambda"></a>

Il seguente diagramma mostra le fasi principali nella distribuzione di funzioni AWS Lambda nuove e aggiornate.

![\[Come CodeDeploy implementa una funzione nuova o aggiornata AWS Lambda .\]](http://docs.aws.amazon.com/it_it/codedeploy/latest/userguide/images/deployment-process-lambda.png)


Queste fasi includono:

1. La creazione di un'applicazione e l'assegnazione di un nome che identifichi in modo univoco le revisioni dell'applicazione da distribuire. Per distribuire le funzioni Lambda, scegli la piattaforma di calcolo AWS Lambda quando crei la tua applicazione. CodeDeploy utilizza questo nome durante una distribuzione per assicurarsi che faccia riferimento ai componenti di distribuzione corretti, come il gruppo di distribuzione, la configurazione di distribuzione e la revisione dell'applicazione. Per ulteriori informazioni, consulta [Crea un'applicazione con CodeDeploy](applications-create.md). 

1. L'impostazione di un gruppo di distribuzione specificando il nome del gruppo stesso.

1. Scegli una configurazione di distribuzione per specificare in che modo il traffico viene spostato dalla versione AWS Lambda della funzione originale alla nuova versione della funzione Lambda. Per ulteriori informazioni, consulta [Visualizza i dettagli della configurazione di distribuzione con CodeDeploy](deployment-configurations-view-details.md).

1. Caricamento di un file di *specifiche dell'applicazione (AppSpec file*) su Amazon S3. Il AppSpec file specifica una versione della funzione Lambda e le funzioni Lambda utilizzate per convalidare la distribuzione. Se non desideri creare un AppSpec file, puoi specificare una versione della funzione Lambda e le funzioni di convalida della distribuzione Lambda direttamente nella console utilizzando YAML o JSON. Per ulteriori informazioni, consulta [Utilizzo delle revisioni delle applicazioni per CodeDeploy](application-revisions.md).

1. Distribuisci la revisione dell'applicazione nel gruppo di distribuzione. AWS CodeDeploy distribuisce la revisione della funzione Lambda specificata. Il traffico viene spostato sulla revisione della funzione Lambda utilizzando il file di AppSpec distribuzione scelto al momento della creazione dell'applicazione. Per ulteriori informazioni, consulta [Crea una distribuzione con CodeDeploy](deployments-create.md).

1. Il controllo dei risultati della distribuzione. Per ulteriori informazioni, consulta [Monitoraggio delle implementazioni in CodeDeploy](monitoring.md).

## Caricamento della revisione dell'applicazione
<a name="deployment-steps-uploading-your-app-lambda"></a>

Inserisci un AppSpec file in Amazon S3 o inseriscilo direttamente nella console o. AWS CLI Per ulteriori informazioni, consulta [CodeDeploy file delle specifiche dell'applicazione (AppSpec)](application-specification-files.md).

## Creazione di gruppi di applicazioni e distribuzione
<a name="deployment-steps-registering-app-deployment-groups-lambda"></a>

Un gruppo CodeDeploy di distribuzione su una piattaforma di calcolo AWS Lambda identifica una raccolta di uno o più file. AppSpec Ogni AppSpec file può distribuire una versione della funzione Lambda. Un gruppo di distribuzione definisce anche una serie di opzioni di configurazione per le distribuzioni future, ad esempio allarmi e configurazioni di rollback.

## Implementazione della revisione dell'applicazione
<a name="deployment-steps-deploy-lambda"></a>

Ora sei pronto per distribuire la revisione della funzione specificata nel AppSpec file nel gruppo di distribuzione. Puoi usare la CodeDeploy console o il comando [create-deployment](https://docs.aws.amazon.com/cli/latest/reference/deploy/create-deployment.html). Ci sono parametri che è possibile specificare per controllare la distribuzione, tra cui la revisione, il gruppo di distribuzione e la configurazione della distribuzione.

## Aggiornamento dell'applicazione
<a name="deployment-steps-updating-your-app-lambda"></a>

È possibile aggiornare l'applicazione e quindi utilizzare la CodeDeploy console o chiamare il comando [create-deployment](https://docs.aws.amazon.com/cli/latest/reference/deploy/create-deployment.html) per inviare una revisione. 

## Distribuzioni interrotte e non riuscite
<a name="deployment-stop-fail-lambda"></a>

È possibile utilizzare la CodeDeploy console o il comando [stop-deployment](https://docs.aws.amazon.com/cli/latest/reference/deploy/stop-deployment.html) per interrompere una distribuzione. Quando si tenta di arrestare la distribuzione, accade una di queste tre cose:
+ La distribuzione si arresta e l'operazione restituisce uno stato di successo. In questo caso, non vengono più eseguiti eventi del ciclo di vita della distribuzione sul gruppo di distribuzione per la distribuzione interrotta. 
+ La distribuzione non si arresta immediatamente e l'operazione restituisce uno stato in attesa. In questo caso, alcuni eventi del ciclo di vita di distribuzione potrebbe essere ancora in esecuzione sul gruppo di distribuzione. Una volta completata l'operazione in attesa, le chiamate successive per fermare la distribuzione restituiscono uno stato di successo.
+ La distribuzione non è in grado di arrestarsi e l'operazione restituisce un errore. Per ulteriori informazioni, consulta [ErrorInformation](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_ErrorInformation.html)[Errori comuni](https://docs.aws.amazon.com/codedeploy/latest/APIReference/CommonErrors.html) nell' AWS CodeDeploy API Reference.

Come per le implementazioni arrestate, la distribuzione non riuscita può causare l'esecuzione di alcuni eventi del ciclo di vita di distribuzione. Per scoprire perché una distribuzione non è riuscita, è possibile utilizzare la console CodeDeploy o analizzare i dati del file di log dalla distribuzione non riuscita. Per ulteriori informazioni, consultare [Revisione dell'applicazione e pulizia dei file di registro](codedeploy-agent.md#codedeploy-agent-revisions-logs-cleanup) e [Visualizzazione dei dati di registro per le distribuzioni CodeDeploy EC2/on-premise](deployments-view-logs.md).

## Ridistribuzioni e rollback della distribuzione
<a name="deployment-rollback-lambda"></a>

CodeDeploy implementa i rollback ridistribuendo, come nuova distribuzione, una revisione precedentemente distribuita. 

Puoi configurare un gruppo di distribuzione in modo che esegua automaticamente il rollback della distribuzione quando si soddisfano determinate condizioni, incluso quando una distribuzione non ha successo o viene raggiunta una soglia di monitoraggio degli allarmi. È inoltre possibile sostituire le impostazioni di rollback specificati per un gruppo di distribuzione in una singola distribuzione.

È inoltre possibile scegliere di eseguire il rollback di una distribuzione non riuscita ridistribuendo manualmente una revisione distribuita in precedenza. 

In tutti i casi, la distribuzione nuova o su cui è stato eseguito un rollback viene assegnato il relativo ID della distribuzione. L'elenco delle distribuzioni che è possibile visualizzare nella CodeDeploy console mostra quali sono il risultato di una distribuzione automatica. 

Per ulteriori informazioni, consulta [Ridistribuisci e ripristina una distribuzione con CodeDeploy](deployments-rollback-and-redeploy.md).

# Implementazioni su una piattaforma di calcolo Amazon ECS
<a name="deployment-steps-ecs"></a>

Questo argomento fornisce informazioni sui componenti e sul flusso di lavoro delle CodeDeploy distribuzioni che utilizzano la piattaforma di calcolo Amazon ECS. 

**Topics**
+ [Prima di iniziare una distribuzione di Amazon ECS](#deployment-steps-prerequisites-ecs)
+ [Flusso di lavoro di implementazione (alto livello) su una piattaforma di calcolo Amazon ECS](#deployment-process-workflow-ecs)
+ [Cosa succede durante una distribuzione di Amazon ECS](#deployment-steps-what-happens)
+ [Caricamento della revisione dell'applicazione](#deployment-steps-uploading-your-app-ecs)
+ [Creazione di gruppi di applicazioni e distribuzione](#deployment-steps-registering-app-deployment-groups-ecs)
+ [Implementazione della revisione dell'applicazione](#deployment-steps-deploy-ecs)
+ [Aggiornamento dell'applicazione](#deployment-steps-updating-your-app-ecs)
+ [Distribuzioni interrotte e non riuscite](#deployment-stop-fail-ecs)
+ [Ridistribuzioni e rollback della distribuzione](#deployment-rollback-ecs)
+ [blue/green Implementazioni Amazon ECS tramite AWS CloudFormation](#deployment-steps-ecs-cf)

## Prima di iniziare una distribuzione di Amazon ECS
<a name="deployment-steps-prerequisites-ecs"></a>

 Prima di iniziare la distribuzione di un'applicazione Amazon ECS, è necessario disporre di quanto segue. Alcuni requisiti vengono specificati al momento della creazione del gruppo di distribuzione e altri nel AppSpec file.


****  

| Requisito | Specificato nel | 
| --- | --- | 
| Cluster Amazon ECS | Gruppo di distribuzione | 
| Servizio Amazon ECS | Gruppo di distribuzione | 
| Application Load Balancer o Network Load Balancer | Gruppo di distribuzione | 
| Listener di produzione | Gruppo di distribuzione | 
| Listener di test (opzionale) | Gruppo di distribuzione | 
| Due gruppi target | Gruppo di distribuzione | 
| Definizione dell’attività di Amazon ECS | AppSpec file | 
| Nome del container | AppSpec archivio | 
| Porta del container | AppSpec archivio | 

**Cluster Amazon ECS**  
Un *cluster* Amazon ECS è un raggruppamento logico di processi o servizi. Specifichi il cluster Amazon ECS che contiene il servizio Amazon ECS quando crei il gruppo di distribuzione dell' CodeDeploy applicazione. Per ulteriori informazioni, consulta [i cluster Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ECS_clusters.html) nella Guida per l'*utente di Amazon Elastic Container Service*.

**Servizio Amazon ECS**  
Un *servizio* Amazon ECS mantiene ed esegue istanze specifiche di una definizione di attività in un cluster Amazon ECS. Il tuo servizio Amazon ECS deve essere abilitato per CodeDeploy. Per impostazione predefinita, un servizio Amazon ECS è abilitato per le distribuzioni Amazon ECS. Quando crei il tuo gruppo di distribuzione, scegli di distribuire un servizio Amazon ECS che si trova nel tuo cluster Amazon ECS. Per ulteriori informazioni, consulta [i servizi Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html) nella *Guida per l'utente di Amazon Elastic Container Service*.

**Application Load Balancer o Network Load Balancer**  
 È necessario utilizzare Elastic Load Balancing con il servizio Amazon ECS che si desidera aggiornare con una distribuzione Amazon ECS. È possibile utilizzare un Application Load Balancer o un Network Load Balancer. Ti consigliamo un Application Load Balancer per sfruttare funzionalità come la mappatura dinamica delle porte e le regole di routing e priorità basate sui percorsi. Il load balancer viene specificato quando si crea il gruppo di distribuzione dell'applicazione CodeDeploy . Per ulteriori informazioni, consulta [Configura un sistema di bilanciamento del carico, gruppi target e listener per le distribuzioni di CodeDeploy Amazon ECS](deployment-groups-create-load-balancer-for-ecs.md) la sezione [Creazione di un bilanciamento del carico](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create-load-balancer.html) nella *Guida per l'utente di Amazon Elastic Container Service*. 

**Uno o due ascoltatori**  
Un *listener* viene utilizzato dal sistema di bilanciamento del carico per indirizzare il traffico verso i tuoi gruppi target. Un listener di produzione è obbligatorio. Puoi specificare un secondo listener di test opzionale che indirizza il traffico verso il set di attività di sostituzione mentre esegui test di convalida. Puoi specificare uno o entrambi i listener al momento della creazione di un gruppo di distribuzione. Se usi la console Amazon ECS per creare il tuo servizio Amazon ECS, i tuoi listener vengono creati per te. Per ulteriori informazioni, consulta [Listeners for your application load balancer nella *Elastic Load Balancing User* Guide e Creazione di un servizio nella *Amazon Elastic* Container](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-listener.html) [Service](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create-service.html) User Guide.

**Due gruppi target di Amazon ECS**  
 Un *gruppo target* viene utilizzato per instradare il traffico verso un target registrato. Una distribuzione di Amazon ECS richiede due gruppi target: uno per il set di attività originale dell'applicazione Amazon ECS e uno per il set di attività sostitutivo. Durante la distribuzione, CodeDeploy crea un set di attività sostitutivo e reindirizza il traffico dal set di attività originale a quello nuovo. Devi specificare i gruppi target al momento di creare un gruppo di distribuzione dell'applicazione CodeDeploy .   
 Durante una distribuzione, CodeDeploy determina quale gruppo target è associato all'attività impostata nel servizio Amazon ECS con lo stato `PRIMARY` (questo è il set di attività originale), associa un gruppo target ad esso, quindi associa l'altro gruppo target al set di attività sostitutivo. Se effettui un'altra distribuzione, il gruppo target associato al set di attività originale della distribuzione attuale viene associato al set di attività di sostituzione della distribuzione successiva. Per ulteriori informazioni, consulta [Target groups for your application load balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-target-groups.html) nella *Elastic Load Balancing User Guide*. 

**Una definizione di attività Amazon ECS**  
 È necessaria una *definizione di attività* per eseguire il contenitore Docker che contiene l'applicazione Amazon ECS. L'ARN della definizione dell'attività viene specificato nel file dell' CodeDeploy AppSpec applicazione. Per ulteriori informazioni, consulta le [definizioni delle attività di Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definitions.html) nella *Guida per l'utente di Amazon Elastic Container Service* e[AppSpec sezione «risorse» per le distribuzioni di Amazon ECS](reference-appspec-file-structure-resources.md#reference-appspec-file-structure-resources-ecs). 

**Un contenitore per la tua applicazione Amazon ECS**  
 Un *container* Docker è un'unità di software che include il codice e le sue dipendenze in modo che l'applicazione possa essere eseguita. Un container isola l'applicazione in modo che funzioni in diversi ambienti di elaborazione. Il sistema di bilanciamento del carico indirizza il traffico verso un contenitore nel set di attività dell'applicazione Amazon ECS. Specificate il nome del contenitore nel file CodeDeploy dell'applicazione. AppSpec Il contenitore specificato nel AppSpec file deve essere uno dei contenitori specificati nella definizione dell'attività Amazon ECS. Per ulteriori informazioni, consulta [Cos'è Amazon Elastic Container Service?](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html) nella *Guida per l'utente di Amazon Elastic Container Service* e[AppSpec sezione «risorse» per le distribuzioni di Amazon ECS](reference-appspec-file-structure-resources.md#reference-appspec-file-structure-resources-ecs). 

**Una porta per il set di attività sostitutivo**  
 Durante la distribuzione di Amazon ECS, il sistema di bilanciamento del carico indirizza il traffico verso questa *porta* sul contenitore specificato nel file CodeDeploy dell'applicazione. AppSpec Devi specificare la porta nel file CodeDeploy dell'applicazione. AppSpec Per ulteriori informazioni, consulta [AppSpec sezione «risorse» per le distribuzioni di Amazon ECS](reference-appspec-file-structure-resources.md#reference-appspec-file-structure-resources-ecs). 

## Flusso di lavoro di implementazione (alto livello) su una piattaforma di calcolo Amazon ECS
<a name="deployment-process-workflow-ecs"></a>

Il diagramma seguente mostra le fasi principali della distribuzione di servizi Amazon ECS aggiornati.

![\[Come CodeDeploy distribuisce un'applicazione come set di attività in Amazon ECS.\]](http://docs.aws.amazon.com/it_it/codedeploy/latest/userguide/images/deployment-process-ecs.png)


Queste fasi includono:

1. Crea un' AWS CodeDeploy applicazione specificando un nome che rappresenti in modo univoco ciò che desideri distribuire. Per distribuire un'applicazione Amazon ECS, nella tua AWS CodeDeploy applicazione, scegli la piattaforma di calcolo Amazon ECS. CodeDeploy utilizza un'applicazione durante una distribuzione per fare riferimento ai componenti di distribuzione corretti, come il gruppo di distribuzione, i gruppi target, i listener, il comportamento di reindirizzamento del traffico e la revisione dell'applicazione. Per ulteriori informazioni, consulta [Crea un'applicazione con CodeDeploy](applications-create.md). 

1. La creazione di un gruppo di distribuzione specificando:
   +  Il nome del gruppo di distribuzione. 
   +  Il nome del cluster e del servizio Amazon ECS. Il controller di distribuzione del servizio Amazon ECS deve essere impostato CodeDeploy su. 
   +  Il listener di produzione, un listener di test opzionale e i gruppi target utilizzati durante una distribuzione. 
   +  Impostazioni di distribuzione, ad esempio quando reindirizzare il traffico di produzione verso l'attività Amazon ECS sostitutiva impostata nel servizio Amazon ECS e quando terminare l'attività Amazon ECS originale impostata nel servizio Amazon ECS. 
   +  Impostazioni opzionali, ad esempio trigger, allarmi e comportamento di rollback. 

1. *Specificare un file (file) con le specifiche dell'applicazione.* AppSpec Puoi caricarlo su Amazon S3, inserirlo nella console in formato YAML o JSON o specificarlo con o SDK. AWS CLI Il AppSpec file specifica una definizione di attività Amazon ECS per la distribuzione, una mappatura del nome del contenitore e delle porte utilizzata per instradare il traffico e le funzioni Lambda eseguite dopo gli hook del ciclo di vita della distribuzione. Il nome del contenitore deve essere un contenitore nella definizione dell'attività Amazon ECS. Per ulteriori informazioni, consulta [Utilizzo delle revisioni delle applicazioni per CodeDeploy](application-revisions.md).

1. Implementa la revisione dell'applicazione. AWS CodeDeploy reindirizza il traffico dalla versione originale di un set di attività nel tuo servizio Amazon ECS verso un nuovo set di attività sostitutivo. I gruppi target specificati nel gruppo di distribuzione vengono utilizzati per instradare il traffico verso il set di attività originale e di sostituzione. Una volta completata la distribuzione, il set di attività originale viene terminato. Puoi specificare un listener di test opzionale per inoltrare il traffico di test verso la versione di sostituzione prima che il traffico venga reinstradato. Per ulteriori informazioni, consulta [Crea una distribuzione con CodeDeploy](deployments-create.md).

1. Il controllo dei risultati della distribuzione. Per ulteriori informazioni, consulta [Monitoraggio delle implementazioni in CodeDeploy](monitoring.md).

## Cosa succede durante una distribuzione di Amazon ECS
<a name="deployment-steps-what-happens"></a>

Prima di iniziare una distribuzione Amazon ECS con un listener di test, devi configurarne i componenti. Per ulteriori informazioni, consulta [Prima di iniziare una distribuzione di Amazon ECS](#deployment-steps-prerequisites-ecs).

 Il diagramma seguente mostra la relazione tra questi componenti quando una distribuzione Amazon ECS è pronta per l'avvio. 

![\[La relazione tra il sistema di bilanciamento del carico, gli ascoltatori, i gruppi target e le attività impostate quando una distribuzione Amazon ECS è pronta per l'avvio.\]](http://docs.aws.amazon.com/it_it/codedeploy/latest/userguide/images/codedeploy-ecs-deployment-step-1.png)


All'avvio della distribuzione, gli eventi del ciclo di vita della distribuzione iniziano a essere eseguiti uno alla volta. Alcuni eventi del ciclo di vita sono hook che eseguono solo le funzioni Lambda specificate nel file. AppSpec Gli eventi del ciclo di vita della distribuzione nella seguente tabella sono elencati nell'ordine in cui vengono eseguiti. Per ulteriori informazioni, consulta [AppSpec sezione 'hook' per una distribuzione Amazon ECS](reference-appspec-file-structure-hooks.md#appspec-hooks-ecs).


| Evento del ciclo di vita | Azione relativa all'evento del ciclo di vita | 
| --- | --- | 
| BeforeInstall(un gancio per le funzioni Lambda) | Esegui funzioni Lambda. | 
| Installa | Configurare il set di attività di sostituzione. | 
| AfterInstall(un gancio per le funzioni Lambda) | Esegui funzioni Lambda. | 
| AllowTestTraffic | Instradare il traffico dal listener di test al gruppo target 2. | 
| AfterAllowTestTraffic(un gancio per le funzioni Lambda) | Esegui funzioni Lambda. | 
| BeforeAllowTraffic(un gancio per le funzioni Lambda) | Esegui funzioni Lambda. | 
| AllowTraffic | Instradare il traffico listener di produzione al gruppo target 2. | 
| AfterAllowTraffic | Esegui funzioni Lambda. | 



**Nota**  
Le funzioni Lambda in un hook sono opzionali.

1. <a name="ecs-before-install"></a>

****

   Esegui tutte le funzioni Lambda specificate nell'`BeforeInstall`hook del file. AppSpec 

1. <a name="ecs-install"></a>

****

   Durante l'evento del ciclo di vita `Install`:

   1.  Nel tuo servizio Amazon ECS viene creato un set di attività sostitutivo. 

   1.  Viene installata l'applicazione containerizzata aggiornata nel set di attività di sostituzione. 

   1.  Viene associato il secondo gruppo target al set di attività di sostituzione. 

    Questo diagramma mostra i componenti di distribuzione con il nuovo set di attività di sostituzione. L'applicazione containerizzata è all'interno del set di attività. Il set di attività è composto da tre attività. Un'applicazione può avere un numero illimitato di attività. Il secondo gruppo target è ora associato al set di attività di sostituzione.   
![\[I componenti di distribuzione con il nuovo set di attività sostitutivo. L'applicazione containerizzata è all'interno del set di attività. Il set di attività è composto da tre attività. Il secondo gruppo target è ora associato al set di attività di sostituzione.\]](http://docs.aws.amazon.com/it_it/codedeploy/latest/userguide/images/codedeploy-ecs-deployment-step-2.png)

1. <a name="ecs-after-install"></a>

****

   Esegui tutte le funzioni Lambda specificate nell'`AfterInstall`hook del file. AppSpec 

1. <a name="ecs-allow-test-traffic"></a>

****

   Viene richiamato l'evento `AllowTestTraffic`. Durante questo evento del ciclo di vita, il listener di test instrada il traffico all'applicazione containerizzata aggiornata.  
![\[Il listener di test indirizza il traffico verso l'applicazione containerizzata aggiornata.\]](http://docs.aws.amazon.com/it_it/codedeploy/latest/userguide/images/codedeploy-ecs-deployment-step-3.png)

1. <a name="ecs-after-allow-test-traffic"></a>

****

   Esegui tutte le funzioni Lambda specificate nell'`AfterAllowTestTraffic`hook del file. AppSpec Le funzioni Lambda possono convalidare l'implementazione utilizzando il traffico di test. Ad esempio, una funzione Lambda può fornire traffico al listener di test e tracciare i parametri dal set di attività di sostituzione. Se i rollback sono configurati, puoi configurare un CloudWatch allarme che attiva un rollback quando il test di convalida nella funzione Lambda fallisce.

    Una volta completati i test di convalida, si verifica una delle seguenti condizioni: 
   +  Se la convalida non riesce e sono configurati i rollback, lo stato della distribuzione viene contrassegnato `Failed` e i componenti vengono ripristinati allo stato di avvio della distribuzione. 
   +  Se la convalida non riesce e non sono configurati i rollback, lo stato della distribuzione viene contrassegnato `Failed` e i componenti rimangono nello stato corrente.
   +  Se la convalida riesce, la distribuzione continua all'hook `BeforeAllowTraffic`.

    Per ulteriori informazioni, consultare [Monitoraggio delle distribuzioni con allarmi in CloudWatch CodeDeploy](monitoring-create-alarms.md), [Rollback automatici](deployments-rollback-and-redeploy.md#deployments-rollback-and-redeploy-automatic-rollbacks) e [Configurazione delle opzioni avanzate per un gruppo di distribuzione](deployment-groups-configure-advanced-options.md). 

1. <a name="ecs-before-allow-traffic"></a>

****

   Esegui tutte le funzioni Lambda specificate nell'`BeforeAllowTraffic`hook del file. AppSpec 

1. <a name="ecs-allow-traffic"></a>

****

   Viene richiamato l'evento `AllowTraffic`. Il traffico di produzione viene reinstradato dal set di attività originale al set di attività di sostituzione. Il seguente diagramma mostra il set di attività di sostituzione che riceve il traffico di produzione.   
![\[Il set di attività sostitutivo riceve traffico di produzione.\]](http://docs.aws.amazon.com/it_it/codedeploy/latest/userguide/images/codedeploy-ecs-deployment-step-4.png)

1. <a name="ecs-after-allow-traffic"></a>

****

   Esegui tutte le funzioni Lambda specificate nell'`AfterAllowTraffic`hook del file. AppSpec 

1. 

****

   All'esito positivo di tutti gli eventi, lo stato della distribuzione viene impostato su `Succeeded` e il set di attività originale viene rimosso.   
![\[Tutti gli eventi hanno avuto esito positivo.\]](http://docs.aws.amazon.com/it_it/codedeploy/latest/userguide/images/codedeploy-ecs-deployment-step-6.png)

## Caricamento della revisione dell'applicazione
<a name="deployment-steps-uploading-your-app-ecs"></a>

Inserisci un AppSpec file in Amazon S3 o inseriscilo direttamente nella console o. AWS CLI Per ulteriori informazioni, consulta [CodeDeploy file delle specifiche dell'applicazione (AppSpec)](application-specification-files.md).

## Creazione di gruppi di applicazioni e distribuzione
<a name="deployment-steps-registering-app-deployment-groups-ecs"></a>

Un gruppo di CodeDeploy distribuzione su una piattaforma di calcolo Amazon ECS identifica i listener per servire il traffico verso l'applicazione Amazon ECS aggiornata e due gruppi target utilizzati durante la distribuzione. Un gruppo di distribuzione definisce anche un set di opzioni di configurazione, ad esempio allarmi e configurazioni di rollback.

## Implementazione della revisione dell'applicazione
<a name="deployment-steps-deploy-ecs"></a>

Ora sei pronto per distribuire il servizio Amazon ECS aggiornato specificato nel tuo gruppo di distribuzione. Puoi usare la CodeDeploy console o il comando [create-deployment](https://docs.aws.amazon.com/cli/latest/reference/deploy/create-deployment.html). Per controllare la distribuzione puoi specificare parametri quali la revisione e il gruppo di distribuzione.

## Aggiornamento dell'applicazione
<a name="deployment-steps-updating-your-app-ecs"></a>

È possibile aggiornare l'applicazione e quindi utilizzare la CodeDeploy console o chiamare il comando [create-deployment](https://docs.aws.amazon.com/cli/latest/reference/deploy/create-deployment.html) per inviare una revisione. 

## Distribuzioni interrotte e non riuscite
<a name="deployment-stop-fail-ecs"></a>

È possibile utilizzare la CodeDeploy console o il comando [stop-deployment](https://docs.aws.amazon.com/cli/latest/reference/deploy/stop-deployment.html) per interrompere una distribuzione. Quando si tenta di arrestare la distribuzione, accade una di queste tre cose:
+ La distribuzione si arresta e l'operazione restituisce uno stato di successo. In questo caso, non vengono più eseguiti eventi del ciclo di vita della distribuzione sul gruppo di distribuzione per la distribuzione interrotta. 
+ La distribuzione non si arresta immediatamente e l'operazione restituisce uno stato in attesa. In questo caso, alcuni eventi del ciclo di vita di distribuzione potrebbe essere ancora in esecuzione sul gruppo di distribuzione. Una volta completata l'operazione in attesa, le chiamate successive per fermare la distribuzione restituiscono uno stato di successo.
+ La distribuzione non è in grado di arrestarsi e l'operazione restituisce un errore. Per ulteriori informazioni, consulta Informazioni [sugli errori](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_ErrorInformation.html) ed [Errori comuni](https://docs.aws.amazon.com/codedeploy/latest/APIReference/CommonErrors.html) nell' AWS CodeDeploy API Reference.

## Ridistribuzioni e rollback della distribuzione
<a name="deployment-rollback-ecs"></a>

CodeDeploy implementa i rollback reindirizzando il traffico dal set di attività sostitutivo al set di attività originale. 

Puoi configurare un gruppo di distribuzione in modo che esegua automaticamente il rollback della distribuzione quando si soddisfano determinate condizioni, incluso quando una distribuzione non ha successo o viene raggiunta una soglia di monitoraggio degli allarmi. È inoltre possibile sostituire le impostazioni di rollback specificati per un gruppo di distribuzione in una singola distribuzione.

È inoltre possibile scegliere di eseguire il rollback di una distribuzione non riuscita ridistribuendo manualmente una revisione distribuita in precedenza. 

In tutti i casi, la distribuzione nuova o su cui è stato eseguito un rollback viene assegnato il relativo ID della distribuzione. La console CodeDeploy mostra un elenco di distribuzioni frutto di una distribuzione automatica. 

Se effettui una nuova distribuzione, il gruppo target associato al set di attività originale della distribuzione attuale viene associato al set di attività di sostituzione della nuova distribuzione.

Per ulteriori informazioni, consulta [Ridistribuisci e ripristina una distribuzione con CodeDeploy](deployments-rollback-and-redeploy.md).

## blue/green Implementazioni Amazon ECS tramite AWS CloudFormation
<a name="deployment-steps-ecs-cf"></a>

Puoi utilizzarlo AWS CloudFormation per gestire le blue/green distribuzioni di Amazon ECS tramite. CodeDeploy Per ulteriori informazioni, consulta [Crea una blue/green distribuzione Amazon ECS tramite CloudFormation](deployments-create-ecs-cfn.md).

**Nota**  
La gestione delle blue/green distribuzioni Amazon ECS con non CloudFormation è disponibile nella regione Asia Pacifico (Osaka).

# Distribuzioni su una piattaforma di elaborazione EC2/on-premise
<a name="deployment-steps-server"></a>

Questo argomento fornisce informazioni sui componenti e sul flusso di lavoro delle distribuzioni che utilizzano la piattaforma di calcolo CodeDeploy EC2/on-premise. Per informazioni sulle distribuzioni, consulta. blue/green [Panoramica di una distribuzione blue/green](welcome.md#welcome-deployment-overview-blue-green)

**Topics**
+ [Componenti di distribuzione su una piattaforma di elaborazione EC2/on-premise](#deployment-steps-components-server)
+ [Flusso di lavoro di implementazione su una piattaforma di elaborazione EC2/locale](#deployment-steps-workflow)
+ [Configurazione delle istanze](#deployment-steps-setting-up-instances)
+ [Caricamento della revisione dell'applicazione](#deployment-steps-uploading-your-app)
+ [Creazione di gruppi di applicazioni e distribuzione](#deployment-steps-registering-app-deployment-groups)
+ [Implementazione della revisione dell'applicazione](#deployment-steps-deploy)
+ [Aggiornamento dell'applicazione](#deployment-steps-updating-your-app)
+ [Distribuzioni interrotte e non riuscite](#deployment-stop-fail)
+ [Ridistribuzioni e rollback di distribuzione](#deployment-rollback)

## Componenti di distribuzione su una piattaforma di elaborazione EC2/on-premise
<a name="deployment-steps-components-server"></a>

Il diagramma seguente mostra i componenti di una CodeDeploy distribuzione su una piattaforma di elaborazione EC2/on-premise. 

![\[I componenti di una distribuzione su una piattaforma di calcolo CodeDeploy EC2/on-premise.\]](http://docs.aws.amazon.com/it_it/codedeploy/latest/userguide/images/deployment-components-workflow.png)


## Flusso di lavoro di implementazione su una piattaforma di elaborazione EC2/locale
<a name="deployment-steps-workflow"></a>

Il seguente diagramma mostra le fasi principali nella distribuzione di revisioni dell'applicazione:

![\[Le fasi principali dell'implementazione delle revisioni delle applicazioni.\]](http://docs.aws.amazon.com/it_it/codedeploy/latest/userguide/images/deployment-process.png)


Queste fasi includono:

1. Crea un'applicazione e assegnale un nome che identifichi in modo univoco le revisioni dell'applicazione che desideri distribuire e la piattaforma di elaborazione per la tua applicazione. CodeDeploy utilizza questo nome durante una distribuzione per assicurarsi che faccia riferimento ai componenti di distribuzione corretti, come il gruppo di distribuzione, la configurazione di distribuzione e la revisione dell'applicazione. Per ulteriori informazioni, consulta [Crea un'applicazione con CodeDeploy](applications-create.md).

1. L'impostazione di un gruppo di distribuzione specificando un tipo di distribuzione e le istanze in cui si desidera distribuire le revisioni dell'applicazione. Un'implementazione in loco aggiorna le istanze alla revisione dell'applicazione più recente. Una blue/green distribuzione registra un set sostitutivo di istanze per il gruppo di distribuzione con un sistema di bilanciamento del carico e annulla la registrazione delle istanze originali. 

   Puoi specificare i tag applicati alle istanze, i nomi dei gruppi Amazon EC2 Auto Scaling o entrambi.

   Se specifichi un gruppo di tag in un gruppo di distribuzione, CodeDeploy esegui la distribuzione su istanze a cui è applicato almeno uno dei tag specificati. Se specifichi due o più gruppi di tag, esegue la CodeDeploy distribuzione solo nelle istanze che soddisfano i criteri per ciascuno dei gruppi di tag. Per ulteriori informazioni, consulta [Taggare le istanze per i gruppi di distribuzione in CodeDeploy](instances-tagging.md).

   In tutti i casi, le istanze devono essere configurate per essere utilizzate in una distribuzione (ovvero devono essere etichettate o appartenere a un gruppo Amazon EC2 Auto Scaling) e avere CodeDeploy l'agente installato e funzionante. 

   Ti forniamo un CloudFormation modello che puoi utilizzare per configurare rapidamente un'istanza Amazon EC2 basata su Amazon Linux o Windows Server. Ti forniamo anche l' CodeDeploy agente autonomo in modo che tu possa installarlo su istanze di Amazon Linux, Ubuntu Server, Red Hat Enterprise Linux (RHEL) o Windows Server. Per ulteriori informazioni, consulta [Crea un gruppo di distribuzione con CodeDeploy](deployment-groups-create.md).

   È anche possibile specificare le seguenti opzioni: 
   + **Notifiche Amazon SNS.** Crea trigger che inviano notifiche agli abbonati di un argomento di Amazon SNS quando si verificano eventi specifici, come eventi di successo o di fallimento, nelle distribuzioni e nelle istanze. Per ulteriori informazioni, consulta [Monitoraggio delle distribuzioni con le notifiche degli eventi di Amazon SNS](monitoring-sns-event-notifications.md).
   + **Gestione della distribuzione basata su allarmi**. Implementa il monitoraggio degli CloudWatch allarmi di Amazon per interrompere le implementazioni quando i parametri superano o scendono al di sotto delle soglie impostate. CloudWatch
   + **Rollback automatici di distribuzione** Configura una distribuzione per eseguire automaticamente il rollback alla revisione precedentemente nota come correttamente funzionante quando una distribuzione non riesce o viene raggiunta una soglia di allarme.

1. La specifica di una configurazione di distribuzione per indicare a quante istanze le revisioni delle applicazioni devono essere distribuite simultaneamente e descrivere le condizioni di successo e di errore per la distribuzione. Per ulteriori informazioni, consulta [Visualizza i dettagli della configurazione di distribuzione con CodeDeploy](deployment-configurations-view-details.md).

1. Carica una revisione dell'applicazione su Amazon GitHub S3 o. Oltre ai file che desideri distribuire e agli script che desideri eseguire durante la distribuzione, devi includere un file (*file) con le specifiche dell'applicazione*. AppSpec Questo file contiene le istruzioni di distribuzione, ad esempio il percorso in cui copiare i file su ogni istanza e quando eseguire lo script di distribuzione. Per ulteriori informazioni, consulta [Utilizzo delle revisioni delle applicazioni per CodeDeploy](application-revisions.md).

1. La distribuzione della revisione dell'applicazione al gruppo di distribuzione. L' CodeDeploy agente su ogni istanza del gruppo di distribuzione copia la revisione dell'applicazione da Amazon S3 GitHub o sull'istanza. L' CodeDeploy agente quindi separa la revisione e, utilizzando il AppSpec file, copia i file nelle posizioni specificate ed esegue tutti gli script di distribuzione. Per ulteriori informazioni, consulta [Crea una distribuzione con CodeDeploy](deployments-create.md).

1. Il controllo dei risultati della distribuzione. Per ulteriori informazioni, consulta [Monitoraggio delle implementazioni in CodeDeploy](monitoring.md).

1. La ridistribuzione di una revisione. È possibile eseguire questa operazione se hai bisogno di correggere un bug nel contenuto sorgente o eseguire gli script di distribuzione in un ordine diverso o inviare una distribuzione non riuscita. A tale scopo, raggruppa il contenuto sorgente modificato, gli eventuali script di distribuzione e il AppSpec file in una nuova revisione, quindi carica la revisione nel bucket o nell'archivio Amazon S3. GitHub Esegui quindi una nuova distribuzione per lo stesso gruppo di distribuzione con la nuova revisione. Per ulteriori informazioni, consulta [Crea una distribuzione con CodeDeploy](deployments-create.md).

## Configurazione delle istanze
<a name="deployment-steps-setting-up-instances"></a>

 È necessario configurare le istanze prima di poter distribuire le revisioni dell'applicazione per la prima volta. Se una revisione di un'applicazione richiede tre server di produzione e due server di backup, puoi lanciare o utilizzare cinque istanze. 

Per effettuare manualmente il provisioning delle istanze:

1. Installa l' CodeDeploy agente sulle istanze. L' CodeDeploy agente può essere installato su istanze di Amazon Linux, Ubuntu Server, RHEL e Windows Server.

1. Abilita i tag, se utilizzi i tag per identificare le istanze in un gruppo di distribuzione. CodeDeploy si basa sui tag per identificare e raggruppare le istanze in gruppi di distribuzione. CodeDeploy Sebbene nel tutorial Nozioni di base siano utilizzati entrambi, è sufficiente utilizzare una chiave o un valore per definire un tag per un gruppo di distribuzione.

1. Avvia istanze Amazon EC2 con un profilo di istanza IAM collegato. Il profilo dell'istanza IAM deve essere collegato a un'istanza Amazon EC2 non appena viene avviata per consentire all' CodeDeploy agente di verificare l'identità dell'istanza.

1. Creazione di un ruolo del servizio Fornisci l'accesso al servizio in modo da CodeDeploy poter espandere i tag nel tuo AWS account.

Per una distribuzione iniziale, il CloudFormation modello fa tutto questo per te. Crea e configura nuove istanze singole di Amazon EC2 basate su Amazon Linux o Windows Server con CodeDeploy l'agente già installato. Per ulteriori informazioni, consulta [Utilizzo delle istanze per CodeDeploy](instances.md). 

**Nota**  
Per una blue/green distribuzione, puoi scegliere se utilizzare le istanze che già possiedi per l'ambiente sostitutivo o consentire il CodeDeploy provisioning di nuove istanze come parte del processo di distribuzione. 

## Caricamento della revisione dell'applicazione
<a name="deployment-steps-uploading-your-app"></a>

Inserite un AppSpec file nella cartella principale nella struttura delle cartelle del contenuto di origine dell'applicazione. Per ulteriori informazioni, consulta [CodeDeploy file delle specifiche dell'applicazione (AppSpec)](application-specification-files.md).

Aggrega la struttura della cartella del contenuto sorgente dell'applicazione in un formato di file di archivio come zip, tar o tar compresso. Carica il file di archivio (la *revisione*) in un GitHub bucket o repository Amazon S3.

**Nota**  
I formati di file di archivio tar e tar compressi (.tar e .tar.gz) non sono supportati per le istanze di Windows Server.

## Creazione di gruppi di applicazioni e distribuzione
<a name="deployment-steps-registering-app-deployment-groups"></a>

Un gruppo CodeDeploy di distribuzione identifica una raccolta di istanze in base ai relativi tag, ai nomi dei gruppi Amazon EC2 Auto Scaling o a entrambi. Nella stessa istanza possono essere implementate più revisioni dell'applicazione. Una revisione di un'applicazione può essere implementata in più istanze. 

Ad esempio, è possibile aggiungere un tag di "Prod" per i tre server di produzione e "Backup" per i due server di backup. Questi due tag possono essere utilizzati per creare due diversi gruppi di distribuzione nell' CodeDeploy applicazione, consentendoti di scegliere quale set di server (o entrambi) deve partecipare a una distribuzione.

È possibile utilizzare diversi gruppi di tag in un gruppo di distribuzione per limitare le distribuzioni a un set di istanze più piccolo. Per informazioni, consulta [Taggare le istanze per i gruppi di distribuzione in CodeDeploy](instances-tagging.md).

## Implementazione della revisione dell'applicazione
<a name="deployment-steps-deploy"></a>

Ora sei pronto per distribuire la revisione dell'applicazione da Amazon S3 GitHub o al gruppo di distribuzione. [Puoi usare la CodeDeploy console o il comando create-deployment.](https://docs.aws.amazon.com/cli/latest/reference/deploy/create-deployment.html) Ci sono parametri che è possibile specificare per controllare la distribuzione, tra cui la revisione, il gruppo di distribuzione e la configurazione della distribuzione.

## Aggiornamento dell'applicazione
<a name="deployment-steps-updating-your-app"></a>

È possibile aggiornare l'applicazione e quindi utilizzare la CodeDeploy console o chiamare il comando [create-deployment](https://docs.aws.amazon.com/cli/latest/reference/deploy/create-deployment.html) per inviare una revisione. 

## Distribuzioni interrotte e non riuscite
<a name="deployment-stop-fail"></a>

È possibile utilizzare la CodeDeploy console o il comando [stop-deployment](https://docs.aws.amazon.com/cli/latest/reference/deploy/stop-deployment.html) per interrompere una distribuzione. Quando si tenta di arrestare la distribuzione, accade una di queste tre cose:
+ La distribuzione si arresta e l'operazione restituisce uno stato di successo. In questo caso, non vengono più eseguiti eventi del ciclo di vita della distribuzione sul gruppo di distribuzione per la distribuzione interrotta. Alcuni file potrebbero essere già stati copiati e alcuni script potrebbero essere già stati eseguiti su una o più istanze nel gruppo di distribuzione.
+ La distribuzione non si arresta immediatamente e l'operazione restituisce uno stato in attesa. In questo caso, alcuni eventi del ciclo di vita di distribuzione potrebbe essere ancora in esecuzione sul gruppo di distribuzione. Alcuni file potrebbero essere già stati copiati e alcuni script potrebbero essere già stati eseguiti su una o più istanze nel gruppo di distribuzione. Una volta completata l'operazione in attesa, le chiamate successive per fermare la distribuzione restituiscono uno stato di successo.
+ La distribuzione non è in grado di arrestarsi e l'operazione restituisce un errore. Per ulteriori informazioni, consulta [ErrorInformation](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_ErrorInformation.html)[Errori comuni](https://docs.aws.amazon.com/codedeploy/latest/APIReference/CommonErrors.html) nell' AWS CodeDeploy API Reference.

Come per le distribuzioni arrestate, le distribuzioni non riuscite possono determinare l'esecuzione di alcuni eventi del ciclo di vita della distribuzione su una o più istanze nel gruppo di distribuzione. Per scoprire perché una distribuzione non è riuscita, puoi utilizzare la CodeDeploy console, richiamare il [get-deployment-instance](https://docs.aws.amazon.com/cli/latest/reference/deploy/get-deployment-instance.html)comando o analizzare i dati del file di registro relativi alla distribuzione non riuscita. Per ulteriori informazioni, consultare [Revisione dell'applicazione e pulizia dei file di registro](codedeploy-agent.md#codedeploy-agent-revisions-logs-cleanup) e [Visualizzazione dei dati di registro per le distribuzioni CodeDeploy EC2/on-premise](deployments-view-logs.md).

## Ridistribuzioni e rollback di distribuzione
<a name="deployment-rollback"></a>

CodeDeploy implementa i rollback ridistribuendo, come nuova distribuzione, una revisione precedentemente distribuita. 

Puoi configurare un gruppo di distribuzione in modo che esegua automaticamente il rollback della distribuzione quando si soddisfano determinate condizioni, incluso quando una distribuzione non ha successo o viene raggiunta una soglia di monitoraggio degli allarmi. È inoltre possibile sostituire le impostazioni di rollback specificati per un gruppo di distribuzione in una singola distribuzione.

È inoltre possibile scegliere di eseguire il rollback di una distribuzione non riuscita ridistribuendo manualmente una revisione distribuita in precedenza. 

In tutti i casi, la distribuzione nuova o su cui è stato eseguito un rollback viene assegnato il relativo ID della distribuzione. L'elenco delle distribuzioni che è possibile visualizzare nella CodeDeploy console mostra quali sono il risultato di una distribuzione automatica. 

Per ulteriori informazioni, consulta [Ridistribuisci e ripristina una distribuzione con CodeDeploy](deployments-rollback-and-redeploy.md).

# CodeDeploy file delle specifiche dell'applicazione (AppSpec)
<a name="application-specification-files"></a>

[Un file di specifiche dell'applicazione (AppSpec file), che è unico per CodeDeploy, è un file in formato [YAML](http://www.yaml.org) o in formato JSON.](http://www.json.org) Il AppSpec file viene utilizzato per gestire ogni distribuzione come una serie di hook di eventi del ciclo di vita, definiti nel file.

Per informazioni su come creare un file ben formato AppSpec , vedere. [CodeDeploy AppSpec riferimento al file](reference-appspec-file.md)

**Topics**
+ [AppSpec file su una piattaforma di elaborazione Amazon ECS](#appspec-files-on-ecs-compute-platform)
+ [AppSpec file su una piattaforma di elaborazione AWS Lambda](#appspec-files-on-lambda-compute-platform)
+ [AppSpec file su una piattaforma di elaborazione EC2/on-premise](#appspec-files-on-server-compute-platform)
+ [In che modo l' CodeDeploy agente utilizza il file AppSpec](#application-specification-files-agent-usage)

## AppSpec file su una piattaforma di elaborazione Amazon ECS
<a name="appspec-files-on-ecs-compute-platform"></a>

Se l'applicazione utilizza la piattaforma di calcolo Amazon ECS, il AppSpec file può essere formattato con YAML o JSON. Può anche essere digitato direttamente in un editor nella console. Il AppSpec file viene utilizzato per specificare:
+ Il nome del servizio Amazon ECS e il nome e la porta del container utilizzati per indirizzare il traffico verso il nuovo set di attività.
+ Le funzioni da utilizzare come test di convalida.

È possibile eseguire le funzioni di convalida Lambda dopo gli eventi del ciclo di vita della distribuzione. Per ulteriori informazioni, consultare [AppSpec sezione 'hook' per una distribuzione Amazon ECS](reference-appspec-file-structure-hooks.md#appspec-hooks-ecs), [AppSpec struttura dei file per le distribuzioni di Amazon ECS](reference-appspec-file-structure.md#ecs-appspec-structure) e [AppSpec Esempio di file per una distribuzione Amazon ECS](reference-appspec-file-example.md#appspec-file-example-ecs).

## AppSpec file su una piattaforma di elaborazione AWS Lambda
<a name="appspec-files-on-lambda-compute-platform"></a>

Se l'applicazione utilizza la piattaforma di calcolo AWS Lambda, il AppSpec file può essere formattato con YAML o JSON. Può anche essere digitato direttamente in un editor nella console. Il AppSpec file viene utilizzato per specificare:
+ La versione AWS Lambda della funzione da implementare.
+ Le funzioni da utilizzare come test di convalida.

È possibile eseguire le funzioni di convalida Lambda dopo gli eventi del ciclo di vita della distribuzione. Per ulteriori informazioni, consulta [AppSpec sezione 'hooks' per una distribuzione AWS Lambda](reference-appspec-file-structure-hooks.md#appspec-hooks-lambda).

## AppSpec file su una piattaforma di elaborazione EC2/on-premise
<a name="appspec-files-on-server-compute-platform"></a>

Se l'applicazione utilizza la piattaforma di calcolo EC2/on-premise, il file è sempre in formato YAML. AppSpec Il file viene utilizzato per: AppSpec 
+ Mappare i file sorgente nella revisione dell'applicazione nelle loro destinazioni sull'istanza.
+ Specificare autorizzazioni personalizzate per i file distribuiti.
+ Specificare script da eseguire su ciascuna istanza in diverse fasi del processo di distribuzione.

È possibile eseguire script su un'istanza dopo molti dei singoli eventi del ciclo di vita della distribuzione. CodeDeploy esegue solo gli script specificati nel file, ma tali script possono richiamare altri script sull'istanza. Puoi eseguire qualsiasi tipo di script, purché sia supportato dal sistema operativo in esecuzione sulle istanze. Per ulteriori informazioni, consulta [AppSpec sezione 'hooks' per una distribuzione EC2/on-premise](reference-appspec-file-structure-hooks.md#appspec-hooks-server). 

## In che modo l' CodeDeploy agente utilizza il file AppSpec
<a name="application-specification-files-agent-usage"></a>

Durante la distribuzione, l' CodeDeploy agente cerca il nome dell'evento corrente nella sezione **hooks** del AppSpec file. Se l'evento non viene trovato, l'agente CodeDeploy passa alla fase successiva. Se l'evento viene trovato, l' CodeDeploy agente recupera l'elenco degli script da eseguire. Gli script vengono eseguiti in sequenza, nell'ordine in cui sono mostrati nel file. Lo stato di ogni script viene registrato nel file di registro dell' CodeDeploy agente sull'istanza. 

Se uno script viene eseguito con successo, restituisce il codice di uscita 0 (zero).

**Nota**  
 L' CodeDeploy agente non viene utilizzato in una distribuzione AWS Lambda o Amazon ECS. 

Durante l'evento **Install**, l' CodeDeploy agente utilizza le mappature definite nella sezione **files** del AppSpec file per determinare quali cartelle o file copiare dalla revisione all'istanza.

Se l' CodeDeploy agente installato sul sistema operativo non corrisponde a quanto elencato nel AppSpec file, la distribuzione non riesce.

Per informazioni sui file di registro CodeDeploy dell'agente, vedere[Collaborazione con l' CodeDeploy agente](codedeploy-agent.md).