選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

Amazon ECS 任務縮減保護端點

焦點模式
Amazon ECS 任務縮減保護端點 - Amazon Elastic Container Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Amazon ECS 容器代理程式會自動將 ECS_AGENT_URI 環境變體注入 Amazon ECS 任務的容器中,以提供與容器代理程式 API 端點互動的方法。

我們建議將 Amazon ECS 容器代理程式端點,用於可自行判斷是否需要保護的任務。

當容器開始處理工作時,您可以使用$ECS_AGENT_URI/task-protection/v1/state容器中的任務縮減保護端點路徑來設定 protectionEnabled 屬性。

在容器內使用此 URI 的 PUT 請求來設定任務縮減保護。此 URI 的 GET 請求會傳回任務的目前保護狀態。

任務縮減保護請求參數

您可以使用具有下列請求參數的 ${ECS_AGENT_URI}/task-protection/v1/state 端點來設定任務縮減保護。

ProtectionEnabled

指定 true來標記任務以進行保護。指定 false以移除保護,並讓任務符合終止資格。

類型:布林值

必要:是

ExpiresInMinutes

任務受到保護的分鐘數。您可以指定最短 1 分鐘到最長 2,880 分鐘 (48 小時)。在此期間,您的任務不會因 Service Auto Scaling 或部署中的縮減事件而終止。在此時段過後,將 protectionEnabled 參數設為 false

如果您未指定時間,則會自動保護任務 120 分鐘 (2 小時)。

類型:整數

必要:否

下列範例示範如何設定具有不同時段的任務保護。

如何使用預設時段保護任務的範例

此範例示範如何保護預設時段為 2 小時的任務。

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

如何保護任務 60 分鐘的範例

此範例示範如何使用 expiresInMinutes 參數保護任務 60 分鐘。

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

如何保護任務 24 小時的範例

此範例示範如何使用 expiresInMinutes 參數保護任務 24 小時。

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

PUT 請求會傳回下列回應。

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

任務縮減保護回應參數

JSON 回應中的任務縮減保護端點 ${ECS_AGENT_URI}/task-protection/v1/state 會傳回下列資訊。

ExpirationDate

任務保護將到期的時間 (以 Epoch 時間表示)。如果任務未受保護,則此值為 null。

ProtectionEnabled

任務的保護狀態。如果已針對任務啟用縮減保護,則值為 true。否則為 false

TaskArn

容器所屬任務的完整 Amazon Resource Name (ARN)。

下列範例顯示了為受保護任務傳回的詳細資訊。

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

發生失敗時會傳回下列資訊。

Arn

任務的完整 Amazon Resource Name (ARN)。

Detail

與失敗相關的詳細資訊。

Reason

失敗的原因。

下列範例顯示了為未保護任務傳回的詳細資訊。

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

發生例外狀況時會傳回下列資訊。

requestID

造成例外狀況的 Amazon ECS API 呼叫 AWS 請求 ID。

Arn

任務或服務的完整 Amazon Resource Name (ARN)。

Code

錯誤代碼。

Message

錯誤訊息。

注意

如果出現 RequestErrorRequestTimeout 錯誤,則可能是聯網問題。嘗試對 Amazon ECS 使用 VPC 端點。

以下範例顯示了發生錯誤時傳回的詳細資訊。

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

如果 Amazon ECS 代理程式因為網路問題或 Amazon ECS 控制平面關閉等原因而無法從 Amazon ECS 端點獲得回應,則會出現下列錯誤。

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

當 Amazon ECS 代理程式從 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" } }
隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。