Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Endpoint di protezione scalabile per attività Amazon ECS
L'agente del container Amazon ECS inserisce automaticamente la variabile di ambiente ECS_AGENT_URI
nei container delle attività di Amazon ECS per fornire un metodo per interagire con l'endpoint API dell'agente del container.
Consigliamo di utilizzare l'endpoint dell'agente container Amazon ECS per attività che possono determinare autonomamente la necessità di essere protette.
Quando un contenitore inizia a elaborare il lavoro, è possibile impostare l'protectionEnabled
attributo utilizzando il percorso $ECS_AGENT_URI/task-protection/v1/state
dell'endpoint di protezione scale-in dell'attività dall'interno del contenitore.
Utilizzate una richiesta PUT a questo URI dall'interno di un contenitore per impostare la protezione scalabile delle attività. Una richiesta GET a questo URI restituisce lo stato di protezione corrente di un'attività.
Parametri della richiesta di protezione scalabile in base alla dimensione dell'attività
È possibile impostare la protezione scalabile delle attività utilizzando l'endpoint ${ECS_AGENT_URI}/task-protection/v1/state
con i seguenti parametri di richiesta.
ProtectionEnabled
-
true
Specificare di contrassegnare un'attività per la protezione.false
Specificare se rimuovere la protezione e rendere l'attività idonea alla cessazione.Tipo: Booleano
Campo obbligatorio: sì
ExpiresInMinutes
-
Il numero di minuti in cui l'attività è protetta. È possibile specificare da un minimo di 1 minuto a un massimo di 2.880 minuti (48 ore). Durante questo periodo di tempo, l'attività non verrà terminata da eventi di dimensionamento derivanti dal servizio Dimensionamento automatico o dalle implementazioni. Trascorso questo periodo di tempo, il parametro
protectionEnabled
viene impostato sufalse
.Se non si specifica l'ora, l'attività viene protetta automaticamente per 120 minuti (2 ore).
Tipo: integer
Campo obbligatorio: no
Gli esempi seguenti mostrano come impostare la protezione delle attività con durate diverse.
Esempio di come proteggere un'attività con il periodo di tempo predefinito
Questo esempio mostra come proteggere un'attività con il periodo di tempo predefinito di 2 ore.
curl --request PUT --header 'Content-Type: application/json' ${ECS_AGENT_URI}/task-protection/v1/state --data '{"ProtectionEnabled":true}'
Esempio di protezione di un'attività per 60 minuti
Questo esempio mostra come proteggere un'attività per 60 minuti utilizzando il parametro expiresInMinutes
.
curl --request PUT --header 'Content-Type: application/json' ${ECS_AGENT_URI}/task-protection/v1/state --data '{"ProtectionEnabled":true,"ExpiresInMinutes":60}'
Esempio di protezione di un'attività per 24 ore
Questo esempio mostra come proteggere un'attività per 24 ore utilizzando il parametro expiresInMinutes
.
curl --request PUT --header 'Content-Type: application/json' ${ECS_AGENT_URI}/task-protection/v1/state --data '{"ProtectionEnabled":true,"ExpiresInMinutes":1440}'
La richiesta PUT restituisce la seguente risposta.
{ "protection": { "ExpirationDate": "2023-12-20T21:57:44.837Z", "ProtectionEnabled": true, "TaskArn": "arn:aws:ecs:us-west-2:111122223333:task/1234567890abcdef0" } }
Parametri di risposta alla protezione scalabili in base alle attività
La risposta in formato JSON dell'endpoint di protezione per il dimensionamento delle attività ${ECS_AGENT_URI}/task-protection/v1/state
restituisce le seguenti informazioni.
ExpirationDate
-
L'ora in cui scadrà la protezione per l'attività. Se l'attività non è protetta, questo valore è nullo.
ProtectionEnabled
-
Lo stato di protezione dell'attività. Se la protezione scalabile è abilitata per un'attività, il valore è
true
. In caso contrario èfalse
. TaskArn
-
L'Amazon Resource Name (ARN) completo dell'attività a cui appartiene il container.
L'esempio che segue mostra i dettagli restituiti per un'attività protetta.
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" } }
Le seguenti informazioni vengono restituite quando si verifica un errore.
Arn
-
Il nome della risorsa Amazon (ARN) completo dell'attività.
Detail
-
I dettagli relativi all'errore.
Reason
-
Il motivo dell'errore.
L'esempio che segue mostra i dettagli restituiti per un'attività che non è protetta.
{ "failure":{ "Arn":"arn:aws:ecs:us-west-2:111122223333:task/1234567890abcdef0", "Detail":null, "Reason":"TASK_NOT_VALID" } }
Le seguenti informazioni vengono restituite quando si verifica un'eccezione.
requestID
-
L'ID della AWS richiesta per la chiamata API Amazon ECS che genera un'eccezione.
Arn
-
Il nome della risorsa Amazon (ARN) completo dell'attività o del servizio.
Code
-
Il codice di errore.
Message
-
Messaggio di errore.
Nota
Se viene visualizzato un errore
RequestError
oRequestTimeout
, è probabile che si tratti di un problema di rete. Prova a utilizzare gli endpoint VPC per Amazon ECS.
L'esempio che segue mostra i dettagli restituiti quando si verifica un errore.
{ "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'errore seguente viene visualizzato se l'agente Amazon ECS non è in grado di ottenere una risposta dall'endpoint Amazon ECS per motivi quali problemi di rete o il piano di controllo Amazon ECS inattivo.
{ "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" } }
Il seguente errore si verifica quando l'agente Amazon ECS riceve un'eccezione di limitazione da 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" } }