Point de terminaison de protection évolutif des tâches 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.

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'protectionEnabledattribut à 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écifiez false 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 sur false.

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 est false.

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 ou RequestTimeout 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" } }