Endpoint di protezione scalabile per attività Amazon ECS - Amazon Elastic Container Service

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'protectionEnabledattributo 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

trueSpecificare di contrassegnare un'attività per la protezione. falseSpecificare 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 su false.

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 o RequestTimeout, è 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" } }