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 ECS terminaison Amazon Task Scale-In Protection
L'agent de ECS conteneur Amazon injecte automatiquement la variable d'ECS_AGENT_URI
environnement dans les conteneurs des ECS tâches Amazon afin de fournir une méthode permettant d'interagir avec le point de API terminaison de l'agent de conteneur.
Nous recommandons d'utiliser le point de terminaison de l'agent de ECS conteneur Amazon 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 PUT demande à cet effet URI depuis un conteneur pour définir la protection évolutive des tâches. Une GET telle demande 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 PUT demande 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 par le point de terminaison de protection évolutif des tâches ${ECS_AGENT_URI}/task-protection/v1/state
dans la JSON réponse.
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
-
Nom complet de la ressource Amazon (ARN) de la tâche à laquelle appartient le conteneur.
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
-
Nom complet de la ressource Amazon (ARN) 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'ECSAPIappel Amazon qui entraîne une exception.
Arn
-
Nom complet de la ressource Amazon (ARN) 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 des VPC points de terminaison pour AmazonECS.
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 apparaît si l'ECSagent Amazon ne parvient pas à obtenir de réponse du point de ECS terminaison Amazon pour des raisons telles que des problèmes de réseau ou une panne du plan de ECS contrôle Amazon.
{ "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'ECSagent Amazon 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" } }