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.
Point de terminaison de protection évolutif des tâches Amazon ECS
L'agent de conteneur Amazon ECS injecte automatiquement la variable d'environnement ECS_AGENT_URI
dans les conteneurs des tâches Amazon ECS afin de fournir une méthode permettant d'interagir avec le point de terminaison de l'API de l'agent de conteneur.
Nous vous recommandons d'utiliser le point de terminaison de l'agent de conteneur Amazon ECS pour les tâches qui peuvent déterminer automatiquement le besoin de protection.
Lorsqu'un conteneur commence à traiter des tâches, vous pouvez définir l'protectionEnabled
attribut à l'aide du chemin du point de terminaison de protection évolutif des tâches $ECS_AGENT_URI/task-protection/v1/state
depuis le conteneur.
Utilisez une requête PUT envoyée à cet URI depuis un conteneur pour définir la protection intégrée des tâches. Une requête GET envoyée à cet URI renvoie l'état de protection actuel d'une tâche.
Paramètres de demande de protection évolutifs des tâches
Vous pouvez définir la protection évolutive des tâches à l'aide du point de terminaison ${ECS_AGENT_URI}/task-protection/v1/state
avec les paramètres de demande suivants.
ProtectionEnabled
-
Spécifiez
true
pour marquer une tâche à protéger. Spécifiezfalse
si vous souhaitez supprimer la protection et rendre la tâche éligible à l'arrêt.Type : booléen
Obligatoire : oui
ExpiresInMinutes
-
Le nombre de minutes pendant lesquelles la tâche est protégée. Vous pouvez spécifier un minimum de 1 minute et aller jusqu'à 2 880 minutes (48 heures). Pendant cette période, votre tâche ne sera pas interrompue par des événements de mise à l'échelle horizontale provenant de l'autoscaling du service ou de déploiements. Une fois cette période écoulée, le paramètre
protectionEnabled
est défini surfalse
.Si vous ne spécifiez pas l'heure, la tâche est automatiquement protégée pendant 120 minutes (2 heures).
Type : entier
Obligatoire : non
Les exemples suivants montrent comment définir la protection des tâches avec des durées différentes.
Exemple de protection d'une tâche avec la période par défaut
Cet exemple montre comment protéger une tâche dont la durée par défaut est de 2 heures.
curl --request PUT --header 'Content-Type: application/json' ${ECS_AGENT_URI}/task-protection/v1/state --data '{"ProtectionEnabled":true}'
Exemple de protection d'une tâche pendant 60 minutes
Cet exemple montre comment protéger une tâche pendant 60 minutes à l'aide du paramètre expiresInMinutes
.
curl --request PUT --header 'Content-Type: application/json' ${ECS_AGENT_URI}/task-protection/v1/state --data '{"ProtectionEnabled":true,"ExpiresInMinutes":60}'
Exemple de protection d'une tâche pendant 24 heures
Cet exemple montre comment protéger une tâche pendant 24 heures à l'aide du paramètre expiresInMinutes
.
curl --request PUT --header 'Content-Type: application/json' ${ECS_AGENT_URI}/task-protection/v1/state --data '{"ProtectionEnabled":true,"ExpiresInMinutes":1440}'
La requête PUT renvoie la réponse suivante.
{ "protection": { "ExpirationDate": "2023-12-20T21:57:44.837Z", "ProtectionEnabled": true, "TaskArn": "arn:aws:ecs:us-west-2:111122223333:task/1234567890abcdef0" } }
Paramètres de réponse de protection évolutifs des tâches
Les informations suivantes sont renvoyées à partir de la réponse JSON du point de terminaison de protection contre la mise à l'échelle horizontale des tâches ${ECS_AGENT_URI}/task-protection/v1/state
.
ExpirationDate
-
Période pendant laquelle la protection de la tâche expirera. Si la tâche n'est pas protégée, cette valeur est nulle.
ProtectionEnabled
-
État de protection de la tâche. Si la protection évolutive est activée pour une tâche, la valeur est
true
. Sinon, la valeur estfalse
. TaskArn
-
Amazon Resource Name (ARN) de la tâche à laquelle le conteneur appartient.
L'exemple suivant affiche les détails renvoyés pour une tâche protégée.
curl --request GET ${ECS_AGENT_URI}/task-protection/v1/state
{ "protection":{ "ExpirationDate":"2023-12-20T21:57:44Z", "ProtectionEnabled":true, "TaskArn":"arn:aws:ecs:us-west-2:111122223333:task/1234567890abcdef0" } }
Les informations suivantes sont renvoyées en cas d'échec.
Arn
-
Amazon Resource Name (ARN) complet de la tâche.
Detail
-
Détails relatifs à l'échec.
Reason
-
Raison de l'échec.
L'exemple suivant affiche les détails renvoyés pour une tâche qui n'est pas protégée.
{ "failure":{ "Arn":"arn:aws:ecs:us-west-2:111122223333:task/1234567890abcdef0", "Detail":null, "Reason":"TASK_NOT_VALID" } }
Les informations suivantes sont renvoyées en cas d'exception.
requestID
-
L'ID de AWS demande pour l'appel d'API Amazon ECS qui entraîne une exception.
Arn
-
Amazon Resource Name (ARN) complet de la tâche ou du service.
Code
-
Code de l’erreur.
Message
-
Message d’erreur.
Note
Si une erreur
RequestError
ouRequestTimeout
apparaît, il s'agit probablement d'un problème de mise en réseau. Essayez d'utiliser les points de terminaison d'un VPC pour Amazon ECS.
L'exemple suivant affiche les détails renvoyés en cas d'erreur.
{ "requestID":"12345-abc-6789-0123-abc", "error":{ "Arn":"arn:aws:ecs:us-west-2:555555555555:task/my-cluster-name/1234567890abcdef0", "Code":"AccessDeniedException", "Message":"User: arn:aws:sts::444455556666:assumed-role/my-ecs-task-role/1234567890abcdef0 is not authorized to perform: ecs:GetTaskProtection on resource: arn:aws:ecs:us-west-2:555555555555:task/test/1234567890abcdef0 because no identity-based policy allows the ecs:GetTaskProtection action" } }
L'erreur suivante s'affiche si l'agent Amazon ECS ne parvient pas à obtenir de réponse du point de terminaison Amazon ECS pour des raisons telles que des problèmes de réseau ou si le plan de contrôle Amazon ECS est en panne.
{ "error": { "Arn": "arn:aws:ecs:us-west-2:555555555555:task/my-cluster-name/1234567890abcdef0", "Code": "RequestCanceled", "Message": "Timed out calling Amazon ECS Task Protection API" } }
L'erreur suivante apparaît lorsque l'agent Amazon ECS reçoit une exception de limitation de la part d'Amazon ECS.
{ "requestID": "12345-abc-6789-0123-abc", "error": { "Arn": "arn:aws:ecs:us-west-2:555555555555:task/my-cluster-name/1234567890abcdef0", "Code": "ThrottlingException", "Message": "Rate exceeded" } }