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.
Endpunkt von Amazon ECS Task Scale-in Protection
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 über den Endpunkt-Pfad $ECS_AGENT_URI/task-protection/v1/state zum Abskalierungsschutz für Aufgaben innerhalb des Containers festlegen.
Eine PUT-Anfrage an diesen URI innerhalb eines Containers legt den Abskalierungsschutz für Aufgaben fest. Eine GET-Anfrage an diese URI ruft den aktuellen Schutzstatus einer Aufgabe ab.
Parameter der Endpunkt-Anfrage zum Abskalierungsschutz 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
truean, um eine Aufgabe als geschützt zu markieren. Geben Siefalsean, um den Schutz aufzuheben und die Aufgabe für die Beendigung zu berechtigen.Typ: Boolesch
Erforderlich: Ja
ExpiresInMinutes-
Die Anzahl der Minuten, für 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 auffalsegesetzt.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 der Standardzeitspanne
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 dafür, wie eine Aufgabe 60 Minuten lang geschützt wird
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 wird
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}'
Beispiele für Windows-Container
Für Windows-Container können Sie PowerShell das Invoke-RestMethod Cmdlet's anstelle von curl verwenden. Die folgenden Beispiele zeigen die PowerShell Entsprechungen der vorherigen curl-Befehle.
Beispiel für den Schutz einer Windows-Container-Aufgabe mit der Standardzeitspanne
Dieses Beispiel zeigt, wie Sie eine Aufgabe mit dem Standardzeitraum von 2 Stunden schützen können, indem Sie. PowerShell
Invoke-RestMethod -Uri $env:ECS_AGENT_URI/task-protection/v1/state -Method Put -Body '{"ProtectionEnabled":true}' -ContentType 'application/json'
Beispiel dafür, wie eine Windows-Container-Aufgabe 60 Minuten lang geschützt wird
Dieses Beispiel zeigt, wie eine Aufgabe mithilfe des expiresInMinutes Parameters with 60 Minuten lang geschützt wird PowerShell.
Invoke-RestMethod -Uri $env:ECS_AGENT_URI/task-protection/v1/state -Method Put -Body '{"ProtectionEnabled":true,"ExpiresInMinutes":60}' -ContentType 'application/json'
Beispiel dafür, wie eine Windows-Container-Aufgabe 24 Stunden lang geschützt wird
Dieses Beispiel zeigt, wie eine Aufgabe mithilfe des expiresInMinutes Parameters with für 24 Stunden geschützt wird PowerShell.
Invoke-RestMethod -Uri $env:ECS_AGENT_URI/task-protection/v1/state -Method Put -Body '{"ProtectionEnabled":true,"ExpiresInMinutes":1440}' -ContentType 'application/json'
Die PUT-Anfrage 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" } }
Parameter der Antwort des Abskalierungsschutz für Aufgaben
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
Verwenden Sie für Windows-Container den folgenden PowerShell Befehl, um den Schutzstatus abzurufen:
Invoke-RestMethod -Uri $env:ECS_AGENT_URI/task-protection/v1/state -Method Get
{ "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" } }