

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# CodeDeploy déploiements
<a name="deployment-steps"></a>

Cette rubrique fournit des informations sur les composants et le flux de travail des déploiements dans CodeDeploy. Le processus de déploiement varie en fonction de la plateforme de calcul ou de la méthode de déploiement (Lambda, Amazon ECS, EC2/on-premises ou via AWS CloudFormation) que vous utilisez pour vos déploiements.

**Topics**
+ [Déploiements sur une plateforme de calcul AWS Lambda](deployment-steps-lambda.md)
+ [Déploiements sur une plateforme de calcul Amazon ECS](deployment-steps-ecs.md)
+ [Déploiements sur une plateforme informatique EC2/sur site](deployment-steps-server.md)

# Déploiements sur une plateforme de calcul AWS Lambda
<a name="deployment-steps-lambda"></a>

Cette rubrique fournit des informations sur les composants et le flux de travail des CodeDeploy déploiements qui utilisent la plate-forme de calcul AWS Lambda. 

**Topics**
+ [Flux de travail de déploiement sur une plateforme AWS Lambda informatique](#deployment-process-workflow-lambda)
+ [Téléchargement de la version révisée de votre application](#deployment-steps-uploading-your-app-lambda)
+ [Création de vos groupes d'applications et de déploiement](#deployment-steps-registering-app-deployment-groups-lambda)
+ [Déploiement de la révision de votre application](#deployment-steps-deploy-lambda)
+ [Mettre à jour votre application](#deployment-steps-updating-your-app-lambda)
+ [Déploiements interrompus ou échoués](#deployment-stop-fail-lambda)
+ [Redéploiements et annulations de déploiements](#deployment-rollback-lambda)

## Flux de travail de déploiement sur une plateforme AWS Lambda informatique
<a name="deployment-process-workflow-lambda"></a>

Le schéma suivant illustre les principales étapes du déploiement de fonctions AWS Lambda nouvelles et mises à jour.

![\[Comment CodeDeploy déploie une AWS Lambda fonction nouvelle ou mise à jour.\]](http://docs.aws.amazon.com/fr_fr/codedeploy/latest/userguide/images/deployment-process-lambda.png)


Les étapes sont les suivantes :

1. Créez une application et attribuez-lui un nom qui identifie de façon unique les révisions d'application que vous souhaitez déployer. Pour déployer des fonctions Lambda, choisissez la plateforme de calcul AWS Lambda lorsque vous créez votre application. CodeDeploy utilise ce nom lors d'un déploiement pour s'assurer qu'il fait référence aux composants de déploiement appropriés, tels que le groupe de déploiement, la configuration du déploiement et la révision de l'application. Pour de plus amples informations, veuillez consulter [Créez une application avec CodeDeploy](applications-create.md). 

1. Configurez un groupe de déploiement en spécifiant votre nom de groupe de déploiement.

1. Choisissez une configuration de déploiement pour spécifier la manière dont le trafic est transféré de votre version de AWS Lambda fonction d'origine à votre nouvelle version de fonction Lambda. Pour de plus amples informations, veuillez consulter [Consultez les détails de configuration du déploiement avec CodeDeploy](deployment-configurations-view-details.md).

1. Chargement d'un *fichier de spécification d'application* (AppSpec fichier) sur Amazon S3. Le AppSpec fichier indique la version de la fonction Lambda et les fonctions Lambda utilisées pour valider votre déploiement. Si vous ne souhaitez pas créer de AppSpec fichier, vous pouvez spécifier une version de fonction Lambda et des fonctions de validation du déploiement Lambda directement dans la console à l'aide de YAML ou JSON. Pour de plus amples informations, veuillez consulter [Travailler avec les révisions d'applications pour CodeDeploy](application-revisions.md).

1. Déployez la révision de votre application dans le groupe de déploiement. AWS CodeDeploy déploie la révision de la fonction Lambda que vous avez spécifiée. Le trafic est transféré vers votre version de fonction Lambda à l'aide du AppSpec fichier de déploiement que vous avez choisi lors de la création de votre application. Pour de plus amples informations, veuillez consulter [Créez un déploiement avec CodeDeploy](deployments-create.md).

1. Vérifiez les résultats du déploiement. Pour de plus amples informations, veuillez consulter [Surveillance des déploiements dans CodeDeploy](monitoring.md).

## Téléchargement de la version révisée de votre application
<a name="deployment-steps-uploading-your-app-lambda"></a>

Placez un AppSpec fichier dans Amazon S3 ou saisissez-le directement dans la console ou AWS CLI. Pour de plus amples informations, veuillez consulter [CodeDeploy fichiers de spécification de l'application (AppSpec)](application-specification-files.md).

## Création de vos groupes d'applications et de déploiement
<a name="deployment-steps-registering-app-deployment-groups-lambda"></a>

Un groupe CodeDeploy de déploiement sur une plate-forme de calcul AWS Lambda identifie un ensemble d'un ou de plusieurs AppSpec fichiers. Chaque AppSpec fichier peut déployer une version de fonction Lambda. Un groupe de déploiement définit également un ensemble d'options de configuration pour les déploiements futurs, telles des alarmes et des configurations de rétrogradation.

## Déploiement de la révision de votre application
<a name="deployment-steps-deploy-lambda"></a>

Vous êtes maintenant prêt à déployer la révision de fonction spécifiée dans le AppSpec fichier vers le groupe de déploiement. Vous pouvez utiliser la CodeDeploy console ou la commande [create-deployment](https://docs.aws.amazon.com/cli/latest/reference/deploy/create-deployment.html). Vous pouvez spécifier certains paramètres pour contrôler votre déploiement, y compris la révision, le groupe de déploiement et la configuration de déploiement.

## Mettre à jour votre application
<a name="deployment-steps-updating-your-app-lambda"></a>

Vous pouvez mettre à jour votre application, puis utiliser la CodeDeploy console ou appeler la commande [create-deployment](https://docs.aws.amazon.com/cli/latest/reference/deploy/create-deployment.html) pour envoyer une révision. 

## Déploiements interrompus ou échoués
<a name="deployment-stop-fail-lambda"></a>

Vous pouvez utiliser la CodeDeploy console ou la commande [stop-deployment](https://docs.aws.amazon.com/cli/latest/reference/deploy/stop-deployment.html) pour arrêter un déploiement. Lorsque vous essayez d'arrêter le déploiement, trois choses peuvent se produire :
+ Le déploiement s'arrête et l'opération renvoie un statut de réussite. Dans ce cas, aucun événement de cycle de vie de déploiement supplémentaire ne se déroule sur le groupe de déploiement pour le déploiement arrêté. 
+ Le déploiement ne s'arrête pas immédiatement et l'opération renvoie un statut d'attente. Dans ce cas, certains événements de cycle de vie de déploiement peuvent encore se dérouler sur le groupe de déploiement. Une fois l'opération en attente terminée, les appels suivants visant à arrêter le déploiement renvoient un statut de réussite.
+ Le déploiement ne peut pas s'arrêter et l'opération renvoie une erreur. Pour plus d'informations, consultez [ErrorInformation](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_ErrorInformation.html)la section [Erreurs courantes](https://docs.aws.amazon.com/codedeploy/latest/APIReference/CommonErrors.html) dans la référence AWS CodeDeploy d'API.

Comme les déploiements arrêtés, les déploiements échoués peuvent se traduire par des événements de cycle de vie de déploiement ayant déjà été exécutés. Pour découvrir les raisons d'un déploiement échoué, vous pouvez utiliser la console CodeDeploy ou analyser les données du fichier journal à partir du déploiement ayant échoué. Pour plus d’informations, consultez [Révision de l'application et nettoyage des fichiers journaux](codedeploy-agent.md#codedeploy-agent-revisions-logs-cleanup) et [Afficher les données du journal pour les déploiements CodeDeploy EC2/sur site](deployments-view-logs.md).

## Redéploiements et annulations de déploiements
<a name="deployment-rollback-lambda"></a>

CodeDeploy implémente les annulations en redéployant, en tant que nouveau déploiement, une révision précédemment déployée. 

Vous pouvez configurer un groupe de déploiement pour restaurer automatiquement les déploiements lorsque certaines conditions sont remplies, y compris lorsqu'un déploiement échoue, ou si un seuil de surveillance d'alarme est atteint. Vous pouvez également remplacer les paramètres de restauration spécifiés pour un groupe de déploiement dans un déploiement individuel.

Vous pouvez également choisir de restaurer un déploiement ayant échoué en redéployant manuellement une révision précédemment déployée. 

Dans tous les cas, un déploiement nouveau ou annulé est attribué à son propre identifiant de déploiement. La liste des déploiements que vous pouvez consulter dans la CodeDeploy console indique ceux qui sont le résultat d'un déploiement automatique. 

Pour de plus amples informations, veuillez consulter [Redéployez et annulez un déploiement avec CodeDeploy](deployments-rollback-and-redeploy.md).

# Déploiements sur une plateforme de calcul Amazon ECS
<a name="deployment-steps-ecs"></a>

Cette rubrique fournit des informations sur les composants et le flux de travail des CodeDeploy déploiements qui utilisent la plateforme de calcul Amazon ECS. 

**Topics**
+ [Avant de commencer un déploiement Amazon ECS](#deployment-steps-prerequisites-ecs)
+ [Flux de travail de déploiement (haut niveau) sur une plateforme de calcul Amazon ECS](#deployment-process-workflow-ecs)
+ [Que se passe-t-il lors d'un déploiement d'Amazon ECS](#deployment-steps-what-happens)
+ [Téléchargement de la version révisée de votre application](#deployment-steps-uploading-your-app-ecs)
+ [Création de vos groupes d'applications et de déploiement](#deployment-steps-registering-app-deployment-groups-ecs)
+ [Déploiement de la révision de votre application](#deployment-steps-deploy-ecs)
+ [Mettre à jour votre application](#deployment-steps-updating-your-app-ecs)
+ [Déploiements interrompus ou échoués](#deployment-stop-fail-ecs)
+ [Redéploiements et annulations de déploiements](#deployment-rollback-ecs)
+ [blue/green Déploiements Amazon ECS via AWS CloudFormation](#deployment-steps-ecs-cf)

## Avant de commencer un déploiement Amazon ECS
<a name="deployment-steps-prerequisites-ecs"></a>

 Avant de commencer le déploiement d'une application Amazon ECS, vous devez disposer des éléments suivants. Certaines exigences sont spécifiées lorsque vous créez votre groupe de déploiement, tandis que d'autres sont spécifiées dans le AppSpec fichier.


****  

| Exigence | Mention | 
| --- | --- | 
| Cluster Amazon ECS | Groupe de déploiement | 
| Amazon ECS service | Groupe de déploiement | 
| Application Load Balancer ou Network Load Balancer | Groupe de déploiement | 
| Écouteur de production | Groupe de déploiement | 
| Écouteur de test (facultatif) | Groupe de déploiement | 
| Deux groupes cibles | Groupe de déploiement | 
| Définition de tâche Amazon ECS | AppSpec fichier | 
| Nom du conteneur | AppSpec fichier | 
| Port du conteneur | AppSpec fichier | 

**Cluster Amazon ECS**  
Un *cluster* Amazon ECS est un regroupement logique de tâches ou de services. Vous spécifiez le cluster Amazon ECS qui contient votre service Amazon ECS lorsque vous créez le groupe de déploiement de votre CodeDeploy application. Pour plus d'informations, consultez les [clusters Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ECS_clusters.html) dans le *guide de l'utilisateur d'Amazon Elastic Container Service*.

**Service Amazon ECS**  
Un *service* Amazon ECS gère et exécute des instances spécifiées d'une définition de tâche dans un cluster Amazon ECS. Votre service Amazon ECS doit être activé pour CodeDeploy. Par défaut, un service Amazon ECS est activé pour les déploiements Amazon ECS. Lorsque vous créez votre groupe de déploiement, vous choisissez de déployer un service Amazon ECS qui se trouve dans votre cluster Amazon ECS. Pour plus d'informations, consultez les [services Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html) dans le *guide de l'utilisateur d'Amazon Elastic Container Service*.

**Application Load Balancer ou Network Load Balancer**  
 Vous devez utiliser Elastic Load Balancing avec le service Amazon ECS que vous souhaitez mettre à jour avec un déploiement Amazon ECS. Vous pouvez utiliser un Application Load Balancer ou un Network Load Balancer. Nous recommandons un Application Load Balancer afin que vous puissiez tirer parti de fonctionnalités telles que le mappage dynamique des ports, le routage basé sur le chemin et les règles de priorité. Vous spécifiez l'équilibreur de charge lorsque vous créez le groupe de déploiement de votre CodeDeploy application. Pour plus d'informations, consultez la section [Création [Configuration d'un équilibreur de charge, de groupes cibles et d'écouteurs pour les déploiements CodeDeploy Amazon ECS](deployment-groups-create-load-balancer-for-ecs.md) d'un équilibreur de charge](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create-load-balancer.html) dans le *guide de l'utilisateur d'Amazon Elastic Container Service*. 

**Un ou deux auditeurs**  
Un *écouteur* est utilisé par votre équilibreur de charge pour diriger le trafic vers vos groupes cibles. Un écouteur de production est obligatoire. Vous pouvez spécifier un deuxième écouteur de test facultatif qui dirige le trafic vers votre ensemble de tâches de remplacement lors de l'exécution des tests de validation. Vous spécifiez un écouteur ou les deux lors de la création de votre groupe de déploiement. Si vous utilisez la console Amazon ECS pour créer votre service Amazon ECS, vos écouteurs sont créés pour vous. Pour plus d'informations, consultez les sections [Listeners for your application load balancers](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-listener.html) dans le guide de l'*utilisateur d'Elastic Load Balancing et [Creating a service](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create-service.html) dans le guide* de l'*utilisateur d'Amazon Elastic Container Service*.

**Deux groupes cibles Amazon ECS**  
 Un *groupe cible* est utilisé pour acheminer le trafic vers une cible enregistrée. Un déploiement Amazon ECS nécessite deux groupes cibles : un pour l'ensemble de tâches d'origine de votre application Amazon ECS et un pour son ensemble de tâches de remplacement. Au cours du déploiement, CodeDeploy crée un ensemble de tâches de remplacement et redirige le trafic de l'ensemble de tâches d'origine vers le nouveau. Vous spécifiez les groupes cibles lors de la création du groupe de déploiement de votre application CodeDeploy .   
 Au cours d'un déploiement, CodeDeploy déterminez quel groupe cible est associé à l'ensemble de tâches de votre service Amazon ECS qui possède le statut `PRIMARY` (il s'agit de l'ensemble de tâches d'origine) et associe un groupe cible à celui-ci, puis associe l'autre groupe cible à l'ensemble de tâches de remplacement. Si vous effectuez un autre déploiement, le groupe cible associé à l'ensemble de tâches d'origine du déploiement actuel est associé à l'ensemble de tâches de remplacement du déploiement suivant. Pour plus d'informations, consultez la section [Groupes cibles pour les équilibreurs de charge de votre application dans le *guide de l'utilisateur d'Elastic Load Balancing*](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-target-groups.html). 

**Une définition de tâche Amazon ECS**  
 Une *définition de tâche* est requise pour exécuter le conteneur Docker qui contient votre application Amazon ECS. Vous spécifiez l'ARN de votre définition de tâche dans le AppSpec fichier de votre CodeDeploy application. Pour plus d'informations, consultez les [définitions des tâches Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definitions.html) dans le *guide de l'utilisateur d'Amazon Elastic Container Service* et[AppSpec section « ressources » pour les déploiements Amazon ECS](reference-appspec-file-structure-resources.md#reference-appspec-file-structure-resources-ecs). 

**Un conteneur pour votre application Amazon ECS**  
 Un *conteneur* Docker est une unité de logiciel qui regroupe le code et ses dépendances afin que votre application puisse s'exécuter. Un conteneur isole votre application afin qu'elle s'exécute dans différents environnements informatiques. Votre équilibreur de charge dirige le trafic vers un conteneur dans l'ensemble de tâches de votre application Amazon ECS. Vous spécifiez le nom de votre conteneur dans le AppSpec fichier de votre CodeDeploy application. Le conteneur spécifié dans votre AppSpec fichier doit être l'un des conteneurs spécifiés dans votre définition de tâche Amazon ECS. Pour plus d'informations, consultez [Qu'est-ce qu'Amazon Elastic Container Service ?](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html) dans le *guide de l'utilisateur d'Amazon Elastic Container Service* et[AppSpec section « ressources » pour les déploiements Amazon ECS](reference-appspec-file-structure-resources.md#reference-appspec-file-structure-resources-ecs). 

**Un port pour votre ensemble de tâches de remplacement**  
 Lors de votre déploiement Amazon ECS, votre équilibreur de charge dirige le trafic vers ce *port* sur le conteneur spécifié dans le AppSpec fichier de votre CodeDeploy application. Vous spécifiez le port dans le AppSpec fichier de votre CodeDeploy application. Pour de plus amples informations, veuillez consulter [AppSpec section « ressources » pour les déploiements Amazon ECS](reference-appspec-file-structure-resources.md#reference-appspec-file-structure-resources-ecs). 

## Flux de travail de déploiement (haut niveau) sur une plateforme de calcul Amazon ECS
<a name="deployment-process-workflow-ecs"></a>

Le schéma suivant montre les principales étapes du déploiement des services Amazon ECS mis à jour.

![\[Comment CodeDeploy déploie une application en tant qu'ensemble de tâches dans Amazon ECS.\]](http://docs.aws.amazon.com/fr_fr/codedeploy/latest/userguide/images/deployment-process-ecs.png)


Les étapes sont les suivantes :

1. Créez une AWS CodeDeploy application en spécifiant un nom qui représente de manière unique ce que vous souhaitez déployer. Pour déployer une application Amazon ECS, dans votre AWS CodeDeploy application, choisissez la plateforme de calcul Amazon ECS. CodeDeploy utilise une application lors d'un déploiement pour référencer les composants de déploiement appropriés, tels que le groupe de déploiement, les groupes cibles, les écouteurs, le comportement de réacheminement du trafic et la révision de l'application. Pour de plus amples informations, veuillez consulter [Créez une application avec CodeDeploy](applications-create.md). 

1. Configurez un groupe de déploiement en spécifiant les éléments suivants :
   +  Le nom du groupe de déploiement. 
   +  Votre cluster Amazon ECS et le nom de votre service. Le contrôleur de déploiement du service Amazon ECS doit être configuré sur CodeDeploy. 
   +  L'écouteur de production, un écouteur de test facultatif et les groupes cibles utilisés au cours d'un déploiement. 
   +  Les paramètres de déploiement, tels que le moment où le trafic de production doit être redirigé vers le jeu de tâches Amazon ECS de remplacement dans votre service Amazon ECS et le moment où vous devez mettre fin à l'ensemble de tâches Amazon ECS d'origine dans votre service Amazon ECS. 
   +  Des paramètres facultatifs, tels que les déclencheurs, les alarmes et le comportement de restauration. 

1. Spécifiez un *fichier de spécification d'application* (AppSpec fichier). Vous pouvez le télécharger sur Amazon S3, le saisir dans la console au format YAML ou JSON, ou le spécifier à l'aide du AWS CLI SDK. Le AppSpec fichier spécifie une définition de tâche Amazon ECS pour le déploiement, le nom du conteneur et le mappage des ports utilisés pour acheminer le trafic, ainsi que les fonctions Lambda exécutées après les hooks du cycle de vie du déploiement. Le nom du conteneur doit être un conteneur dans votre définition de tâche Amazon ECS. Pour de plus amples informations, veuillez consulter [Travailler avec les révisions d'applications pour CodeDeploy](application-revisions.md).

1. Déployez la révision de votre application. AWS CodeDeploy redirige le trafic de la version d'origine d'un ensemble de tâches de votre service Amazon ECS vers un nouvel ensemble de tâches de remplacement. Les groupes cibles spécifiés dans le groupe de déploiement sont utilisés pour diriger le trafic vers les ensembles de tâches d'origine et de remplacement. Lorsque le déploiement est terminé, l'ensemble de tâches d'origine est arrêté. Vous pouvez spécifier un écouteur de test facultatif pour diriger le trafic de test vers votre version de remplacement avant que le trafic soir réacheminé vers celle-ci. Pour de plus amples informations, veuillez consulter [Créez un déploiement avec CodeDeploy](deployments-create.md).

1. Vérifiez les résultats du déploiement. Pour de plus amples informations, veuillez consulter [Surveillance des déploiements dans CodeDeploy](monitoring.md).

## Que se passe-t-il lors d'un déploiement d'Amazon ECS
<a name="deployment-steps-what-happens"></a>

Avant de démarrer un déploiement Amazon ECS avec un écouteur de test, vous devez configurer ses composants. Pour de plus amples informations, veuillez consulter [Avant de commencer un déploiement Amazon ECS](#deployment-steps-prerequisites-ecs).

 Le schéma suivant montre la relation entre ces composants lorsqu'un déploiement Amazon ECS est prêt à démarrer. 

![\[La relation entre l'équilibreur de charge, les écouteurs, les groupes cibles et l'ensemble de tâches lorsqu'un déploiement Amazon ECS est prêt à démarrer.\]](http://docs.aws.amazon.com/fr_fr/codedeploy/latest/userguide/images/codedeploy-ecs-deployment-step-1.png)


Lorsque le déploiement démarre, les événements de cycle de vie du déploiement s’exécutent les uns après les autres. Certains événements du cycle de vie sont des hooks qui exécutent uniquement les fonctions Lambda spécifiées dans le AppSpec fichier. Dans le tableau suivant, les événements de cycle de vie du déploiement sont répertoriés dans leur ordre d’exécution. Pour de plus amples informations, veuillez consulter [AppSpec section « hooks » pour un déploiement Amazon ECS](reference-appspec-file-structure-hooks.md#appspec-hooks-ecs).


| Événement lié au cycle | Action liée aux événements liés au cycle | 
| --- | --- | 
| BeforeInstall(un crochet pour les fonctions Lambda) | Exécutez les fonctions Lambda. | 
| Installation | Configuration de l’ensemble de tâches de remplacement. | 
| AfterInstall(un crochet pour les fonctions Lambda) | Exécutez les fonctions Lambda. | 
| AllowTestTraffic | Acheminement du trafic de l'écouteur de test au groupe cible 2. | 
| AfterAllowTestTraffic(un crochet pour les fonctions Lambda) | Exécutez les fonctions Lambda. | 
| BeforeAllowTraffic(un crochet pour les fonctions Lambda) | Exécutez les fonctions Lambda. | 
| AllowTraffic | Acheminement du trafic de l'écouteur de production au groupe cible 2. | 
| AfterAllowTraffic | Exécutez les fonctions Lambda. | 



**Note**  
Les fonctions Lambda d'un hook sont facultatives.

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

****

   Exécute toutes les fonctions Lambda spécifiées dans le `BeforeInstall` hook du fichier. AppSpec 

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

****

   Au cours de l'événement de cycle de vie `Install` :

   1.  Un ensemble de tâches de remplacement est créé dans votre service Amazon ECS. 

   1.  L’application conteneurisée mise à jour est installée dans l’ensemble de tâches de remplacement. 

   1.  Le deuxième groupe cible est associé à l’ensemble de tâches de remplacement. 

    Ce schéma présente les composants de déploiement avec le nouvel ensemble de tâches de remplacement. L'application conteneurisée est à l'intérieur de cet ensemble de tâches. L’ensemble de tâches se compose de trois tâches. (Une application peut comporter n’importe quel nombre de tâches.) Le deuxième groupe cible est désormais associé à l’ensemble de tâches de remplacement.   
![\[Les composants de déploiement avec le nouvel ensemble de tâches de remplacement. L'application conteneurisée est à l'intérieur de cet ensemble de tâches. L’ensemble de tâches se compose de trois tâches. Le deuxième groupe cible est désormais associé à l’ensemble de tâches de remplacement.\]](http://docs.aws.amazon.com/fr_fr/codedeploy/latest/userguide/images/codedeploy-ecs-deployment-step-2.png)

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

****

   Exécute toutes les fonctions Lambda spécifiées dans le `AfterInstall` hook du fichier. AppSpec 

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

****

   L'événement `AllowTestTraffic` est appelé. Durant cet événement de cycle de vie, l’écouteur de test achemine le trafic vers l'application conteneurisée mise à jour.  
![\[L'écouteur de test achemine le trafic vers l'application conteneurisée mise à jour.\]](http://docs.aws.amazon.com/fr_fr/codedeploy/latest/userguide/images/codedeploy-ecs-deployment-step-3.png)

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

****

   Exécute toutes les fonctions Lambda spécifiées dans le `AfterAllowTestTraffic` hook du fichier. AppSpec Les fonctions Lambda peuvent valider le déploiement à l'aide du trafic de test. Par exemple, une fonction Lambda peut diriger le trafic vers l'écouteur de test et suivre les métriques de l’ensemble de tâches de remplacement. Si des annulations sont configurées, vous pouvez configurer une CloudWatch alarme qui déclenche une annulation lorsque le test de validation de votre fonction Lambda échoue.

    Une fois les tests de validation terminés, l'une des actions suivantes se produit : 
   +  Si la validation échoue et que des restaurations sont configurées, le statut du déploiement est défini sur `Failed` et les composants reviennent à l’état dans lequel ils étaient au démarrage du déploiement. 
   +  Si la validation échoue et qu’aucune restauration n’est configurée, le statut du déploiement est défini sur `Failed` et les composants restent dans leur état actuel.
   +  Si la validation aboutit, le déploiement se poursuit avec le hook `BeforeAllowTraffic`.

    Pour plus d’informations, consultez [Surveillance des déploiements avec des CloudWatch alarmes dans CodeDeploy](monitoring-create-alarms.md), [Annulations automatiques](deployments-rollback-and-redeploy.md#deployments-rollback-and-redeploy-automatic-rollbacks) et [Configuration des options avancées d'un groupe de déploiement](deployment-groups-configure-advanced-options.md). 

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

****

   Exécute toutes les fonctions Lambda spécifiées dans le `BeforeAllowTraffic` hook du fichier. AppSpec 

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

****

   L'événement `AllowTraffic` est appelé. Le trafic de production est redirigé de l’ensemble de tâches d'origine vers l'ensemble de tâches de remplacement. Sur le schéma suivant, l’ensemble de tâches de remplacement reçoit du trafic de production.   
![\[L'ensemble de tâches de remplacement reçoit le trafic de production.\]](http://docs.aws.amazon.com/fr_fr/codedeploy/latest/userguide/images/codedeploy-ecs-deployment-step-4.png)

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

****

   Exécute toutes les fonctions Lambda spécifiées dans le `AfterAllowTraffic` hook du fichier. AppSpec 

1. 

****

   Une fois tous les événements réussis, le statut du déploiement est défini sur `Succeeded` et l’ensemble de tâches d'origine est supprimé.   
![\[Tous les événements sont réussis.\]](http://docs.aws.amazon.com/fr_fr/codedeploy/latest/userguide/images/codedeploy-ecs-deployment-step-6.png)

## Téléchargement de la version révisée de votre application
<a name="deployment-steps-uploading-your-app-ecs"></a>

Placez un AppSpec fichier dans Amazon S3 ou saisissez-le directement dans la console ou AWS CLI. Pour de plus amples informations, veuillez consulter [CodeDeploy fichiers de spécification de l'application (AppSpec)](application-specification-files.md).

## Création de vos groupes d'applications et de déploiement
<a name="deployment-steps-registering-app-deployment-groups-ecs"></a>

Un groupe de CodeDeploy déploiement sur une plate-forme de calcul Amazon ECS identifie les écouteurs destinés à acheminer le trafic vers votre application Amazon ECS mise à jour et les deux groupes cibles utilisés lors de votre déploiement. Un groupe de déploiement définit également un ensemble d'options de configuration, notamment les alarmes et les configurations de restauration.

## Déploiement de la révision de votre application
<a name="deployment-steps-deploy-ecs"></a>

Vous êtes maintenant prêt à déployer le service Amazon ECS mis à jour spécifié dans votre groupe de déploiement. Vous pouvez utiliser la CodeDeploy console ou la commande [create-deployment](https://docs.aws.amazon.com/cli/latest/reference/deploy/create-deployment.html). Vous pouvez spécifier certains paramètres pour contrôler votre déploiement, y compris la révision et le groupe de déploiement.

## Mettre à jour votre application
<a name="deployment-steps-updating-your-app-ecs"></a>

Vous pouvez mettre à jour votre application, puis utiliser la CodeDeploy console ou appeler la commande [create-deployment](https://docs.aws.amazon.com/cli/latest/reference/deploy/create-deployment.html) pour envoyer une révision. 

## Déploiements interrompus ou échoués
<a name="deployment-stop-fail-ecs"></a>

Vous pouvez utiliser la CodeDeploy console ou la commande [stop-deployment](https://docs.aws.amazon.com/cli/latest/reference/deploy/stop-deployment.html) pour arrêter un déploiement. Lorsque vous essayez d'arrêter le déploiement, trois choses peuvent se produire :
+ Le déploiement s'arrête et l'opération renvoie un statut de réussite. Dans ce cas, aucun événement de cycle de vie de déploiement supplémentaire ne se déroule sur le groupe de déploiement pour le déploiement arrêté. 
+ Le déploiement ne s'arrête pas immédiatement et l'opération renvoie un statut d'attente. Dans ce cas, certains événements de cycle de vie de déploiement peuvent encore se dérouler sur le groupe de déploiement. Une fois l'opération en attente terminée, les appels suivants visant à arrêter le déploiement renvoient un statut de réussite.
+ Le déploiement ne peut pas s'arrêter et l'opération renvoie une erreur. Pour plus d'informations, consultez les sections [Informations sur les erreurs](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_ErrorInformation.html) et [Erreurs courantes](https://docs.aws.amazon.com/codedeploy/latest/APIReference/CommonErrors.html) dans le Guide de référence de l' AWS CodeDeploy API.

## Redéploiements et annulations de déploiements
<a name="deployment-rollback-ecs"></a>

CodeDeploy implémente les annulations en redirigeant le trafic de l'ensemble de tâches de remplacement vers l'ensemble de tâches d'origine. 

Vous pouvez configurer un groupe de déploiement pour restaurer automatiquement les déploiements lorsque certaines conditions sont remplies, y compris lorsqu'un déploiement échoue, ou si un seuil de surveillance d'alarme est atteint. Vous pouvez également remplacer les paramètres de restauration spécifiés pour un groupe de déploiement dans un déploiement individuel.

Vous pouvez également choisir de restaurer un déploiement ayant échoué en redéployant manuellement une révision précédemment déployée. 

Dans tous les cas, un déploiement nouveau ou annulé est attribué à son propre identifiant de déploiement. La console CodeDeploy affiche une liste des déploiements qui résultent d'un déploiement automatique. 

Si vous effectuez un autre déploiement, le groupe cible associé à l'ensemble de tâches d'origine du déploiement actuel est associé à l'ensemble de tâches de remplacement du déploiement.

Pour de plus amples informations, veuillez consulter [Redéployez et annulez un déploiement avec CodeDeploy](deployments-rollback-and-redeploy.md).

## blue/green Déploiements Amazon ECS via AWS CloudFormation
<a name="deployment-steps-ecs-cf"></a>

Vous pouvez l'utiliser AWS CloudFormation pour gérer les blue/green déploiements Amazon ECS via CodeDeploy. Pour de plus amples informations, veuillez consulter [Créez un blue/green déploiement Amazon ECS via CloudFormation](deployments-create-ecs-cfn.md).

**Note**  
La gestion des blue/green déploiements Amazon ECS avec n' CloudFormation est pas disponible dans la région Asie-Pacifique (Osaka).

# Déploiements sur une plateforme informatique EC2/sur site
<a name="deployment-steps-server"></a>

Cette rubrique fournit des informations sur les composants et le flux de travail des CodeDeploy déploiements qui utilisent la plate-forme de calcul EC2/on-premises. Pour plus d'informations sur blue/green les déploiements, consultez[Vue d'ensemble d'un blue/green déploiement](welcome.md#welcome-deployment-overview-blue-green).

**Topics**
+ [Composants de déploiement sur une plate-forme informatique EC2/sur site](#deployment-steps-components-server)
+ [Flux de travail de déploiement sur une plate-forme informatique EC2/sur site](#deployment-steps-workflow)
+ [Configuration des instances](#deployment-steps-setting-up-instances)
+ [Téléchargement de la version révisée de votre application](#deployment-steps-uploading-your-app)
+ [Création de vos groupes d'applications et de déploiement](#deployment-steps-registering-app-deployment-groups)
+ [Déploiement de la révision de votre application](#deployment-steps-deploy)
+ [Mettre à jour votre application](#deployment-steps-updating-your-app)
+ [Déploiements interrompus ou échoués](#deployment-stop-fail)
+ [Redéploiements et annulations de déploiements](#deployment-rollback)

## Composants de déploiement sur une plate-forme informatique EC2/sur site
<a name="deployment-steps-components-server"></a>

Le schéma suivant montre les composants d'un CodeDeploy déploiement sur une plate-forme informatique EC2/sur site. 

![\[Les composants d'un CodeDeploy déploiement sur une plate-forme informatique EC2/sur site.\]](http://docs.aws.amazon.com/fr_fr/codedeploy/latest/userguide/images/deployment-components-workflow.png)


## Flux de travail de déploiement sur une plate-forme informatique EC2/sur site
<a name="deployment-steps-workflow"></a>

Le schéma ci-dessous illustre les principales étapes du déploiement de révisions d'application :

![\[Les principales étapes du déploiement des révisions d'applications.\]](http://docs.aws.amazon.com/fr_fr/codedeploy/latest/userguide/images/deployment-process.png)


Les étapes sont les suivantes :

1. Créez une application et donnez-lui un nom qui identifie de manière unique les révisions de l'application que vous souhaitez déployer et la plate-forme de calcul de votre application. CodeDeploy utilise ce nom lors d'un déploiement pour s'assurer qu'il fait référence aux composants de déploiement appropriés, tels que le groupe de déploiement, la configuration du déploiement et la révision de l'application. Pour de plus amples informations, veuillez consulter [Créez une application avec CodeDeploy](applications-create.md).

1. Configurez un groupe de déploiement en spécifiant un type de déploiement et les instances sur lesquelles vous souhaitez déployer vos révisions d'application. Un déploiement sur place met à jour les instances avec la révision d'application la plus récente. Un blue/green déploiement enregistre un ensemble d'instances de remplacement pour le groupe de déploiement auprès d'un équilibreur de charge et annule l'enregistrement des instances d'origine. 

   Vous pouvez spécifier les balises appliquées aux instances, les noms des groupes Amazon EC2 Auto Scaling, ou les deux.

   Si vous spécifiez un groupe de balises dans un groupe de déploiement, il est CodeDeploy déployé sur les instances auxquelles au moins une des balises spécifiées est appliquée. Si vous spécifiez au moins deux groupes de balises, le CodeDeploy déploiement s'effectue uniquement sur les instances qui répondent aux critères de chacun des groupes de balises. Pour de plus amples informations, veuillez consulter [Marquage des instances pour les groupes de déploiement dans CodeDeploy](instances-tagging.md).

   Dans tous les cas, les instances doivent être configurées pour être utilisées dans un déploiement (c'est-à-dire qu'elles doivent être étiquetées ou appartenir à un groupe Amazon EC2 Auto Scaling) et que CodeDeploy l'agent doit être installé et exécuté. 

   Nous vous fournissons un CloudFormation modèle que vous pouvez utiliser pour configurer rapidement une instance Amazon EC2 basée sur Amazon Linux ou Windows Server. Nous vous fournissons également l' CodeDeploy agent autonome afin que vous puissiez l'installer sur des instances Amazon Linux, Ubuntu Server, Red Hat Enterprise Linux (RHEL) ou Windows Server. Pour de plus amples informations, veuillez consulter [Créez un groupe de déploiement avec CodeDeploy](deployment-groups-create.md).

   Vous pouvez également spécifier les options suivantes : 
   + **Notifications Amazon SNS.** Créez des déclencheurs qui envoient des notifications aux abonnés d'une rubrique Amazon SNS lorsque des événements spécifiques, tels que des événements de réussite ou d'échec, se produisent dans les déploiements et les instances. Pour de plus amples informations, veuillez consulter [Surveillance des déploiements à l'aide des notifications d'événements Amazon SNS](monitoring-sns-event-notifications.md).
   + **Gestion de déploiement basée sur des alarmes**. Mettez en œuvre la surveillance des CloudWatch alarmes Amazon pour arrêter les déploiements lorsque vos indicateurs dépassent ou tombent en CloudWatch dessous des seuils définis.
   + **Restaurations de déploiement automatiques**. Configurez un déploiement pour que la dernière révision correcte connue soit restaurée automatiquement lorsqu'un déploiement échoue ou si un seuil d'alarme est atteint.

1. Spécifiez une configuration de déploiement pour indiquer le nombre d'instances sur lesquelles déployer simultanément vos révisions d'application et en décrivant les conditions de réussite et d'échec du déploiement. Pour de plus amples informations, veuillez consulter [Consultez les détails de configuration du déploiement avec CodeDeploy](deployment-configurations-view-details.md).

1. Téléchargez une révision de l'application sur Amazon S3 ou GitHub. Outre les fichiers que vous souhaitez déployer et les scripts que vous souhaitez exécuter pendant le déploiement, vous devez inclure un fichier de *spécification de l'application (AppSpec fichier*). Ce fichier contient les instructions de déploiement, indiquant par exemple où copier les fichiers sur chaque instance et à quel moment exécuter les scripts de déploiement. Pour de plus amples informations, veuillez consulter [Travailler avec les révisions d'applications pour CodeDeploy](application-revisions.md).

1. Déployez votre révision d'application dans le groupe de déploiement. L' CodeDeploy agent de chaque instance du groupe de déploiement copie la révision de votre application depuis Amazon S3 ou GitHub vers l'instance. L' CodeDeploy agent déregroupe ensuite la révision et, à l'aide du AppSpec fichier, copie les fichiers dans les emplacements spécifiés et exécute tous les scripts de déploiement. Pour de plus amples informations, veuillez consulter [Créez un déploiement avec CodeDeploy](deployments-create.md).

1. Vérifiez les résultats du déploiement. Pour de plus amples informations, veuillez consulter [Surveillance des déploiements dans CodeDeploy](monitoring.md).

1. Redéployez une révision. Vous pouvez effectuer cette opération si vous avez besoin de corriger un bogue dans le contenu source ou d'exécuter les scripts de déploiement dans un ordre différent, ou encore de réagir à un échec de déploiement. Pour ce faire, regroupez votre contenu source révisé, tous les scripts de déploiement et le AppSpec fichier dans une nouvelle révision, puis chargez la révision dans le compartiment ou le GitHub référentiel Amazon S3. Vous exécutez alors un nouveau déploiement dans le même groupe de déploiement avec la nouvelle révision. Pour de plus amples informations, veuillez consulter [Créez un déploiement avec CodeDeploy](deployments-create.md).

## Configuration des instances
<a name="deployment-steps-setting-up-instances"></a>

 Vous devez configurer les instances avant de déployer des révisions d'application pour la première fois. Si une révision d'application a besoin de trois serveurs de production et de deux serveurs de sauvegarde, vous devez lancer ou utiliser cinq instances. 

Pour mettre en service manuellement les instances :

1. Installez l' CodeDeploy agent sur les instances. L' CodeDeploy agent peut être installé sur des instances Amazon Linux, Ubuntu Server, RHEL et Windows Server.

1. Activez le balisage si vous utilisez des balises pour identifier les instances d'un groupe de déploiement. CodeDeploy s'appuie sur des balises pour identifier et regrouper les instances dans des groupes CodeDeploy de déploiement. Les didacticiels de mise en route utilisaient les deux, mais vous pouvez utiliser simplement une clé ou une valeur pour définir une balise pour un groupe de déploiement.

1. Lancez des instances Amazon EC2 associées à un profil d'instance IAM. Le profil d'instance IAM doit être attaché à une instance Amazon EC2 lors de son lancement pour que CodeDeploy l'agent vérifie l'identité de l'instance.

1. Créez un rôle de service. Fournissez un accès au service CodeDeploy afin d'étendre le nombre de balises de votre AWS compte.

Pour un déploiement initial, le CloudFormation modèle fait tout cela pour vous. Il crée et configure de nouvelles instances Amazon EC2 uniques basées sur Amazon Linux ou Windows Server avec CodeDeploy l'agent déjà installé. Pour de plus amples informations, veuillez consulter [Utilisation d'instances pour CodeDeploy](instances.md). 

**Note**  
Pour un blue/green déploiement, vous pouvez choisir entre utiliser les instances dont vous disposez déjà pour l'environnement de remplacement ou laisser de CodeDeploy nouvelles instances vous être fournies dans le cadre du processus de déploiement. 

## Téléchargement de la version révisée de votre application
<a name="deployment-steps-uploading-your-app"></a>

Placez un AppSpec fichier sous le dossier racine dans la structure de dossiers de contenu source de votre application. Pour de plus amples informations, veuillez consulter [CodeDeploy fichiers de spécification de l'application (AppSpec)](application-specification-files.md).

Groupez la structure de dossiers de contenu source de l'application dans un format de fichier d'archive tel que zip, tar ou tar compressé. Téléchargez le fichier d'archive (la *révision*) dans un compartiment ou un GitHub référentiel Amazon S3.

**Note**  
Les formats de fichier d'archive tar et tar compressé (.tar et .tar.gz) ne sont pas pris en charge pour les instances Windows Server.

## Création de vos groupes d'applications et de déploiement
<a name="deployment-steps-registering-app-deployment-groups"></a>

Un groupe de CodeDeploy déploiement identifie un ensemble d'instances en fonction de leurs balises, des noms de groupes Amazon EC2 Auto Scaling, ou des deux. Plusieurs révisions d'application peuvent être déployées sur la même instance. Une révision d'application peut être déployée sur plusieurs instances. 

Par exemple, vous pouvez ajouter une balise « Prod » aux trois serveurs de production et une balise « Sauvegarde » aux deux serveurs de sauvegarde. Ces deux balises peuvent être utilisées pour créer deux groupes de déploiement différents dans l' CodeDeploy application, ce qui vous permet de choisir quel ensemble de serveurs (ou les deux) doit participer à un déploiement.

Vous pouvez utiliser plusieurs groupes de balises dans un groupe de déploiement pour restreindre les déploiements à un plus petit ensemble d'instances. Pour plus d'informations, consultez [Marquage des instances pour les groupes de déploiement dans CodeDeploy](instances-tagging.md).

## Déploiement de la révision de votre application
<a name="deployment-steps-deploy"></a>

Vous êtes maintenant prêt à déployer la révision de votre application depuis Amazon S3 ou GitHub vers le groupe de déploiement. Vous pouvez utiliser la CodeDeploy console ou la commande [create-deployment](https://docs.aws.amazon.com/cli/latest/reference/deploy/create-deployment.html). Vous pouvez spécifier certains paramètres pour contrôler votre déploiement, y compris la révision, le groupe de déploiement et la configuration de déploiement.

## Mettre à jour votre application
<a name="deployment-steps-updating-your-app"></a>

Vous pouvez mettre à jour votre application, puis utiliser la CodeDeploy console ou appeler la commande [create-deployment](https://docs.aws.amazon.com/cli/latest/reference/deploy/create-deployment.html) pour envoyer une révision. 

## Déploiements interrompus ou échoués
<a name="deployment-stop-fail"></a>

Vous pouvez utiliser la CodeDeploy console ou la commande [stop-deployment](https://docs.aws.amazon.com/cli/latest/reference/deploy/stop-deployment.html) pour arrêter un déploiement. Lorsque vous essayez d'arrêter le déploiement, trois choses peuvent se produire :
+ Le déploiement s'arrête et l'opération renvoie un statut de réussite. Dans ce cas, aucun événement de cycle de vie de déploiement supplémentaire ne se déroule sur le groupe de déploiement pour le déploiement arrêté. Certains fichiers peuvent déjà avoir été copiés sur une ou plusieurs des instances figurant dans le groupe de déploiement, et certains scripts peuvent déjà y avoir été exécutés.
+ Le déploiement ne s'arrête pas immédiatement et l'opération renvoie un statut d'attente. Dans ce cas, certains événements de cycle de vie de déploiement peuvent encore se dérouler sur le groupe de déploiement. Certains fichiers peuvent déjà avoir été copiés sur une ou plusieurs des instances figurant dans le groupe de déploiement, et certains scripts peuvent déjà y avoir été exécutés. Une fois l'opération en attente terminée, les appels suivants visant à arrêter le déploiement renvoient un statut de réussite.
+ Le déploiement ne peut pas s'arrêter et l'opération renvoie une erreur. Pour plus d'informations, consultez [ErrorInformation](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_ErrorInformation.html)la section [Erreurs courantes](https://docs.aws.amazon.com/codedeploy/latest/APIReference/CommonErrors.html) dans la référence AWS CodeDeploy d'API.

Comme les déploiements arrêtés, les déploiements ayant échoué peuvent se traduire par des événements de cycle de vie de déploiement ayant déjà été exécutés sur une ou plusieurs des instances figurant dans le groupe de déploiement. Pour savoir pourquoi un déploiement a échoué, vous pouvez utiliser la CodeDeploy console, appeler la [get-deployment-instance](https://docs.aws.amazon.com/cli/latest/reference/deploy/get-deployment-instance.html)commande ou analyser les données du fichier journal de l'échec du déploiement. Pour plus d’informations, consultez [Révision de l'application et nettoyage des fichiers journaux](codedeploy-agent.md#codedeploy-agent-revisions-logs-cleanup) et [Afficher les données du journal pour les déploiements CodeDeploy EC2/sur site](deployments-view-logs.md).

## Redéploiements et annulations de déploiements
<a name="deployment-rollback"></a>

CodeDeploy implémente les annulations en redéployant, en tant que nouveau déploiement, une révision précédemment déployée. 

Vous pouvez configurer un groupe de déploiement pour restaurer automatiquement les déploiements lorsque certaines conditions sont remplies, y compris lorsqu'un déploiement échoue, ou si un seuil de surveillance d'alarme est atteint. Vous pouvez également remplacer les paramètres de restauration spécifiés pour un groupe de déploiement dans un déploiement individuel.

Vous pouvez également choisir de restaurer un déploiement ayant échoué en redéployant manuellement une révision précédemment déployée. 

Dans tous les cas, un déploiement nouveau ou annulé est attribué à son propre identifiant de déploiement. La liste des déploiements que vous pouvez consulter dans la CodeDeploy console indique ceux qui sont le résultat d'un déploiement automatique. 

Pour de plus amples informations, veuillez consulter [Redéployez et annulez un déploiement avec CodeDeploy](deployments-rollback-and-redeploy.md).