View a markdown version of this page

Hooks de cycle de vie pour les déploiements de service Amazon ECS - Amazon Elastic Container Service

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.

Hooks de cycle de vie pour les déploiements de service Amazon ECS

Lorsqu'un déploiement démarre, il passe par différentes étapes du cycle de vie. Chaque étape peut être dans un état tel que IN_PROGRESS ouSUCCEEDED. Vous pouvez configurer les hooks du cycle de vie à des étapes spécifiques pour exécuter une logique personnalisée ou introduire des points de décision avant le début du déploiement. Amazon ECS prend en charge deux types de hooks de cycle de vie :

Crochets Lambda

Amazon ECS invoque une fonction Lambda à des étapes spécifiques d'un déploiement. Votre fonction contient votre logique personnalisée et doit renvoyer un objet JSON contenant un hookStatus of SUCCEEDEDFAILED, ou IN_PROGRESS pour indiquer à Amazon ECS comment procéder. Vous pouvez utiliser ces hooks pour exécuter des tests de validation, appliquer des politiques de gouvernance ou mettre en œuvre des étapes d'approbation personnalisées avant le déploiement. Pour de plus amples informations, veuillez consulter Hooks Lambda pour les déploiements de services Amazon ECS.

Crochets de pause

Amazon ECS suspend le déploiement à une étape du cycle de vie configurée et attend que vous appeliez l'ContinueServiceDeploymentAPI pour poursuivre ou annuler. Pendant la pause, vous pouvez exécuter vos propres flux de travail en externe, tels que les approbations manuelles, les tests d'intégration avec les outils existants, les contrôles de préparation opérationnelle ou les étapes du CI/CD pipeline. Pour de plus amples informations, veuillez consulter Suspendre les hooks pour les déploiements de services Amazon ECS.

Vous pouvez configurer à la fois les hooks Lambda et les hooks de pause au même stade du cycle de vie. Les deux crochets doivent être terminés avant que le déploiement ne passe à l'étape suivante.

Détails du cycle de vie des crochets

Lorsque les hooks sont actifs pendant un déploiement, vous pouvez consulter leur statut en appelantDescribeServiceDeployments. La réponse inclut un lifecycleHookDetails tableau contenant les champs suivants pour chaque hook actif :

Champ Description
hookId Identifiant unique pour l'exécution de ce hook. Utilisez cette valeur lorsque vous appelez ContinueServiceDeployment des crochets de pause.
targetType Type de crochet : AWS_LAMBDA ouPAUSE.
targetArn L'ARN de la cible du hook. Pour les hooks Lambda, il s'agit de la fonction Lambda ARN. Pour les crochets de pause, ce champ n'est pas défini.
status État actuel du hook :AWAITING_ACTION,IN_PROGRESS, SUCCEEDEDFAILED, ouTIMED_OUT.
expiresAt Date et heure d'expiration du hook. (Exemple : T12:06:49-07:00 2026-05-06)
timeoutAction L'action qu'Amazon ECS effectue lorsque le délai de connexion expire : ROLLBACK ouCONTINUE.

Catégories d’étapes du cycle de vie

Les étapes du cycle de vie entrent dans deux catégories principales :

  1. Étapes d'appel uniques : Amazon ECS n'invoque ces étapes qu'une seule fois lors du déploiement d'un service :

    • RECONCILE_SERVICE

    • PRE_SCALE_UP

    • POST_SCALE_UP

    • TEST_TRAFFIC_SHIFT

    • POST_TEST_TRAFFIC_SHIFT

    • POST_PRODUCTION_TRAFFIC_SHIFT

  2. Étapes d'appel récurrentes : Amazon ECS peut invoquer ces étapes à plusieurs reprises au cours du déploiement d'un service. Pour les déploiements linéaires et Canary, les étapes suivantes sont invoquées à chaque étape du transfert de trafic :

    • PRE_PRODUCTION_TRAFFIC_SHIFT

    • PRODUCTION_TRAFFIC_SHIFT

Note

Les crochets de pause ne peuvent pas être configurés à TEST_TRAFFIC_SHIFT ou PRODUCTION_TRAFFIC_SHIFT parce que ces étapes sont également invoquées pendant le rollback. Une pause pendant une annulation nécessiterait un ContinueServiceDeployment appel supplémentaire pour terminer la restauration.

Étapes prises en charge par type de crochet

Étape du cycle de vie Crochets Lambda Crochets de pause
RECONCILE_SERVICE Oui Oui
PRE_SCALE_UP Oui Oui
POST_SCALE_UP Oui Oui
TEST_TRAFFIC_SHIFT Oui Non
POST_TEST_TRAFFIC_SHIFT Oui Oui
PRE_PRODUCTION_TRAFFIC_SHIFT Oui Oui
PRODUCTION_TRAFFIC_SHIFT Oui Non
POST_PRODUCTION_TRAFFIC_SHIFT Oui Oui