Redéployez et annulez un déploiement avec CodeDeploy - AWS CodeDeploy

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.

Redéployez et annulez un déploiement avec CodeDeploy

CodeDeploy annule les déploiements en redéployant une version précédemment déployée d'une application en tant que nouveau déploiement. Techniquement, ces déploiements restaurés sont de nouveaux déploiements, avec de nouveaux ID de déploiement, plutôt que des versions restaurées d'un déploiement précédent.

Les déploiements peuvent être restaurés automatiquement ou manuellement.

Annulations automatiques

Vous pouvez configurer un groupe de déploiement ou un déploiement pour être restaurés automatiquement lorsqu'un déploiement échoue, ou lorsqu'un seuil de surveillance que vous spécifiez est atteint. Dans ce cas, la dernière version correcte connue d'une révision de l'application est déployée. Vous configurez des restaurations automatiques lorsque vous créez une application ou créez ou mettez à jour un groupe de déploiement.

Lorsque vous créez un nouveau déploiement, vous pouvez également choisir de remplacer la configuration de la restauration automatique qui a été spécifiée pour le groupe de déploiement.

Note

Vous pouvez utiliser Amazon Simple Notification Service pour recevoir une notification chaque fois qu'un déploiement est annulé automatiquement. Pour plus d’informations, veuillez consulter Monitoring Deployments with Amazon SNS Event Notifications.

Pour plus d'informations sur la configuration de la restauration automatique, consultez Configuration des options avancées d'un groupe de déploiement.

Annulations manuelles

Si vous n'avez pas configuré les restaurations automatiques, vous pouvez annuler manuellement un déploiement en créant un nouveau déploiement qui utilise une révision d'application précédemment déployée et en suivant les étapes pour redéployer une révision. Vous pouvez le faire si une application a atteint un état inconnu. Plutôt que de passer beaucoup de temps à résoudre des problèmes, vous pouvez redéployer l'application dans un état de fonctionnement connu. Pour plus d’informations, consultez Créez un déploiement avec CodeDeploy.

Note

Si vous supprimez une instance d'un groupe de déploiement, CodeDeploy cela ne désinstalle aucun élément susceptible d'avoir déjà été installé sur cette instance.

Flux de travail de restauration et de redéploiement

Lorsque la restauration automatique est lancée, ou lorsque vous lancez manuellement un redéploiement ou une annulation manuelle, essayez d' CodeDeploy abord de supprimer de chaque instance participante tous les fichiers qui ont été installés avec succès pour la dernière fois. CodeDeploy pour ce faire, vérifiez le fichier de nettoyage :

/opt/codedeploy-agent/deployment-root/deployment-instructions/deployment-group-ID-cleanupfichier (pour les instances Amazon Linux, Ubuntu Server et RHEL)

C:\ProgramData\Amazon\CodeDeploy\deployment-instructions\deployment-group-ID-cleanupfichier (pour les instances Windows Server)

S'il existe, CodeDeploy utilise le fichier de nettoyage pour supprimer de l'instance tous les fichiers répertoriés avant de démarrer le nouveau déploiement.

Par exemple, les deux premiers fichiers texte et les deux fichiers de script ont déjà été déployés sur une instance Amazon EC2 exécutant Windows Server, et les scripts ont créé deux autres fichiers texte lors des événements du cycle de vie du déploiement :

c:\temp\a.txt (previously deployed by CodeDeploy) c:\temp\b.txt (previously deployed by CodeDeploy) c:\temp\c.bat (previously deployed by CodeDeploy) c:\temp\d.bat (previously deployed by CodeDeploy) c:\temp\e.txt (previously created by c.bat) c:\temp\f.txt (previously created by d.bat)

Le fichier de nettoyage répertorie uniquement les deux premiers fichiers texte et deux fichiers de script :

c:\temp\a.txt c:\temp\b.txt c:\temp\c.bat c:\temp\d.bat

Avant le nouveau déploiement, seuls les deux premiers fichiers texte et les deux fichiers de script CodeDeploy seront supprimés, les deux derniers étant conservés :

c:\temp\a.txt will be removed c:\temp\b.txt will be removed c:\temp\c.bat will be removed c:\temp\d.bat will be removed c:\temp\e.txt will remain c:\temp\f.txt will remain

Dans le cadre de ce processus, je n' CodeDeploy essaierai pas d'annuler ou de réconcilier les actions entreprises par des scripts lors de déploiements précédents lors de redéploiements ultérieurs, qu'il s'agisse de annulations manuelles ou automatiques. Par exemple, si les d.bat fichiers c.bat and contiennent une logique empêchant de recréer les f.txt fichiers e.txt and s'ils existent déjà, les anciennes versions de e.txt et f.txt resteront inchangées lors des CodeDeploy exécutions c.bat et des d.bat déploiements ultérieurs. Vous pouvez ajouter une logique à c.bat et d.bat pour toujours vérifier et supprimer les anciennes versions de e.txt et f.txt avant d'en créer de nouvelles.

Comportement d'annulation avec du contenu existant

Dans le cadre du processus de déploiement, l' CodeDeploy agent supprime de chaque instance tous les fichiers installés par le déploiement le plus récent. Si des fichiers qui ne faisaient pas partie d'un déploiement précédent apparaissent dans les emplacements de déploiement cibles, vous pouvez choisir ce qu' CodeDeploy il en sera fait lors du prochain déploiement :

  • Échec du déploiement : une erreur est signalée et le statut du déploiement passe à Échec.

  • Remplacer le contenu : la version du fichier issue de la révision de l'application remplace la version déjà présente sur l'instance.

  • Conserver le contenu : le fichier à l'emplacement cible est conservé et la version de la révision de l'application n'est pas copiée sur l'instance.

Vous pouvez choisir ce comportement lorsque vous créez un déploiement. Si vous créez un déploiement dans la console, consultezCréation d'un déploiement de plate-forme de calcul EC2/sur site (console). Si vous créez un déploiement avec le AWS CLI, voirCréation d'un déploiement de plate-forme de calcul EC2/sur site (CLI).

Vous pouvez choisir de conserver les fichiers dont vous voulez qu'ils fassent partie du prochain déploiement sans avoir à les ajouter au package de la révision de l'application. Par exemple, vous pouvez charger directement sur l'instance des fichiers qui sont requis pour le déploiement, mais qui n'ont pas été ajoutés au groupe de révisions de l'application. Vous pouvez également télécharger des fichiers sur l'instance si vos applications se trouvent déjà dans votre environnement de production mais que vous souhaitez les utiliser CodeDeploy pour la première fois pour les déployer.

Dans le cas d'une restauration, où la dernière révision d'application déployée avec succès est redéployée en raison d'une défaillance de déploiement, l'option content-handling de ce dernier déploiement réussi est appliquée au déploiement de la restauration.

Cependant, si le déploiement qui a échoué a été configuré pour remplacer les fichiers au lieu de les conserver, un résultat inattendu peut se produire pendant la restauration. En particulier, les fichiers que vous avez prévu de conserver peuvent être supprimés par l'échec du déploiement. Les fichiers ne sont pas sur l'instance lorsque le déploiement de la restauration s'exécute.

Dans l'exemple suivant, il existe trois déploiements. Tout fichier écrasé (supprimé) au cours du deuxième déploiement défaillant n'est plus disponible (ne peut pas être conservé) lorsque la révision d'application 1 est déployée à nouveau pendant le déploiement 3 :

Déploiement

Révision de l'application

Option de remplacement du contenu

Statut du déploiement

Comportement et résultat

déploiement 1

révision d'application 1

RETAIN

Réussi

CodeDeploy détecte les fichiers dans les emplacements cibles qui n'ont pas été déployés lors du déploiement précédent. Ces fichiers peuvent être placés là intentionnellement pour faire partie du déploiement actuel. Ils sont conservés et enregistrés dans le cadre du package de déploiement actuel.

déploiement 2

révision d'application 2

OVERWRITE

Échec

Au cours du processus de déploiement, CodeDeploy supprime tous les fichiers faisant partie du déploiement réussi précédent. Cela inclut les fichiers qui ont été conservés pendant le déploiement 1.

Cependant, le déploiement échoue pour des raisons indépendantes.

déploiement 3

révision d'application 1

RETAIN

La restauration automatique étant activée pour le déploiement ou le groupe de déploiement, CodeDeploy déploie la dernière révision correcte connue de l'application, à savoir la révision 1 de l'application.

Cependant, les fichiers que vous souhaitiez conserver dans le déploiement 1 ont été supprimés avant l'échec du déploiement 2 et ne peuvent pas être récupérés par AWS CodeDeploy. Vous pouvez les ajouter à l'instance vous-même s'ils sont obligatoires pour la révision d'application 1, ou vous pouvez créer une nouvelle révision d'application.