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 relatifs au cycle de vie pour les déploiements de services Amazon ECS
Lorsqu'un déploiement démarre, il passe par différentes étapes du cycle de vie. Ces étapes peuvent avoir l'état IN_PROGRESS ou être réussies. Vous pouvez utiliser les hooks du cycle de vie, qui sont des fonctions Lambda qu'Amazon ECS exécute en votre nom à des étapes du cycle de vie spécifiées. Les fonctions peuvent être l'une des suivantes :
-
Une API asynchrone qui valide le bilan de santé en 15 minutes.
-
Une API de sondage qui lance un autre processus asynchrone évaluant l'achèvement du cycle de vie du hook.
Une fois l'exécution de la fonction terminée, elle doit renvoyer un hookStatus
pour que le déploiement se poursuive. Si a n'hookStatus
est pas renvoyé ou si la fonction échoue, le déploiement est annulé. Les hookStatus
valeurs sont les suivantes :
-
SUCCEEDED
- le déploiement se poursuit jusqu'à l'étape suivante du cycle de vie -
FAILED
— le déploiement revient au dernier déploiement réussi. -
IN_PROGRESS
— Amazon ECS exécute à nouveau la fonction après un court laps de temps. Par défaut, il s'agit d'un intervalle de 30 secondes, mais cette valeur est personnalisable en renvoyant un àcallBackDelay
côté dehookStatus
.
L'exemple suivant montre comment renvoyer un hookStatus
avec un délai de rappel personnalisé. Dans cet exemple, Amazon ECS réessaierait ce hook en 60 secondes au lieu des 30 secondes par défaut :
{ "hookStatus": "IN_PROGRESS", "callBackDelay": 60 }
Lorsqu'un rollback se produit, Amazon ECS exécute les hooks du cycle de vie pour les étapes du cycle de vie suivantes :
-
PRODUCTION_TRAFFIC_SHIFT
-
TEST_TRAFFIC_SHIFT
Charges utiles du cycle de vie
Lorsque vous configurez des crochets de cycle de vie pour vos déploiements de services ECS, Amazon ECS invoque ces crochets à des étapes spécifiques du processus de déploiement. Chaque étape du cycle de vie fournit une charge utile JSON contenant des informations sur l'état actuel du déploiement. Ce document décrit la structure de charge utile pour chaque étape du cycle de vie.
Structure de charge utile commune
Toutes les charges utiles liées aux étapes du cycle de vie incluent les champs communs suivants :
-
serviceArn
- Le nom de ressource Amazon (ARN) du service. -
targetServiceRevisionArn
- L'ARN de la révision du service cible en cours de déploiement. -
testTrafficWeights
- Une carte de révision des services en fonction ARNs des pourcentages de pondération du trafic de test correspondants. -
productionTrafficWeights
- Une carte de révision des services en fonction ARNs des pourcentages de pondération du trafic de production correspondants.
Charges utiles au stade du cycle de vie
SERVICE DE RÉCONCILIATION
Cette étape a lieu au début du processus de déploiement lorsque le service est en cours de réconciliation. Voici un exemple de charge utile pour cette étape du cycle de vie.
{ "serviceArn": "arn:aws:ecs:us-west-2:1234567890:service/myCluster/myService", "targetServiceRevisionArn": "arn:aws:ecs:us-west-2:1234567890:service-revision/myCluster/myService/01275892", "testTrafficWeights": { "arn:aws:ecs:us-west-2:1234567890:service-revision/myCluster/myService/01275892": 100, "arn:aws:ecs:us-west-2:1234567890:service-revision/myCluster/myService/78652123": 0 }, "productionTrafficWeights": { "arn:aws:ecs:us-west-2:1234567890:service-revision/myCluster/myService/01275892": 100, "arn:aws:ecs:us-west-2:1234567890:service-revision/myCluster/myService/78652123": 0 } }
Attentes à ce stade :
-
L'ensemble de tâches principal est à une échelle de 0 %
PRÉ_SCALE_UP
Cette étape a lieu avant que les nouvelles tâches ne soient étendues. Voici un exemple de charge utile pour cette étape du cycle de vie.
{ "serviceArn": "arn:aws:ecs:us-west-2:1234567890:service/myCluster/myService", "targetServiceRevisionArn": "arn:aws:ecs:us-west-2:1234567890:service-revision/myCluster/myService/01275892", "testTrafficWeights": {}, "productionTrafficWeights": {} }
Attentes à ce stade :
-
Les tâches de révision des services écologiques sont à une échelle de 0 %
POST_SCALE_UP
Cette étape intervient une fois que les nouvelles tâches ont été étendues et qu'elles sont saines. Voici un exemple de charge utile pour cette étape du cycle de vie.
{ "serviceArn": "arn:aws:ecs:us-west-2:1234567890:service/myCluster/myService", "targetServiceRevisionArn": "arn:aws:ecs:us-west-2:1234567890:service-revision/myCluster/myService/01275892", "testTrafficWeights": {}, "productionTrafficWeights": {} }
Attentes à ce stade :
-
Les tâches de révision des services écologiques sont à une échelle de 100 %
-
Les tâches liées à la révision des services écologiques sont saines
TEST_TRAFFIC_SHIFT
Cette étape se produit lorsque le trafic de test est transféré vers les tâches de révision des services écologiques.
Voici un exemple de charge utile pour cette étape du cycle de vie.
{ "serviceArn": "arn:aws:ecs:us-west-2:1234567890:service/myCluster/myService", "targetServiceRevisionArn": "arn:aws:ecs:us-west-2:1234567890:service-revision/myCluster/myService/01275892", "testTrafficWeights": { "arn:aws:ecs:us-west-2:1234567890:service-revision/myCluster/myService/01275892": 100, "arn:aws:ecs:us-west-2:1234567890:service-revision/myCluster/myService/78652123": 0 }, "productionTrafficWeights": {} }
Attentes à ce stade :
-
Le trafic de test est en train de passer aux tâches de révision des services écologiques.
POST-TEST_TRAFFIC_SHIFT
Cette étape intervient une fois que le trafic de test a été entièrement transféré vers les nouvelles tâches.
Voici un exemple de charge utile pour cette étape du cycle de vie.
{ "serviceArn": "arn:aws:ecs:us-west-2:1234567890:service/myCluster/myService", "targetServiceRevisionArn": "arn:aws:ecs:us-west-2:1234567890:service-revision/myCluster/myService/01275892", "testTrafficWeights": {}, "productionTrafficWeights": {} }
Attentes à ce stade :
-
100 % du trafic de test a été affecté aux tâches de révision des services écologiques.
PRODUCTION_TRAFFIC_SHIFT
Cette étape se produit lorsque le trafic de production est transféré vers les tâches de révision des services écologiques.
{ "serviceArn": "arn:aws:ecs:us-west-2:1234567890:service/myCluster/myService", "targetServiceRevisionArn": "arn:aws:ecs:us-west-2:1234567890:service-revision/myCluster/myService/01275892", "testTrafficWeights": {}, "productionTrafficWeights": { "arn:aws:ecs:us-west-2:1234567890:service-revision/myCluster/myService/01275892": 100, "arn:aws:ecs:us-west-2:1234567890:service-revision/myCluster/myService/78652123": 0 } }
Attentes à ce stade :
-
Le trafic de production est en train de passer à la révision du service écologique.
POST-PRODUCTION TRAFFIC_SHIFT
Cette étape intervient une fois que le trafic de production a été entièrement transféré aux tâches de révision des services écologiques.
{ "serviceArn": "arn:aws:ecs:us-west-2:1234567890:service/myCluster/myService", "targetServiceRevisionArn": "arn:aws:ecs:us-west-2:1234567890:service-revision/myCluster/myService/01275892", "testTrafficWeights": {}, "productionTrafficWeights": {} }
Attentes à ce stade :
-
100 % du trafic de production a été consacré aux tâches de révision des services écologiques.
Catégories d'étapes du cycle de vie
Les étapes du cycle de vie se répartissent en deux catégories :
-
Étapes d'appel uniques : ces étapes ne sont invoquées qu'une seule fois lors du déploiement d'un service :
PRÉ_SCALE_UP
POST_SCALE_UP
POST-TEST_TRAFFIC_SHIFT
POST-PRODUCTION TRAFFIC_SHIFT
-
Étapes d'appel récurrentes : ces étapes peuvent être invoquées plusieurs fois au cours du déploiement d'un service, par exemple lors d'une opération de restauration :
TEST_TRAFFIC_SHIFT
PRODUCTION_TRAFFIC_SHIFT
État du déploiement pendant les phases de cycle de vie
Pendant que les hooks du cycle de vie sont en cours d'exécution, l'état du déploiement s'appliquera IN_PROGRESS
à toutes les étapes du cycle de vie.
Étape du cycle de vie | État du déploiement |
---|---|
SERVICE DE RÉCONCILIATION | EN_COURS |
PRÉ_SCALE_UP | EN_COURS |
POST_SCALE_UP | EN_COURS |
TEST_TRAFFIC_SHIFT | EN_COURS |
POST-TEST_TRAFFIC_SHIFT | EN_COURS |
PRODUCTION_TRAFFIC_SHIFT | EN_COURS |
POST-PRODUCTION TRAFFIC_SHIFT | EN_COURS |