Skalierbarer Schutzendpunkt für Amazon ECS Task - Amazon Elastic Container Service

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Skalierbarer Schutzendpunkt für Amazon ECS Task

Der Amazon-ECS-Container-Agent fügt die ECS_AGENT_URI-Umgebungsvariable automatisch in die Amazon-ECS-Aufgabencontainer ein, um eine Methode für die Interaktion mit dem Container-Agent-API-Endpunkt bereitzustellen.

Wir empfehlen die Verwendung des Amazon-ECS-Container-Agent-Endpunkts für Aufgaben, die den Schutzbedarf selbst bestimmen können.

Wenn ein Container mit der Verarbeitung von Aufgaben beginnt, können Sie das protectionEnabled Attribut mithilfe des Pfads $ECS_AGENT_URI/task-protection/v1/state des Task-Scale-in-Schutz-Endpunkts innerhalb des Containers festlegen.

Verwenden Sie innerhalb eines Containers eine PUT-Anforderung an diesen URI, um den Task-Scale-In-Schutz einzurichten. Eine GET-Anfrage an diesen URI gibt den aktuellen Schutzstatus einer Aufgabe zurück.

Scale-in-Schutzanforderungsparameter für Aufgaben

Sie können den Abskalierungsschutz für Aufgaben mithilfe des ${ECS_AGENT_URI}/task-protection/v1/state-Endpunkts mit den folgenden Anfragenparametern einrichten.

ProtectionEnabled

Geben Sie true an, ob eine Aufgabe als geschützt markiert werden soll. Geben Sie false an, dass der Schutz aufgehoben und die Aufgabe beendet werden kann.

Typ: Boolesch

Erforderlich: Ja

ExpiresInMinutes

Die Anzahl der Minuten, für die die Aufgabe geschützt ist. Sie können mindestens 1 Minute bis zu 2 880 Minuten (48 Stunden) angeben. Während dieses Zeitraums wird Ihre Aufgabe nicht durch Abskalierungsereignisse des Services Auto Scaling oder durch Bereitstellungen beendet. Nach Ablauf dieses Zeitraums wird der protectionEnabled-Parameter auf false gesetzt.

Wenn Sie keinen Zeitraum angeben, wird die Aufgabe automatisch für 120 Minuten (2 Stunden) geschützt.

Typ: Ganzzahl

Erforderlich: Nein

Die folgenden Beispiele zeigen, wie Sie den Aufgabenschutz mit unterschiedlichen Laufzeiten festlegen können.

Beispiel für den Schutz einer Aufgabe mit dem Standardzeitraum

Dieses Beispiel zeigt, wie eine Aufgabe mit dem Standardzeitraum von 2 Stunden geschützt wird.

curl --request PUT --header 'Content-Type: application/json' ${ECS_AGENT_URI}/task-protection/v1/state --data '{"ProtectionEnabled":true}'

Beispiel für den Schutz einer Aufgabe für 60 Minuten

Dieses Beispiel zeigt, wie eine Aufgabe mit dem expiresInMinutes-Parameter 60 Minuten lang geschützt wird.

curl --request PUT --header 'Content-Type: application/json' ${ECS_AGENT_URI}/task-protection/v1/state --data '{"ProtectionEnabled":true,"ExpiresInMinutes":60}'

Beispiel dafür, wie eine Aufgabe 24 Stunden lang geschützt werden kann

Dieses Beispiel zeigt, wie eine Aufgabe mit dem expiresInMinutes-Parameter 24 Stunden lang geschützt wird.

curl --request PUT --header 'Content-Type: application/json' ${ECS_AGENT_URI}/task-protection/v1/state --data '{"ProtectionEnabled":true,"ExpiresInMinutes":1440}'

Die PUT-Anforderung gibt die folgende Antwort zurück.

{ "protection": { "ExpirationDate": "2023-12-20T21:57:44.837Z", "ProtectionEnabled": true, "TaskArn": "arn:aws:ecs:us-west-2:111122223333:task/1234567890abcdef0" } }

Antwortparameter für den Task-Scale-In-Schutz

Die folgenden Informationen werden in der JSON-Antwort des Endpunkts zum Abskalierungsschutz für Aufgaben ${ECS_AGENT_URI}/task-protection/v1/state zurückgegeben.

ExpirationDate

Die Epochenzeit, zu der der Schutz für die Aufgabe abläuft. Wenn die Aufgabe nicht geschützt ist, ist dieser Wert Null.

ProtectionEnabled

Der Schutzstatus der Aufgabe. Wenn der Abskalierungsschutz für eine Aufgabe aktiviert ist, ist der Wert true. Andernfalls ist es false.

TaskArn

Der vollständige Amazon Resource Name (ARN) der Aufgabe, zu der der Container gehört.

Das folgende Beispiel zeigt die für eine geschützte Aufgabe zurückgegebenen Details.

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

Die folgenden Informationen werden zurückgegeben, wenn ein Fehler auftritt.

Arn

Der vollständige Amazon-Ressourcenname (ARN) der Aufgabe.

Detail

Die auf den Fehler bezogenen Details.

Reason

Der Grund für den Fehlschlag.

Das folgende Beispiel zeigt die für eine nicht geschützte Aufgabe zurückgegebenen Details.

{ "failure":{ "Arn":"arn:aws:ecs:us-west-2:111122223333:task/1234567890abcdef0", "Detail":null, "Reason":"TASK_NOT_VALID" } }

Die folgenden Informationen werden zurückgegeben, wenn eine Ausnahme auftritt.

requestID

Die AWS Anforderungs-ID für den Amazon ECS-API-Aufruf, der zu einer Ausnahme führt.

Arn

Der vollständige Amazon-Ressourcenname (ARN) der Aufgabe oder des Services.

Code

Der Fehlercode.

Message

Die Fehlermeldung.

Anmerkung

Wenn ein RequestError- oder RequestTimeout-Fehler auftritt, ist es wahrscheinlich, dass es sich um ein Netzwerkproblem handelt. Versuchen Sie, VPC-Endpunkte für Amazon ECS zu verwenden.

Das folgende Beispiel zeigt die Details, die zurückgegeben werden, wenn ein Fehler auftritt.

{ "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" } }

Der folgende Fehler wird angezeigt, wenn der Amazon-ECS-Agent aus Gründen wie Netzwerkproblemen oder einem Ausfall der Amazon-ECS-Steuerebene keine Antwort vom Amazon-ECS-Endpunkt erhalten kann.

{ "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" } }

Der folgende Fehler wird angezeigt, wenn der Amazon-ECS-Agent eine Drosselungsausnahme von Amazon ECS erhält.

{ "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" } }