Help us improve the AWS re:Post Knowledge Center by sharing your feedback in a brief survey. Your input can influence how we create and update our content to better support your AWS journey.
如何對 Amazon ECS 任務的標籤問題進行疑難排解?
我想要對 Amazon Elastic Container Service (Amazon ECS) 任務標籤問題進行疑難排解。
解決方法
注意: 如果您在執行 AWS Command Line Interface (AWS CLI) 命令時收到錯誤訊息,則請參閱對 AWS CLI 進行錯誤疑難排解。此外,請確定您使用的是最新的 AWS CLI 版本。
當您使用 Amazon ECS 設定任務標籤時,可能會遇到下列問題:
- 您的標籤不會從服務或任務定義傳播到任務。
- 標籤的 ARN 和資源 ID 格式已過期。
- 由於缺少 AWS Identity and Access Management (IAM) 權限或標籤限制,您無法建立新的 Amazon ECS 資源或新增標籤。
- 您無法在 AWS 帳單與成本管理主控台的帳單頁面上看到 Amazon ECS 標籤。
使用 PropagateTags 參數從服務或任務定義傳播到任務
依預設,不會啟動 PropagateTags 參數。若要將標籤從任務定義或服務複製到任務,請啟動 PropagateTags。您可以在執行任務、建立服務或更新服務時複製標籤。
注意: 在以下命令中,將 servicename 替換為您的服務名稱,將 clustername 替換為您的叢集名稱,將 region 替換為您的 AWS 區域。另外,將 taskdefinitionname 替換為您的任務定義名稱,將 taskdefinitionversion 替換為您的任務定義版本。
若要檢查 PropagateTags 是否在特定服務中啟動,請執行以下 describe-services 命令:
aws ecs describe-services --services servicename --cluster clustername --region region --query 'services[*].propagateTags' --output text
若要為新的獨立任務啟動標籤傳播,請執行下列 run-task 命令:
aws ecs run-task --cluster clustername --task-definition taskdefinitionname:taskdefinitionversion --launch-type FARGATE/EC2 --propagate-tags TASK_DEFINITION/SERVICE
若要為新服務啟動標籤傳播,請執行下列 create-service 命令:
aws ecs create-service --cluster clustername --service-name servicename --task-definition taskdefinitionname:taskdefinitionversion --desired-count 2 --launch-type FARGATE --platform-version LATEST --network-configuration "awsvpcConfiguration={subnets=[subnet-abcdef123],securityGroups=[sg-pqrst5678]}" --propagateTags TASK_DEFINITION/SERVICE
若要啟動現有服務的標籤傳播,請執行下列 update-service 命令:
aws ecs update-service --cluster clustername --service servicename --propagate-tags SERVICE/TASK_DEFINITION --force-new-deployment
您也可以使用 Amazon ECS 主控台來啟用標籤傳播。
請完成下列步驟:
- 開啟 Amazon ECS 主控台。
- 選取您 Amazon ECS 資源所屬的區域。
- 在導覽窗格中,選擇 Task definitions (任務定義)。
- 從資源清單中選取任務定義,然後選擇 Actions (動作)。
- 選擇 Create service (建立服務) 或 Run task (執行任務)。
- 在 Task tagging configuration (任務標記組態) 中,選取 Service (服務) 或 Task definitions (任務定義)。
注意: 預設選項為 Do not propagate (請勿傳播)。
若要使用 AWS CloudFormation 在 Amazon ECS 中設定標籤,您必須宣告 AWS::ECS::Service 資源。若要宣告 AWS::ECS::Service,請使用具有 SERVICE 或 TASK_DEFINITION 值的 EnableECSManagedTags 和 PropagateTags 屬性。
注意:
- 若要在 CloudFormation 中建立堆疊後使用與 Amazon ECS 屬性相關的服務標籤,您必須更新堆疊和資源替換。如需詳細資訊,請參閱了解堆疊資源的更新行為。
- 您可以存取相同的已排定的任務組態,就像存取從 Amazon ECS RunTask API 直接啟動的任務一樣。
使用正確的 ARN 格式
若要標記 Amazon ECS 資源,您必須使用新的 ARN 和 ID 格式。若要將 ECS 部署移轉至新格式,請參閱將您的 Amazon ECS 部署移轉到新的 ARN 和資源 ID 格式。
注意: 只有當您重新建立資源後,現有資源才會接收新的 ARN 格式。
確認 IAM 實體具有必要的權限,並檢查標籤限制
所有 AWS 帳戶都使用標記授權。若要在建立 Amazon ECS 資源時為其新增標籤,IAM 主體必須具有 ecs:TagResource 權限。以下 Amazon ECS API 也必須具有此權限:
- CreateCapacityProvider
- CreateCluster
- CreateService
- CreateTaskSet
- RegisterContainerInstance
- RegisterTaskDefinition
- RunTask
- StartTask
如果您無法為 Amazon ECS 服務新增標籤或建立資源,請完成下列步驟來解決此問題:
- 查看 AWS CloudTrail 事件以瞭解 TagResource 事件。
- 檢閱下列其中一個錯誤訊息的事件:
"AccessDenied"
-或-
「目前無法更新標籤。請等待幾分鐘,然後再試一次」
如果您收到上述錯誤之一,則表示 IAM 實體沒有 ecs:TagResource 權限。 - 使用 IAM 主控台或 AWS CLI 將 ecs:TagResource 權限新增至 IAM 實體。
- 重新建立資源,或再次將標籤新增至 Amazon ECS 叢集。
- 確認您的 Amazon ECS 標籤符合標籤限制。
檢查您是否有帳單與成本管理問題
如果您無法透過標籤篩選 Amazon ECS 任務來檢查成本,請確認 Amazon ECS 任務上是否有必要的標籤。執行以下 list-tags-for-resource 命令:
aws ecs list-tags-for-resource --resource-arn value
注意: 用您的任務 ARN 替換 value (值)。
若要使用 Amazon ECS 主控台檢查 Amazon ECS 任務上的標籤,請完成下列步驟:
- 開啟 Amazon ECS 主控台。
- 選取您 Amazon ECS 資源所屬的區域。
- 在導覽窗格中,選擇資源類型,例如 Clusters (叢集)。
- 選取您的資源,然後選擇 Tags (標籤) 以查看該資源的所有標籤。
若要檢查受管標籤,您必須啟動 Amazon ECS 受管標籤。若要檢查 Amazon ECS 受管標籤是否已啟動,請執行以下 describe-services 命令:
aws ecs describe-services --services servicename --cluster clustername --region region --query 'services[*].enableECSManagedTags' --output text
注意: 將 servicename 替換為您的服務名稱,將 clustername 替換為您的叢集名稱,將 region 替換為您的區域。
在命令的輸出中,檢查 enableECSManagedTags 是否設定為 true。
若要使用主控台啟動 Amazon ECS 受管標籤,請完成下列步驟:
- 開啟 Amazon ECS 主控台。
- 選取您 Amazon ECS 資源所屬的區域。
- 在導覽窗格中,選擇 Task definitions (任務定義)。
- 從資源清單中選取任務定義,然後選擇 Actions (動作)。
- 選擇 Create service (建立服務) 或 Run task (執行任務)。
- 在 Task tagging configuration (任務標記組態) 中,選擇 Enable ECS managed tags (啟用 ECS 受管標籤)。
若要使用 AWS CLI 啟動 Amazon ECS 受管標籤,請執行 update-service 命令:
aws ecs update-service --cluster clustername --service servicename --enable-ecs-managed-tags --force-new-deployment
注意: 將 clustername 替換為您的叢集名稱,將 servicename 替換為您的服務名稱。
即使您在 AWS Cost Explorer 中看不到標籤,您用於計費的標籤也可能會列出。若要解決此問題,請在帳單與成本管理主控台上啟動成本分配標籤。
**注意:**最多可能需要 24 小時來啟用標籤。
相關資訊
- 語言
- 中文 (繁體)

相關內容
- 已提問 2 年前
- 已提問 2 年前
- 已提問 3 年前
- 已提問 1 年前