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 Siefalse
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 auffalse
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 esfalse
. 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
- oderRequestTimeout
-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" } }