

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.

# Intégrations de produits et de services avec CodeDeploy
<a name="integrations"></a>

Par défaut, CodeDeploy s'intègre à un certain nombre de AWS services et de produits et services partenaires. Les informations suivantes peuvent vous aider à configurer CodeDeploy afin de vous intégrer aux produits et services que vous utilisez. 
+ [Intégration avec d'autres AWS services](integrations-aws.md)
+  [Intégration avec les produits et services des partenaires](integrations-partners.md)
+ [Exemples d'intégration issus de la communauté](integrations-community.md)

# Intégration avec d'autres AWS services
<a name="integrations-aws"></a>

CodeDeploy est intégré aux AWS services suivants :


|  |  | 
| --- |--- |
| Amazon CloudWatch |  [Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/) est un service de surveillance des ressources du AWS cloud et des applications que vous utilisez AWS. Vous pouvez utiliser Amazon CloudWatch pour collecter et suivre les métriques, collecter et surveiller les fichiers journaux et définir des alarmes. CodeDeploy prend en charge les CloudWatch outils suivants :  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/codedeploy/latest/userguide/integrations-aws.html)  | 
| Amazon EC2 Auto Scaling |  CodeDeploy prend en charge [Amazon EC2 Auto Scaling](https://aws.amazon.com/autoscaling). Ce AWS service peut lancer automatiquement des instances Amazon EC2 en fonction de critères que vous spécifiez, par exemple :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/codedeploy/latest/userguide/integrations-aws.html) Vous pouvez étendre un groupe d'instances Amazon EC2 chaque fois que vous en avez besoin, puis les utiliser CodeDeploy pour y déployer automatiquement des révisions d'applications. Amazon EC2 Auto Scaling met fin à ces instances Amazon EC2 lorsqu'elles ne sont plus nécessaires. En savoir plus : [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/codedeploy/latest/userguide/integrations-aws.html)  | 
| Amazon Elastic Container Service |   Vous pouvez l'utiliser CodeDeploy pour déployer une application conteneurisée Amazon ECS sous forme d'ensemble de tâches. CodeDeploy effectue un blue/green déploiement en installant une version mise à jour de l'application en tant que nouvel ensemble de tâches de remplacement. CodeDeploy redirige le trafic de production de l'ensemble de tâches d'application d'origine vers le jeu de tâches de remplacement. L'ensemble de tâches d'origine est arrêté après un déploiement réussi. Pour plus d'informations sur Amazon ECS, consultez [Amazon Elastic Container Service](https://aws.amazon.com/ecs/).  Vous pouvez gérer la manière dont le trafic est transféré vers l'ensemble de tâches mis à jour au cours d'un déploiement en choisissant une configuration Canary, Linear ou une all-at-once configuration. Pour plus d'informations sur les déploiements Amazon ECS, consultez la section [Déploiements sur une plateforme de calcul Amazon ECS](https://docs.aws.amazon.com/en_us/codedeploy/latest/userguide/deployment-steps-ecs.html).   | 
| AWS CloudTrail |  CodeDeploy est intégré à [AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/). Ce service capture les appels d'API effectués par ou au nom de votre AWS compte et envoie les fichiers journaux CodeDeploy dans un compartiment Amazon S3 que vous spécifiez. CloudTrailcapture les appels d'API à partir de la CodeDeploy console AWS CLI, à partir de CodeDeploy commandes via ou CodeDeploy APIs directement. Grâce aux informations collectées par CloudTrail, vous pouvez déterminer : [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/codedeploy/latest/userguide/integrations-aws.html) En savoir plus : [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/codedeploy/latest/userguide/integrations-aws.html)  | 
| AWS Cloud9 |  [AWS Cloud9](https://docs.aws.amazon.com/cloud9/latest/user-guide/)est un environnement de développement intégré (IDE) en ligne basé sur le cloud que vous pouvez utiliser pour écrire, exécuter, déboguer et déployer du code à l'aide d'un simple navigateur depuis une machine connectée à Internet. AWS Cloud9 inclut un éditeur de code, un débogueur, un terminal et des outils essentiels, tels que Git et AWS CLI Git. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/codedeploy/latest/userguide/integrations-aws.html) Pour plus d'informations AWS Cloud9, voir [Qu'est-ce que c'est AWS Cloud9](https://docs.aws.amazon.com/cloud9/latest/user-guide/welcom.html) et [comment démarrer avec AWS Cloud9](https://docs.aws.amazon.com/cloud9/latest/user-guide/get-started.html).  | 
| AWS CodePipeline |  [AWS CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/) est un service de diffusion en continu qui permet de modéliser, visualiser et automatiser les étapes nécessaires à la publication de vos logiciels dans un processus de diffusion en continu. Vous pouvez utiliser AWS CodePipeline pour définir votre propre processus de publication afin que le service crée, teste et déploie votre code chaque fois qu'une modification de code intervient. Par exemple, vous pourriez disposer de trois groupes de déploiement pour une application : bêta, gamma et production. Vous pouvez configurer un pipeline de telle sorte que chaque fois qu'une modification intervient dans votre code source, les mises à jour sont déployées individuellement dans chaque groupe de déploiement. Vous pouvez configurer AWS CodePipeline pour utiliser CodeDeploy pour déployer : [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/codedeploy/latest/userguide/integrations-aws.html)  Vous pouvez créer l' CodeDeploy application, le déploiement et le groupe de déploiement à utiliser dans une action de déploiement à une étape, soit avant de créer le pipeline, soit dans l'assistant de **création de pipeline**. En savoir plus : [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/codedeploy/latest/userguide/integrations-aws.html)  | 
| AWS Modèle d'application sans serveur |  AWS Le modèle d'application sans serveur (AWS SAM) est un modèle permettant de définir des applications sans serveur. Il propose également CloudFormation un moyen simplifié de définir AWS Lambda les fonctions, Amazon API Gateway APIs et les tables Amazon DynamoDB requises par une application sans serveur. Si vous utilisez déjà AWS SAM, vous pouvez ajouter des préférences de déploiement à utiliser pour commencer CodeDeploy à gérer la manière dont le trafic est transféré lors du déploiement d'une application AWS Lambda. Pour plus d'informations, consultez le [modèle d'application AWS sans serveur](https://github.com/awslabs/serverless-application-model).  | 
| Elastic Load Balancing |  CodeDeploy prend en [charge Elastic Load Balancing](https://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/elastic-load-balancing.html), un service qui distribue le trafic applicatif entrant sur plusieurs instances Amazon EC2.  Pour CodeDeploy les déploiements, les équilibreurs de charge empêchent également le trafic d'être acheminé vers des instances lorsqu'elles ne sont pas prêtes, sont en cours de déploiement ou ne sont plus nécessaires dans le cadre d'un environnement. En savoir plus : [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/codedeploy/latest/userguide/integrations-aws.html)  | 

**Topics**
+ [Amazon EC2 Auto Scaling](integrations-aws-auto-scaling.md)
+ [Integrating CodeDeploy with Elastic Load Balancing](integrations-aws-elastic-load-balancing.md)

# Intégration CodeDeploy à Amazon EC2 Auto Scaling
<a name="integrations-aws-auto-scaling"></a>

CodeDeploy prend en charge Amazon EC2 Auto Scaling, AWS un service qui lance les instances Amazon EC2 automatiquement en fonction des conditions que vous définissez. Ces conditions peuvent inclure le dépassement des limites dans un intervalle de temps spécifié pour l'utilisation du processeur, les lectures ou écritures sur le disque, ou le trafic réseau entrant ou sortant. Amazon EC2 Auto Scaling met fin aux instances lorsqu'elles ne sont plus nécessaires. Pour plus d'informations, consultez [Qu'est-ce que Amazon EC2 Auto Scaling ?](https://docs.aws.amazon.com/autoscaling/latest/userguide/WhatIsAutoScaling.html) dans le *Guide de l'utilisateur Amazon EC2 Auto Scaling*.

Lorsque de nouvelles instances Amazon EC2 sont lancées dans le cadre d'un groupe Amazon EC2 Auto Scaling, CodeDeploy vous pouvez déployer automatiquement vos révisions sur les nouvelles instances. Vous pouvez également coordonner les déploiements CodeDeploy avec des instances Amazon EC2 Auto Scaling enregistrées auprès des équilibreurs de charge Elastic Load Balancing. Pour plus d’informations, consultez [Intégration CodeDeploy à Elastic Load Balancing](integrations-aws-elastic-load-balancing.md) et [Configuration d'un équilibreur de charge dans Elastic Load Balancing pour les déploiements CodeDeploy Amazon EC2](deployment-groups-create-load-balancer.md).

**Note**  
Vous pouvez rencontrer des problèmes si vous associez plusieurs groupes de déploiement à un seul groupe Amazon EC2 Auto Scaling. Si un déploiement échoue, par exemple, l'instance va commencer à s'arrêter, mais les autres déploiements en cours d'exécution peuvent mettre une heure avant d'expirer. Pour plus d'informations, consultez [Évitez d'associer plusieurs groupes de déploiement à un seul groupe Amazon EC2 Auto Scaling](troubleshooting-auto-scaling.md#troubleshooting-multiple-depgroups) [Under the hood : CodeDeploy et Amazon EC2 Auto Scaling integration](https://aws.amazon.com/blogs/devops/under-the-hood-aws-codedeploy-and-auto-scaling-integration/).

**Topics**
+ [Déploiement CodeDeploy d'applications dans des groupes Amazon EC2 Auto Scaling](#integrations-aws-auto-scaling-deploy)
+ [Permettre les déploiements de terminaison lors d'événements de scale-in d'Auto Scaling](#integrations-aws-auto-scaling-behaviors-hook-enable)
+ [Comment fonctionne Amazon EC2 Auto Scaling avec CodeDeploy](#integrations-aws-auto-scaling-behaviors)
+ [Utilisation d'une AMI personnalisée avec CodeDeploy Amazon EC2 Auto Scaling](#integrations-aws-auto-scaling-custom-ami)

## Déploiement CodeDeploy d'applications dans des groupes Amazon EC2 Auto Scaling
<a name="integrations-aws-auto-scaling-deploy"></a>

Pour déployer une révision d' CodeDeploy application dans un groupe Amazon EC2 Auto Scaling :

1. Créez ou localisez un profil d'instance IAM qui permet au groupe Amazon EC2 Auto Scaling de travailler avec Amazon S3. Pour de plus amples informations, veuillez consulter [Étape 4 : Création d'un profil d'instance IAM pour vos instances Amazon EC2](getting-started-create-iam-instance-profile.md).
**Note**  
Vous pouvez également l'utiliser CodeDeploy pour déployer des révisions depuis des GitHub référentiels vers des groupes Amazon EC2 Auto Scaling. Bien que les instances Amazon EC2 nécessitent toujours un profil d'instance IAM, le profil n'a pas besoin d'autorisations supplémentaires pour être déployé à partir d'un référentiel. GitHub 

1. Créez ou utilisez un groupe Amazon EC2 Auto Scaling, en spécifiant le profil d'instance IAM dans votre configuration ou votre modèle de lancement. Pour plus d'informations, consultez le [rôle IAM pour les applications qui s'exécutent sur des instances Amazon EC2](https://docs.aws.amazon.com/autoscaling/ec2/userguide/us-iam-role.html).

1. Créez ou localisez un rôle de service qui permet CodeDeploy de créer un groupe de déploiement contenant le groupe Amazon EC2 Auto Scaling.

1. Créez un groupe de déploiement avec CodeDeploy, en spécifiant le nom du groupe Amazon EC2 Auto Scaling, le rôle du service et quelques autres options. Pour plus d’informations, consultez [Création d'un groupe de déploiement pour un déploiement sur place (console)](deployment-groups-create-in-place.md) ou [Création d'un groupe de déploiement pour un déploiement sur place (console)](deployment-groups-create-in-place.md).

1.  CodeDeploy À utiliser pour déployer votre révision dans le groupe de déploiement qui contient le groupe Amazon EC2 Auto Scaling.

Pour de plus amples informations, veuillez consulter [Tutoriel : CodeDeploy À utiliser pour déployer une application dans un groupe Auto Scaling](tutorials-auto-scaling-group.md).

## Permettre les déploiements de terminaison lors d'événements de scale-in d'Auto Scaling
<a name="integrations-aws-auto-scaling-behaviors-hook-enable"></a>

Un *déploiement de fin* est un type de CodeDeploy déploiement qui est activé automatiquement lorsqu'un [événement de scale-in Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-lifecycle.html#as-lifecycle-scale-in) se produit. CodeDeploy effectue le déploiement de terminaison juste avant que le service Auto Scaling ne mette fin à l'instance. Lors d'un déploiement final, CodeDeploy ne déploie rien. Au lieu de cela, il génère des événements du cycle de vie, que vous pouvez associer à vos propres scripts pour activer une fonctionnalité d'arrêt personnalisée. Par exemple, vous pouvez associer l'événement du `ApplicationStop` cycle de vie à un script qui arrête correctement votre application avant que l'instance ne soit arrêtée. 

Pour obtenir la liste des événements du cycle de vie CodeDeploy générés lors de l'arrêt d'un déploiement, consultez[Disponibilité du carnet d'événements du cycle de vie](reference-appspec-file-structure-hooks.md#reference-appspec-file-structure-hooks-availability). 

Si le déploiement de la terminaison échoue pour une raison quelconque, CodeDeploy cela permettra à la résiliation de l'instance de se poursuivre. Cela signifie que l'instance sera arrêtée même si elle CodeDeploy n'a pas exécuté l'ensemble complet (ou aucun) des événements du cycle de vie jusqu'à son terme.

Si vous n'activez pas les déploiements de résiliation, le service Auto Scaling mettra tout de même fin aux instances Amazon EC2 lorsqu'un événement de scale-in se produit, CodeDeploy mais ne générera pas d'événements liés au cycle de vie.

**Note**  
Que vous activiez ou non les déploiements de résiliation, si le service Auto Scaling met fin à une instance Amazon EC2 alors qu' CodeDeploy un déploiement est en cours, une course peut se produire entre les événements du cycle de vie générés par Auto Scaling et les services. CodeDeploy Par exemple, l'événement `Terminating` du cycle de vie (généré par le service Auto Scaling) peut remplacer l'`ApplicationStart`événement (généré par le CodeDeploy déploiement). Dans ce scénario, il est possible que vous rencontriez un échec lors de la fermeture ou du déploiement de l' CodeDeploy instance Amazon EC2.

**Pour permettre d' CodeDeploy effectuer des déploiements de terminaison**
+ Cochez la case **Ajouter un crochet de terminaison aux groupes Auto Scaling** lors de la création ou de la mise à jour de votre groupe de déploiement. Pour obtenir des instructions[Création d'un groupe de déploiement pour un déploiement sur place (console)](deployment-groups-create-in-place.md), voir ou[Création d'un groupe de déploiement pour un blue/green déploiement EC2/sur site (console)](deployment-groups-create-blue-green.md).

  L'activation de cette case CodeDeploy à cocher entraîne l'installation d'un [hook de cycle de vie Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/lifecycle-hooks.html) dans les groupes Auto Scaling que vous spécifiez lorsque vous créez ou mettez à jour votre groupe de CodeDeploy déploiement. Ce crochet est appelé *crochet de terminaison* et permet les déploiements de terminaison.

**Une fois le crochet de terminaison installé, un événement scale-in (terminaison) se déroule comme suit :**

1. Le service Auto Scaling (ou simplement Auto Scaling) détermine qu'un événement de scale-in doit se produire et contacte le service EC2 pour mettre fin à une instance EC2.

1. Le service EC2 commence à mettre fin à l'instance EC2. L'instance passe dans l'`Terminating`état, puis dans l'`Terminating:Wait`état. 

1. Pendant `Terminating:Wait` ce temps, Auto Scaling exécute tous les hooks du cycle de vie attachés au groupe Auto Scaling, y compris le crochet de terminaison installé par CodeDeploy.

1. Le hook de terminaison envoie une notification à la [file d'attente Amazon SQS](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/welcome.html) interrogée par. CodeDeploy

1. Dès réception de la notification, CodeDeploy analyse le message, effectue une certaine validation et effectue un [déploiement de terminaison](#integrations-aws-auto-scaling-behaviors-hook-enable).

1. Pendant que le déploiement de la terminaison est en cours, CodeDeploy envoie des pulsations toutes les cinq minutes à Auto Scaling pour l'informer que l'instance est toujours en cours d'élaboration.

1. Jusqu'à présent, l'instance EC2 est toujours dans `Terminating:Wait` cet état (ou peut-être dans cet `Warmed:Pending:Wait` état, si vous avez activé les [warm pools de groupe Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/warm-pool-instance-lifecycle.html)).

1. Lorsque le déploiement est terminé, CodeDeploy indique à Auto Scaling `CONTINUE` le processus d'arrêt d'EC2, que le déploiement ait réussi ou échoué.

## Comment fonctionne Amazon EC2 Auto Scaling avec CodeDeploy
<a name="integrations-aws-auto-scaling-behaviors"></a>

Lorsque vous créez ou mettez à jour un groupe de CodeDeploy déploiement pour inclure un groupe Auto Scaling, vous CodeDeploy accédez au groupe Auto Scaling à l'aide du rôle de CodeDeploy service, puis installez les [hooks de cycle de vie Auto](https://docs.aws.amazon.com/autoscaling/ec2/userguide/lifecycle-hooks.html) Scaling dans vos groupes Auto Scaling.

**Note**  
Les *hooks du cycle de vie Auto Scaling* sont différents *des événements du* *cycle de vie (également appelés crochets d'événements* du cycle [AppSpec section « crochets »](reference-appspec-file-structure-hooks.md) de vie) générés CodeDeploy et décrits dans ce guide.

Les hooks du cycle de vie Auto Scaling qui s' CodeDeploy installent sont les suivants :
+ **Un hook de lancement** : ce hook indique CodeDeploy qu'un [événement de scale-out Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-lifecycle.html#as-lifecycle-scale-out) est en cours et qu'il CodeDeploy doit démarrer un déploiement de lancement.

  Lors d'un *déploiement de lancement*, CodeDeploy :
  + Déploie une révision de votre application sur l'instance évolutive.
  + Génère des événements du cycle de vie pour indiquer la progression du déploiement. Vous pouvez associer ces événements du cycle de vie à vos propres scripts pour activer des fonctionnalités de démarrage personnalisées. Pour plus d'informations, consultez le tableau dans[Disponibilité du carnet d'événements du cycle de vie](reference-appspec-file-structure-hooks.md#reference-appspec-file-structure-hooks-availability).

  Le hook de lancement et le déploiement de lancement associé sont toujours activés et ne peuvent pas être désactivés.
+ **Un hook de terminaison** : ce hook facultatif indique CodeDeploy qu'un [événement de scale-in Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-lifecycle.html#as-lifecycle-scale-in) est en cours et qu'il CodeDeploy doit démarrer un déploiement de terminaison.

  Lors d'un *déploiement d'arrêt*, CodeDeploy génère des événements du cycle de vie pour indiquer la progression de l'arrêt de l'instance. Pour de plus amples informations, veuillez consulter [Permettre les déploiements de terminaison lors d'événements de scale-in d'Auto Scaling](#integrations-aws-auto-scaling-behaviors-hook-enable).

**Topics**
+ [Après avoir CodeDeploy installé les hooks Lifecycle, comment sont-ils utilisés ?](#integrations-aws-auto-scaling-behaviors-hook-usage)
+ [Comment sont CodeDeploy nommés les groupes Amazon EC2 Auto Scaling](#integrations-aws-auto-scaling-behaviors-naming)
+ [Ordre d'exécution des événements d'accroche du cycle de vie personnalisés](#integrations-aws-auto-scaling-behaviors-hook-order)
+ [Événements de scale-out lors d'un déploiement](#integrations-aws-auto-scaling-behaviors-mixed-environment)
+ [Événements d'évolutivité lors d'un déploiement](#integrations-aws-auto-scaling-behaviors-scale-in)
+ [Ordre des événements dans les scripts AWS CloudFormation cfn-init](#integrations-aws-auto-scaling-behaviors-event-order)

### Après avoir CodeDeploy installé les hooks Lifecycle, comment sont-ils utilisés ?
<a name="integrations-aws-auto-scaling-behaviors-hook-usage"></a>

Une fois les hooks du cycle de vie de lancement et de fin installés, ils sont utilisés CodeDeploy lors des événements de scale-out et de scale-in du groupe Auto Scaling, respectivement.

**Un événement de scale-out (lancement) se déroule comme suit :**

1. Le service Auto Scaling (ou simplement Auto Scaling) détermine qu'un événement de scale-out doit se produire et contacte le service EC2 pour lancer une nouvelle instance EC2.

1. Le service EC2 lance une nouvelle instance EC2. L'instance passe dans l'`Pending`état, puis dans l'`Pending:Wait`état. 

1. Pendant `Pending:Wait` ce temps, Auto Scaling exécute tous les hooks du cycle de vie attachés au groupe Auto Scaling, y compris le hook de lancement installé par CodeDeploy.

1. Le hook de lancement envoie une notification à la [file d'attente Amazon SQS interrogée](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/welcome.html) par. CodeDeploy

1. Dès réception de la notification, CodeDeploy analyse le message, effectue une validation et lance un [déploiement de lancement](#launch-deployment).

1. Pendant le déploiement de lancement, CodeDeploy envoie des pulsations toutes les cinq minutes à Auto Scaling pour l'informer que l'instance est toujours en cours d'élaboration.

1. Jusqu'à présent, l'instance EC2 est toujours dans `Pending:Wait` cet état.

1. Lorsque le déploiement est terminé, CodeDeploy indique à Auto Scaling l'un `CONTINUE` ou `ABANDON` l'autre processus de lancement d'EC2, selon que le déploiement a réussi ou échoué.
   + Si CodeDeploy cela est indiqué`CONTINUE`, Auto Scaling poursuit le processus de lancement, soit en attendant que les autres hooks soient terminés, soit en plaçant l'instance dans l'`InService`état « `Pending:Proceed` et puis ».
   + Si CodeDeploy cela est indiqué`ABANDON`, Auto Scaling met fin à l'instance EC2 et redémarre la procédure de lancement si nécessaire pour atteindre le nombre d'instances souhaité, tel que défini dans le paramètre Auto Scaling Desired Capacity**.**

**Un événement de scale-in (résiliation) se déroule comme suit :**

Consultez [Permettre les déploiements de terminaison lors d'événements de scale-in d'Auto Scaling](#integrations-aws-auto-scaling-behaviors-hook-enable).

### Comment sont CodeDeploy nommés les groupes Amazon EC2 Auto Scaling
<a name="integrations-aws-auto-scaling-behaviors-naming"></a>

 

Lors blue/green des déploiements sur une plate-forme informatique EC2/sur site, deux options s'offrent à vous pour ajouter des instances à votre environnement de remplacement (écologique) :
+  Utilisez des instances qui existent déjà ou créez-en manuellement. 
+  Utilisez les paramètres d'un groupe Amazon EC2 Auto Scaling que vous spécifiez pour définir et créer des instances dans un nouveau groupe Amazon EC2 Auto Scaling. 

 Si vous choisissez la deuxième option, CodeDeploy provisionnez un nouveau groupe Amazon EC2 Auto Scaling pour vous. Il utilise la convention suivante pour nommer le groupe : 

```
CodeDeploy_deployment_group_name_deployment_id
```

Par exemple, si un déploiement avec ID `10` déploie un groupe de déploiement nommé`alpha-deployments`, le groupe Amazon EC2 Auto Scaling provisionné est nommé. `CodeDeploy_alpha-deployments_10` Pour plus d’informations, consultez [Création d'un groupe de déploiement pour un blue/green déploiement EC2/sur site (console)](deployment-groups-create-blue-green.md) et [GreenFleetProvisioningOption](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_GreenFleetProvisioningOption.html).

### Ordre d'exécution des événements d'accroche du cycle de vie personnalisés
<a name="integrations-aws-auto-scaling-behaviors-hook-order"></a>

Vous pouvez ajouter vos propres hooks de cycle de vie aux groupes Amazon EC2 Auto Scaling vers CodeDeploy lesquels sont déployés. Toutefois, l'ordre dans lequel ces événements d'accroche du cycle de vie personnalisés sont exécutés ne peut pas être prédéterminé par rapport aux événements du cycle de vie de déploiement CodeDeploy par défaut. Par exemple, si vous ajoutez un hook de cycle de vie personnalisé nommé `ReadyForSoftwareInstall` dans un groupe Amazon EC2 Auto Scaling, vous ne pouvez pas savoir à l'avance s'il sera exécuté avant le premier ou après le dernier CodeDeploy événement du cycle de vie de déploiement par défaut.

Pour savoir comment ajouter des hooks de cycle de vie personnalisés à un groupe Amazon EC2 Auto Scaling, [consultez la section Ajout de crochets de cycle](https://docs.aws.amazon.com/autoscaling/latest/userguide/lifecycle-hooks.html#adding-lifecycle-hooks) de vie dans *le guide de l'utilisateur d'Amazon EC2 Auto Scaling*.

### Événements de scale-out lors d'un déploiement
<a name="integrations-aws-auto-scaling-behaviors-mixed-environment"></a>

Si un événement Auto Scale-out survient alors qu'un déploiement est en cours, les nouvelles instances seront mises à jour avec la version de l'application précédemment déployée, et non avec la version la plus récente de l'application. Si le déploiement aboutit, les anciennes instances et les nouvelles instances évolutives hébergeront différentes révisions de l'application. Pour mettre à jour les instances dotées de l'ancienne révision, lance CodeDeploy automatiquement un déploiement de suivi (immédiatement après la première) afin de mettre à jour les instances obsolètes. Si vous souhaitez modifier ce comportement par défaut afin que les instances EC2 obsolètes soient conservées dans l'ancienne version, consultez[Automatic updates to outdated instances](deployment-groups-configure-advanced-options.md#auto-updates-outdated-instances).

Si vous souhaitez suspendre les processus de scale-out d'Amazon EC2 Auto Scaling pendant les déploiements, vous pouvez le faire via un paramètre `common_functions.sh` du script utilisé pour l'équilibrage de charge avec. CodeDeploy Si `HANDLE_PROCS=true` les événements Auto Scaling suivants sont automatiquement suspendus pendant le processus de déploiement : 
+ AZRebalance
+ AlarmNotification
+ ScheduledActions
+ ReplaceUnhealthy

**Important**  
Seul le CodeDeployDefault. OneAtATime la configuration de déploiement prend en charge cette fonctionnalité.

Pour plus d'informations sur l'utilisation `HANDLE_PROCS=true` afin d'éviter les problèmes de déploiement lors de l'utilisation d'Amazon EC2 Auto Scaling, [consultez la section Avis important concernant la AutoScaling gestion des](https://github.com/awslabs/aws-codedeploy-samples/tree/master/load-balancing/elb#important-notice-about-handling-autoscaling-processes) processus [aws-codedeploy-samples](https://github.com/awslabs/aws-codedeploy-samples)en GitHub cours.

### Événements d'évolutivité lors d'un déploiement
<a name="integrations-aws-auto-scaling-behaviors-scale-in"></a>

Si un groupe Auto Scaling commence à prendre de l'ampleur alors qu'un CodeDeploy déploiement est en cours sur ce groupe Auto Scaling, une situation de course peut survenir entre le processus d'arrêt (y compris les événements du cycle de vie du déploiement de fin) et les autres événements CodeDeploy du cycle de vie sur l'instance de CodeDeploy résiliation. Le déploiement sur cette instance spécifique peut échouer si l'instance est arrêtée avant la fin de tous les événements CodeDeploy du cycle de vie. En outre, le CodeDeploy déploiement global peut échouer ou non, selon la façon dont vous avez défini le paramètre **Minimum healthy hosts** dans votre configuration de déploiement.

### Ordre des événements dans les scripts AWS CloudFormation cfn-init
<a name="integrations-aws-auto-scaling-behaviors-event-order"></a>

Si vous utilisez `cfn-init` (ou `cloud-init`) pour exécuter des scripts sur des instances basées sur Linux nouvellement allouées, vos déploiements peuvent échouer à moins que vous ne contrôliez de manière stricte l'ordre des événements qui se produisent au démarrage de l'instance.

L'ordre doit être le suivant :

1. L'instance nouvellement allouée se lance.

1. Tous les scripts d'amorçage `cfn-init` s'exécutent jusqu'à la fin.

1. L' CodeDeploy agent démarre.

1. La dernière révision d'application est déployée sur l'instance.

Si l'ordre des événements n'est pas soigneusement contrôlé, l' CodeDeploy agent peut démarrer un déploiement avant la fin de l'exécution de tous les scripts. 

Pour contrôler l'ordre des événements, utilisez l'une de ces bonnes pratiques : 
+ Installez l' CodeDeploy agent par le biais d'un `cfn-init` script, en le plaçant après tous les autres scripts.
+ Incluez l' CodeDeploy agent dans une AMI personnalisée et utilisez un `cfn-init` script pour le démarrer, en le plaçant après tous les autres scripts.

*Pour plus d'informations sur l'utilisation`cfn-init`, consultez [cfn-init](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-init.html) dans le guide de l'AWS CloudFormation utilisateur.*

## Utilisation d'une AMI personnalisée avec CodeDeploy Amazon EC2 Auto Scaling
<a name="integrations-aws-auto-scaling-custom-ami"></a>

Vous avez deux options pour spécifier l'AMI de base à utiliser lorsque de nouvelles instances Amazon EC2 sont lancées dans un groupe Amazon EC2 Auto Scaling :
+ Vous pouvez spécifier une AMI personnalisée de base sur laquelle l' CodeDeploy agent est déjà installé. L'agent étant déjà installé, cette option lance les nouvelles instances Amazon EC2 plus rapidement que l'autre option. Toutefois, cette option augmente le risque d'échec des déploiements initiaux d'instances Amazon EC2, en particulier si CodeDeploy l'agent n'est pas à jour. Si vous choisissez cette option, nous vous recommandons de mettre régulièrement à jour l' CodeDeploy agent dans votre AMI personnalisée de base.
+ Vous pouvez spécifier une AMI de base sur laquelle l' CodeDeploy agent n'est pas installé et l'installer lorsque chaque nouvelle instance est lancée dans un groupe Amazon EC2 Auto Scaling. Bien que cette option lance les nouvelles instances Amazon EC2 plus lentement que l'autre option, elle augmente les chances de réussite des déploiements initiaux d'instances. Cette option utilise la version la plus récente de l'agent CodeDeploy.

# Intégration CodeDeploy à Elastic Load Balancing
<a name="integrations-aws-elastic-load-balancing"></a>

Lors CodeDeploy des déploiements, un équilibreur de charge empêche le trafic Internet d'être acheminé vers des instances lorsqu'elles ne sont pas prêtes, sont en cours de déploiement ou ne sont plus nécessaires dans le cadre d'un environnement. Le rôle exact joué par l'équilibreur de charge dépend toutefois de son utilisation dans le cadre d'un blue/green déploiement ou d'un déploiement sur place.

**Note**  
L'utilisation d'équilibreurs de charge Elastic Load Balancing est obligatoire dans les déploiements et facultative dans blue/green les déploiements sur place.

## Types d'équilibreurs de charge Elastic Load Balancing
<a name="integrations-aws-elastic-load-balancing-types"></a>

Elastic Load Balancing propose trois types d'équilibreurs de charge qui peuvent être utilisés dans les CodeDeploy déploiements : les équilibreurs de charge classiques, les équilibreurs de charge d'application et les équilibreurs de charge réseau.

Classic Load Balancer  
Les itinéraires et les équilibres de charge se situent soit au niveau de la couche de transport (TCP/SSL) or the application layer (HTTP/HTTPS). Il prend en charge un VPC.  
Les équilibreurs de charge classiques ne sont pas pris en charge avec les déploiements Amazon ECS.

Application Load Balancer  
Achemine et équilibre les charges au niveau de la couche d'application (HTTP/HTTPS) et prend en charge le routage basé sur le chemin d'accès. Il peut acheminer les requêtes vers des ports sur chaque instance EC2 ou de conteneur dans votre Virtual Private Cloud (VPC).  
 Les groupes cibles d'Application Load Balancer doivent avoir un type de cible pour les déploiements sur des instances EC2 et `instance` pour `IP` les déploiements Fargate. Pour plus d'informations, consultez la section [Type de cible](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-target-groups.html#target-type). 

Network Load Balancer  
Routes et équilibres de charge au niveau de la couche transport (couche TCP/UDP 4) sur la base des informations d'adresse extraites de l'en-tête du paquet TCP, et non du contenu du paquet. Un équilibreur de charge Network Load Balancer peut traiter les pics de trafic, conserver l'adresse IP source du client et utiliser une adresse IP fixe pendant la durée de vie de l'équilibreur de charge. 

Pour en savoir plus sur les équilibreurs de charge Elastic Load Balancing, consultez les rubriques suivantes :
+ [Qu’est-ce qu’Elastic Load Balancing ?](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/what-is-load-balancing.html)
+ [Qu'est-ce qu'un équilibreur de charge Classic Load Balancer ?](https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/introduction.html)
+ [Qu'est-ce qu'un équilibreur de charge Application Load Balancer ?](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/introduction.html)
+ [Qu'est-ce qu'un équilibreur de charge Network Load Balancer ?](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/introduction.html)

## Déploiements bleu/vert
<a name="integrations-aws-elastic-load-balancing-blue-green"></a>

Le réacheminement du trafic d'instance via un équilibreur de charge Elastic Load Balancing est fondamental pour CodeDeploy blue/green les déploiements. 

Lors d'un blue/green déploiement, l'équilibreur de charge permet d'acheminer le trafic vers les nouvelles instances d'un groupe de déploiement dans lequel la dernière révision de l'application a été déployée (l'environnement de remplacement), conformément aux règles que vous spécifiez, puis bloque le trafic provenant des anciennes instances sur lesquelles la révision précédente de l'application était exécutée (l'environnement d'origine).

Une fois que les instances d'un environnement de remplacement sont enregistrées auprès d'un ou de plusieurs équilibreurs de charge, les instances de l'environnement d'origine sont désenregistrées et, si vous le souhaitez, résiliées.

Pour un blue/green déploiement, vous pouvez spécifier un ou plusieurs groupes cibles Classic Load Balancer, Application Load Balancer ou Network Load Balancer dans votre groupe de déploiement. Vous utilisez la CodeDeploy console ou AWS CLI pour ajouter les équilibreurs de charge à un groupe de déploiement.

Pour plus d'informations sur les équilibreurs de charge dans blue/green les déploiements, consultez les rubriques suivantes :
+ [Configuration d'un équilibreur de charge dans Elastic Load Balancing pour les déploiements CodeDeploy Amazon EC2](deployment-groups-create-load-balancer.md)
+ [Création d'une application pour un blue/green déploiement (console)](applications-create-blue-green.md)
+ [Création d'un groupe de déploiement pour un blue/green déploiement EC2/sur site (console)](deployment-groups-create-blue-green.md)

## Déploiements sur place
<a name="integrations-aws-elastic-load-balancing-in-place"></a>

Lors d'un déploiement sur place, un équilibreur de charge empêche le trafic Internet d'être acheminé vers une instance alors qu'il est déployé sur cette dernière, et ensuite il met de nouveau l'instance à disposition du trafic après la fin du déploiement sur cette dernière.

Si un équilibreur de charge n'est pas utilisé pendant un déploiement sur place, le trafic Internet peut continuer à être dirigé vers une instance au cours du processus de déploiement. Vos clients risquent donc de rencontrer des applications web rompues, incomplètes ou obsolètes. Lorsque vous utilisez un équilibreur de charge Elastic Load Balancing dans le cadre d'un déploiement sur place, les instances d'un groupe de déploiement sont désenregistrées de l'équilibreur de charge, mises à jour avec la dernière révision de l'application, puis réenregistrées auprès de l'équilibreur de charge dans le cadre du même groupe de déploiement une fois le déploiement réussi. CodeDeploy attendra jusqu'à 1 heure pour que l'instance soit saine derrière l'équilibreur de charge. Si l'instance n'est pas marquée comme saine par l'équilibreur de charge pendant la période d'attente, CodeDeploy elle passe à l'instance suivante ou échoue, selon la configuration du déploiement.

Pour un déploiement sur place, vous pouvez spécifier un ou plusieurs Classic Load Balancers, des groupes cibles Application Load Balancer ou des groupes cibles Network Load Balancer. Vous pouvez spécifier les équilibreurs de charge dans le cadre de la configuration du groupe de déploiement, ou vous pouvez utiliser un script fourni par CodeDeploy pour implémenter les équilibreurs de charge.

### Spécifiez un équilibreur de charge de déploiement sur place à l'aide d'un groupe de déploiement
<a name="integrations-aws-elastic-load-balancing-in-place-deployment-group"></a>

Pour ajouter des équilibreurs de charge à un groupe de déploiement, vous utilisez la CodeDeploy console ou AWS CLI. Pour plus d'informations sur la spécification d'un équilibreur de charge dans un groupe de déploiement pour les déploiements sur place, consultez les rubriques suivantes :
+ [Création d'une application pour un déploiement sur place (console)](applications-create-in-place.md)
+ [Création d'un groupe de déploiement pour un déploiement sur place (console)](deployment-groups-create-in-place.md)
+ [Configuration d'un équilibreur de charge dans Elastic Load Balancing pour les déploiements CodeDeploy Amazon EC2](deployment-groups-create-load-balancer.md)

### Spécifiez un équilibreur de charge de déploiement sur place à l'aide d'un script
<a name="integrations-aws-elastic-load-balancing-in-place-script"></a>

Utilisez les étapes de la procédure suivante pour utiliser les scripts de cycle de vie du déploiement et configurer l'équilibrage de charge pour les déploiements sur place.
**Note**  
Vous devez utiliser le CodeDeployDefault. OneAtATime configuration de déploiement uniquement lorsque vous utilisez un script pour configurer un équilibreur de charge pour un déploiement sur place. Les exécutions simultanées ne sont pas prises en charge, et le CodeDeployDefault. OneAtATime ce paramètre garantit une exécution en série des scripts. Pour plus d'informations sur les configurations de déploiement, consultez [Utilisation des configurations de déploiement dans CodeDeploy](deployment-configurations.md).

Dans le référentiel CodeDeploy Samples GitHub, nous fournissons des instructions et des exemples que vous pouvez adapter pour utiliser les équilibreurs de charge CodeDeploy Elastic Load Balancing. Ces référentiels incluent trois exemples de scripts (`register_with_elb.sh`,`deregister_from_elb.sh`, et`common_functions.sh`) qui fournissent tout le code dont vous avez besoin pour démarrer. Il vous suffit de modifier les espaces réservés dans ces trois scripts, puis de faire référence à ces scripts à partir de votre fichier `appspec.yml`.

Pour configurer des déploiements sur place CodeDeploy avec des instances Amazon EC2 enregistrées auprès des équilibreurs de charge Elastic Load Balancing, procédez comme suit :

1. Téléchargez les exemples pour le type d'équilibreur de charge que vous voulez utiliser pour un déploiement sur place :
   + [Equilibreur de charge classique](https://github.com/awslabs/aws-codedeploy-samples/tree/master/load-balancing/elb)
   + [Application Load Balancer [ou Network Load](https://github.com/awslabs/aws-codedeploy-samples/tree/master/load-balancing/elb-v2) Balancer (le même script peut être utilisé pour les deux types)](https://github.com/awslabs/aws-codedeploy-samples/tree/master/load-balancing/elb-v2)

1. Assurez-vous que chacune de vos instances Amazon EC2 cibles est installée. AWS CLI 

1. Assurez-vous que chacune de vos instances Amazon EC2 cibles possède un profil d'instance IAM associé avec, au minimum, les autorisations elasticloadbalancing : \$1 et autoscaling : \$1.

1. Incluez dans le répertoire de code source de votre application les scripts d'événement de cycle de vie de déploiement (`register_with_elb.sh`, `deregister_from_elb.sh` et `common_functions.sh`).

1. Dans la `appspec.yml` section pour la révision de l'application, fournissez des instructions CodeDeploy pour exécuter le `register_with_elb.sh` script pendant l'**ApplicationStart**événement et le `deregister_from_elb.sh` script pendant l'**ApplicationStop**événement.

1. Si l'instance fait partie d'un groupe Amazon EC2 Auto Scaling, vous pouvez ignorer cette étape.

   Dans le script `common_functions.sh` :
   + Si vous utilisez le [Classic Load Balancer](https://github.com/awslabs/aws-codedeploy-samples/tree/master/load-balancing/elb), spécifiez les noms des équilibreurs de charge Elastic Load Balancing et apportez les modifications nécessaires aux autres paramètres de déploiement du fichier. `ELB_LIST=""`
   + Si vous utilisez [Application Load Balancer [ou Network Load](https://github.com/awslabs/aws-codedeploy-samples/tree/master/load-balancing/elb-v2)](https://github.com/awslabs/aws-codedeploy-samples/tree/master/load-balancing/elb-v2) Balancer, spécifiez les noms des groupes cibles Elastic Load Balancing `TARGET_GROUP_LIST=""` dans le fichier et apportez les modifications nécessaires aux autres paramètres de déploiement du fichier.

1. Groupez le code source de votre application, le `appspec.yml` et les scripts d'événement de cycle de vie de déploiement dans une révision d'application, puis chargez la révision. Déployez la révision sur les instances Amazon EC2. Pendant le déploiement, les scripts d'événements du cycle de vie du déploiement annuleront l'enregistrement de l'instance Amazon EC2 auprès de l'équilibreur de charge, attendront que la connexion soit épuisée, puis réenregistreront l'instance Amazon EC2 auprès de l'équilibreur de charge une fois le déploiement terminé.

# Intégration avec les produits et services des partenaires
<a name="integrations-partners"></a>

CodeDeploy intègre les produits et services partenaires suivants :


|  |  | 
| --- |--- |
| Ansible |  Si vous possédez déjà un ensemble de playbooks [Ansible](http://www.ansible.com), mais que vous avez juste besoin d'un endroit où les exécuter, le modèle pour Ansible CodeDeploy montre comment quelques simples hooks de déploiement peuvent garantir la disponibilité d'Ansible sur l'instance de déploiement locale et l'exécution des playbooks. Si vous disposez déjà d'un processus de création et de gestion de votre inventaire, il existe également un module Ansible que vous pouvez utiliser pour installer et exécuter l' CodeDeploy agent. En savoir plus : [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/codedeploy/latest/userguide/integrations-partners.html)  | 
| Atlassian — Bamboo et Bitbucket |  La CodeDeploy tâche de [Bamboo](https://www.atlassian.com/software/bamboo/) compresse le répertoire qui contient un AppSpec fichier dans un fichier .zip, télécharge le fichier sur Amazon S3, puis démarre le déploiement conformément à la configuration fournie dans l' CodeDeploy application.  La prise en charge d'Atlassian Bitbucket vous CodeDeploy permet de transférer du code vers des instances Amazon EC2 directement depuis l'interface utilisateur de Bitbucket, à la demande, vers l'un de vos groupes de déploiement. Cela signifie qu'après avoir mis à jour le code dans votre référentiel Bitbucket, vous n'avez pas besoin de vous connecter à votre plateforme d'intégration continue (CI) ou aux instances Amazon EC2 pour exécuter un processus de déploiement manuel.  En savoir plus : [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/codedeploy/latest/userguide/integrations-partners.html)  | 
| Chef |  AWS fournit deux exemples de modèles pour intégrer [Chef](https://www.chef.io/) et CodeDeploy. Le premier est un livre de recettes Chef qui installe et démarre l' CodeDeploy agent. Il vous permet de poursuivre la gestion de votre infrastructure hôte avec Chef tout en utilisant CodeDeploy. Le deuxième exemple de modèle montre comment CodeDeploy orchestrer l'exécution de livres de recettes et de recettes avec chef-solo sur chaque nœud. En savoir plus : [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/codedeploy/latest/userguide/integrations-partners.html)  | 
| CircleCI |  [CircleCI](https://circleci.com/) fournit un ensemble d'outils de déploiement et d'intégration en continu et de test automatisé. Après avoir créé un rôle IAM AWS à utiliser avec CircleCI et configuré vos paramètres de déploiement dans votre fichier circle.yml, vous pouvez utiliser CodeDeploy CircleCI pour créer des révisions d'applications, les télécharger dans un compartiment Amazon S3, puis lancer et surveiller vos déploiements. En savoir plus : [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/codedeploy/latest/userguide/integrations-partners.html)  | 
| CloudBees |  Vous pouvez utiliser le plugin CodeDeploy Jenkins, disponible sur [CloudBees](https://www.cloudbees.com/)DEV @cloud, comme action post-build. Par exemple, à la fin d'un pipeline de diffusion en continu, vous pouvez l'utiliser pour déployer une révision d'application sur votre flotte de serveurs. En savoir plus : [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/codedeploy/latest/userguide/integrations-partners.html)  | 
| Codeship |  Vous pouvez utiliser [Codeship](https://codeship.com/) pour déployer des révisions d'applications via. CodeDeploy Vous pouvez utiliser l'interface utilisateur Codeship pour ajouter CodeDeploy à un pipeline de déploiement pour une succursale. En savoir plus :  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/codedeploy/latest/userguide/integrations-partners.html)  | 
| GitHub |  Vous pouvez l'utiliser CodeDeploy pour déployer des révisions d'applications à partir de [GitHub](http://www.github.com)référentiels. Vous pouvez également déclencher un déploiement à partir d'un GitHub référentiel chaque fois que le code source de ce référentiel est modifié. En savoir plus : [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/codedeploy/latest/userguide/integrations-partners.html)  | 
|  **HashiCorp Consul**  |  Vous pouvez utiliser l'outil open source HashiCorp Consul pour garantir la santé et la stabilité de votre environnement d'applications lorsque vous y déployez des CodeDeploy applications. Vous pouvez utiliser Consul pour inscrire les applications à découvrir durant le déploiement, placer des applications et des nœuds en mode maintenance pour les omettre dans les déploiements et arrêter les déploiements si les instances cibles cessent d'être saines. En savoir plus : [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/codedeploy/latest/userguide/integrations-partners.html)  | 
| Jenkins |  Le plugin CodeDeploy [Jenkins](http://jenkins-ci.org/) fournit une étape de post-construction pour votre projet Jenkins. Une fois le build réussi, il comprime l'espace de travail, le télécharge sur Amazon S3 et lance un nouveau déploiement. En savoir plus :  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/codedeploy/latest/userguide/integrations-partners.html)  | 
| Puppet Labs |  AWS fournit des exemples de modèles pour [Puppet et](https://puppetlabs.com/). CodeDeploy Le premier est un module Puppet qui installe et démarre l' CodeDeploy agent. Il vous permet de poursuivre la gestion de votre infrastructure hôte avec Puppet tout en utilisant CodeDeploy. Le deuxième exemple de modèle montre comment CodeDeploy orchestrer l'exécution de modules et de manifestes avec une marionnette masterless sur chaque nœud. En savoir plus :  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/codedeploy/latest/userguide/integrations-partners.html)  | 
| SaltStack |  Vous pouvez intégrer [SaltStack](https://saltproject.io/index.html)l'infrastructure à CodeDeploy. Vous pouvez utiliser le CodeDeploy module pour installer et exécuter l' CodeDeploy agent sur vos sbires ou, à l'aide de quelques crochets de déploiement simples, vous pouvez l'utiliser CodeDeploy pour orchestrer le fonctionnement de vos Salt States. En savoir plus :  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/codedeploy/latest/userguide/integrations-partners.html)  | 
|  **TeamCity**  |  Vous pouvez utiliser le plugin CodeDeploy Runner pour déployer des applications directement depuis TeamCity. Le plugin ajoute une TeamCity étape de génération qui prépare et télécharge une révision d'application dans un compartiment Amazon S3, enregistre la révision dans une CodeDeploy application, crée un CodeDeploy déploiement et, si vous le souhaitez, attend que le déploiement soit terminé. En savoir plus : [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/codedeploy/latest/userguide/integrations-partners.html)  | 
| Travis CI |  Vous pouvez configurer [Travis CI](https://travis-ci.com/) pour déclencher un déploiement CodeDeploy après une compilation réussie. En savoir plus :  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/codedeploy/latest/userguide/integrations-partners.html)  | 

**Topics**
+ [GitHub](integrations-partners-github.md)

# Intégration CodeDeploy avec GitHub
<a name="integrations-partners-github"></a>

CodeDeploy supports [GitHub](https://github.com/about), un service d'hébergement et de partage de code basé sur le Web. CodeDeploy peut déployer des révisions d'applications stockées dans GitHub des référentiels ou des compartiments Amazon S3 sur des instances. CodeDeploy prend en charge GitHub les déploiements EC2/sur site uniquement.

**Topics**
+ [Déploiement de CodeDeploy révisions depuis GitHub](#github-deployment-steps)
+ [GitHub comportements avec CodeDeploy](#github-behaviors)

## Déploiement de CodeDeploy révisions depuis GitHub
<a name="github-deployment-steps"></a>

Pour déployer une révision d'application depuis un GitHub référentiel vers des instances :

1. Créez une révision compatible avec le type CodeDeploy d'instance Amazon EC2 sur lequel vous allez effectuer le déploiement.

   Pour créer une révision compatible, suivez les instructions fournies dans les rubriques [Planifier une révision pour CodeDeploy](application-revisions-plan.md) et [Ajouter un fichier de spécification d'application à une révision pour CodeDeploy](application-revisions-appspec-file.md). 

1. Utilisez un GitHub compte pour ajouter votre révision à un GitHub dépôt.

   Pour créer un GitHub compte, consultez la section [S'inscrire GitHub](https://github.com/join). Pour créer un GitHub dépôt, voir [Créer un dépôt.](https://help.github.com/articles/create-a-repo/)

1. Utilisez la page **Créer un déploiement** de la CodeDeploy console ou la AWS CLI **create-deployment** commande pour déployer votre révision depuis votre GitHub référentiel vers des instances cibles configurées pour être utilisées dans CodeDeploy des déploiements.

   Si vous souhaitez appeler la **create-deployment** commande, vous devez d'abord utiliser la page **Créer un déploiement** de la console pour CodeDeploy autoriser l'interaction avec GitHub l'application spécifiée au nom de votre GitHub compte préféré. Cette opération ne doit être effectuée qu'une seule fois par application.

   Pour savoir comment utiliser la page **Créer un déploiement** pour effectuer un déploiement à partir d'un GitHub référentiel, consultez[Créez un déploiement avec CodeDeploy](deployments-create.md).

   Pour savoir comment appeler la **create-deployment** commande de déploiement à partir d'un GitHub référentiel, consultez[Création d'un déploiement de plate-forme de calcul EC2/sur site (CLI)](deployments-create-cli.md).

   Pour savoir comment préparer des instances en vue de leur utilisation dans les CodeDeploy déploiements, consultez[Utilisation d'instances pour CodeDeploy](instances.md).

Pour de plus amples informations, veuillez consulter [Tutoriel : CodeDeploy À utiliser pour déployer une application à partir de GitHub](tutorials-github.md).

## GitHub comportements avec CodeDeploy
<a name="github-behaviors"></a>

**Topics**
+ [GitHub authentification avec des applications dans CodeDeploy](#behaviors-authentication)
+ [CodeDeploy interaction avec les GitHub référentiels privés et publics](#behaviors-interactions-private-and-public)
+ [CodeDeploy interaction avec les référentiels gérés par l'organisation GitHub](#behaviors-interactions-organization-managed)
+ [Déployez automatiquement à partir CodePipeline de CodeDeploy](#behaviors-deploy-automatically)

### GitHub authentification avec des applications dans CodeDeploy
<a name="behaviors-authentication"></a>

Une fois que vous avez donné CodeDeploy l'autorisation d'interagir avec GitHub, l'association entre ce GitHub compte et l'application est stockée dans CodeDeploy. Vous pouvez associer l'application à un autre GitHub compte. Vous pouvez également révoquer l'autorisation CodeDeploy d'interagir avec GitHub.

**Pour associer un GitHub compte à une application dans CodeDeploy**

1. Connectez-vous à la CodeDeploy console AWS Management Console et ouvrez-la à l'adresse [https://console.aws.amazon.com/codedeploy.](https://console.aws.amazon.com/codedeploy)
**Note**  
Connectez-vous avec le même utilisateur que celui que vous avez configuré[Commencer avec CodeDeploy](getting-started-codedeploy.md).

1. Dans le volet de navigation, développez **Deploy**, puis choisissez **Applications**.

1. Choisissez l'application que vous souhaitez associer à un autre GitHub compte.

1. Si votre application ne possède pas de groupe de déploiement, choisissez **Créer un groupe de déploiement** pour en créer un. Pour de plus amples informations, veuillez consulter [Créez un groupe de déploiement avec CodeDeploy](deployment-groups-create.md). Un groupe de déploiement est nécessaire pour pouvoir choisir **Créer un déploiement** dans l'étape suivante.

1.  Dans **Déploiements**, choisissez **Créer un déploiement**. 
**Note**  
Vous n'avez pas à créer un nouveau déploiement. C'est actuellement le seul moyen de lier un autre GitHub compte à une application.

1.  Dans **Paramètres de déploiement**, pour **Type de révision**, choisissez **Mon application est stockée dans GitHub**. 

1. Effectuez l’une des actions suivantes :
   + Pour créer une connexion entre AWS CodeDeploy les applications et un GitHub compte, déconnectez-vous GitHub dans un onglet de navigateur Web distinct. Dans **Nom du GitHub jeton**, tapez un nom pour identifier cette connexion, puis choisissez **Connect to GitHub**. La page Web vous invite CodeDeploy à autoriser l'interaction avec GitHub votre application. Passez à l'étape 10.
   + Pour utiliser une connexion que vous avez déjà créée, dans **Nom du GitHub jeton**, sélectionnez son nom, puis choisissez **Connect to GitHub**. Passez à l'étape 8.
   + Pour créer une connexion à un autre GitHub compte, déconnectez-vous GitHub dans un onglet de navigateur Web distinct. Dans **Nom du GitHub jeton**, tapez un nom pour identifier la connexion, puis choisissez **Connect to GitHub**. La page Web vous invite CodeDeploy à autoriser l'interaction avec GitHub votre application. Passez à l'étape 10.

1. Si vous n'êtes pas encore connecté GitHub, suivez les instructions de la page **de** connexion pour vous connecter avec le GitHub compte auquel vous souhaitez associer l'application.

1. Choisissez **Autoriser l'application**. GitHub donne CodeDeploy l'autorisation d'interagir avec GitHub l'application sélectionnée au nom du GitHub compte connecté. 

1. Si vous ne souhaitez pas créer de déploiement, choisissez **Annuler**.

**Pour révoquer l'autorisation CodeDeploy d'interagir avec GitHub**

1. Connectez-vous à [GitHub ](https://github.com/dashboard)l'aide des informations d'identification du GitHub compte pour lequel vous souhaitez révoquer AWS CodeDeploy l'autorisation.

1. Ouvrez la page GitHub [Applications](https://github.com/settings/applications), **CodeDeploy**localisez-la dans la liste des applications autorisées, puis suivez la GitHub procédure de révocation de l'autorisation d'une application.

### CodeDeploy interaction avec les GitHub référentiels privés et publics
<a name="behaviors-interactions-private-and-public"></a>

CodeDeploy prend en charge le déploiement d'applications à partir de GitHub référentiels privés et publics. Lorsque vous CodeDeploy autorisez l'accès en votre GitHub nom, vous CodeDeploy aurez un accès en lecture-écriture à tous les GitHub référentiels privés auxquels votre GitHub compte a accès. Cependant, CodeDeploy seules les lectures se trouvent dans GitHub les référentiels. Il n'écrira dans aucun de vos GitHub dépôts privés.

### CodeDeploy interaction avec les référentiels gérés par l'organisation GitHub
<a name="behaviors-interactions-organization-managed"></a>

Par défaut, GitHub les référentiels gérés par une organisation (par opposition aux référentiels privés ou publics de votre compte) n'accordent pas l'accès aux applications tierces, notamment. CodeDeploy Votre déploiement échouera si les restrictions relatives aux applications tierces d'une organisation sont activées GitHub et que vous tentez de déployer du code depuis son GitHub référentiel. Il existe deux façons de résoudre ce problème. 
+ En tant que membre de l'organisation, vous pouvez demander au propriétaire de l'organisation d'approuver l'accès à CodeDeploy. Les étapes à suivre pour demander cet accès varient selon que vous avez déjà autorisé CodeDeploy ou non votre compte individuel :
  + Si vous avez un accès autorisé CodeDeploy à votre compte, consultez la section [Demander l'approbation de l'organisation pour vos applications autorisées](https://help.github.com/articles/requesting-organization-approval-for-your-authorized-applications/).
  + Si vous n'êtes pas encore autorisé à accéder CodeDeploy à votre compte, consultez la section [Demande d'approbation de l'organisation pour les applications tierces](https://help.github.com/articles/requesting-organization-approval-for-third-party-applications/).
+ Le propriétaire de l'organisation peut désactiver toutes les restrictions d'application tierce pour l'organisation. Pour plus d'informations, consultez la section [Désactivation des restrictions relatives aux applications tierces pour votre organisation](https://help.github.com/articles/disabling-third-party-application-restrictions-for-your-organization/).

Pour plus d'informations, voir [À propos des restrictions relatives aux applications tierces](https://help.github.com/articles/about-third-party-application-restrictions/).

### Déployez automatiquement à partir CodePipeline de CodeDeploy
<a name="behaviors-deploy-automatically"></a>

Vous pouvez déclencher un déploiement à partir de CodePipeline chaque fois que le code source change. Pour plus d'informations, consultez [CodePipeline](https://aws.amazon.com/codepipeline/).

# Exemples d'intégration issus de la communauté
<a name="integrations-community"></a>

Les sections suivantes fournissent des liens vers des billets de blogs, des articles et des exemples fournis par la communauté.

**Note**  
Ces liens sont fournis uniquement à titre informatif et ne doivent pas être considérés comme une liste complète ni comme une approbation du contenu des exemples. AWS n'est pas responsable du contenu ni de l'exactitude du contenu externe. 

## Billets de blogs
<a name="integrations-community-blogposts"></a>
+ [Automatisation du CodeDeploy provisionnement dans CloudFormation](http://www.stelligent.com/cloud/automating-aws-codedeploy-provisioning-in-cloudformation/)

  Découvrez comment configurer le déploiement d'une application en CodeDeploy utilisant CloudFormation.

  *Publié en janvier 2016*
+ [AWS Toolkit for Eclipse Intégration avec CodeDeploy (partie 1)](https://aws.amazon.com/blogs/developer/aws-toolkit-for-eclipse-integration-with-aws-codedeploy-part-1/)

  [AWS Toolkit for Eclipse Intégration avec CodeDeploy (partie 2)](https://aws.amazon.com/blogs/developer/aws-toolkit-for-eclipse-integration-with-aws-codedeploy-part-2/)

  [AWS Toolkit for Eclipse Intégration avec CodeDeploy (partie 3)](https://aws.amazon.com/blogs/developer/aws-toolkit-for-eclipse-integration-with-aws-codedeploy-part-3/)

  Découvrez comment les développeurs Java peuvent utiliser le CodeDeploy plugin pour Eclipse pour déployer des applications Web AWS directement depuis les environnements de développement Eclipse.

  *Publié en février 2015*
+ [Déployez automatiquement à GitHub partir de CodeDeploy](https://aws.amazon.com/blogs/devops/automatically-deploy-from-github-using-aws-codedeploy/)

  Découvrez comment les déploiements automatiques de GitHub à CodeDeploy peuvent être utilisés pour créer un end-to-end pipeline, du contrôle de source à vos environnements de test ou de production. 

  *Publié en décembre 2014*