

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

# 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).