如何標記 Amazon ECS 資源以追蹤成本和合規性?
我想要標記 Amazon Elastic Container Service (Amazon ECS) 資源,以追蹤成本和合規性。
簡短說明
解決方法
注意: 如果您在執行 AWS Command Line Interface (AWS CLI) 命令時收到錯誤訊息,則請參閱對 AWS CLI 進行錯誤疑難排解。此外,請確定您使用的是最新的 AWS CLI 版本。
在帳戶層級啟用資源標記授權
若要在建立叢集或服務時使用和建立標籤,您必須具有 ecs:TagResource 權限。您還必須具有建立資源所需動作的權限,例如 ecsCreateCluster。
若要查看 AWS 帳戶層級的目前標記授權狀態,請執行下列 list-account-settings AWS CLI 命令:
aws ecs list-account-settings --effective-settings
在命令的輸出中,檢查是否已啟用標記授權。如果您沒有啟用標記授權,請執行以下 put-account-setting-default 命令來啟用它:
aws ecs put-account-setting-default --name tagResourceAuthorization --value on --region regionname
注意: 將 regionname 替換為您的 AWS 區域。
使用正確的 ARN 格式
若要標記 Amazon ECS 資源,您必須使用新的 ARN 和 ID 格式。您可能需要將 Amazon ECS 部署移轉到新的 ARN 和資源 ID 格式。
確認 IAM 實體具有必要的權限,並檢查標籤限制
如果您無法為 Amazon ECS 服務新增標籤,請確保您的 AWS Identity and Access Management (IAM) 實體具有所需的權限。如需詳細資訊,請參閱如何對 Amazon ECS 任務的標記問題進行疑難排解中的 驗證 IAM 實體是否具有所需的權限並檢查標籤限制區段?
使用 Amazon ECS 受管標籤進行計費
啟用 enableECSManagedTags 參數
當您使用 Amazon ECS 受管標籤時,Amazon ECS 會自動使用叢集資訊和任務定義或服務標籤來標記所有新啟用的任務。Amazon ECS 也會標記附加到任務的 Amazon Elastic Block Service (Amazon EBS) 磁碟區。依預設,不會啟用 PropagateTags 參數。若要將標籤從任務定義或服務複製到任務,請啟用此參數。
若要在建立服務時啟用 EnableECSManagedTags 參數,請執行下列 create-service 命令:
aws ecs create-service \ --cluster clustername \ --service-name servicename \ --task-definition taskdefinitionname \ --desired-count 1 \ --launch-type FARGATE \ --enable-ecs-managed-tags \ --network-configuration "awsvpcConfiguration={subnets=[subnet-ABCD],securityGroups=[sg-ABC],assignPublicIp=ENABLED}"
注意: 將 clustername 替換為您的叢集名稱,將 servicename 替換為您的服務名稱,並將 taskdefinitionname 替換為您的任務定義名稱。將您的網路組態新增至 --network-configuration 選項。
若要在執行任務時啟用 enableECSManagedTags 參數,請執行下列 run-task 命令:
aws ecs run-task \ --cluster clustername \ --task-definition taskdefinitionname \ --launch-type FARGATE \ --enable-ecs-managed-tags \ --network-configuration "awsvpcConfiguration={subnets=[subnet-ABC],securityGroups=[sg-ABC]}"
注意: 將 clustername 替換為您的叢集名稱,將 taskdefinitionname 替換為您的任務定義名稱。將您的網路組態新增至 --network-configuration 選項。
啟用 Amazon ECS 受管標籤
使用 Amazon ECS 主控台或 AWS CLI 來啟用受管標籤。
Amazon ECS 主控台
請完成下列步驟:
- 開啟 Amazon ECS 主控台。
- 選取您 Amazon ECS 資源所屬的區域。
- 在導覽窗格中,選擇 Task definitions (任務定義)。
- 從資源清單中選取任務定義,然後選擇 Actions (動作)。
- 選擇 Create service (建立服務) 或 Run task (執行任務)。
- 在 Task tagging configuration (任務標記組態) 下,選取 Enable ECS managed tags (啟用 ECS 受管標籤)。
注意: 若要將標籤從任務定義或服務複製到任務,請在 Propagate tags from (傳播標籤來源) 中選取您的資源。依預設,PropagateTags 參數設定為 Do not propagate (不傳播)。
AWS CLI
執行以下 update-service 命令:
aws ecs update-service --cluster clustername --service servicename --enable-ecs-managed-tags --force-new-deployment
注意: 將 servicename 替換為您的服務名稱,將 clustername 替換為您的叢集名稱。
設定標籤傳輸
標籤傳輸預設為停用。若要檢查是否已在特定服務中啟用 PropagateTags,請執行以下 describe-services 命令:
aws ecs describe-services --services servicename --cluster clustername --region region --query 'services[*].propagateTags' --output text
注意: 將 servicename 替換為您的服務名稱,將 clustername 替換為您的叢集名稱,將 region 替換為您的區域。
若要在建立服務時新增標籤傳播,請執行下列 create-service 命令:
aws ecs create-service \ --cluster clustername \ --service-name servicename \ --task-definition taskdefinitionname \ --desired-count 1 \ --launch-type FARGATE \ --enable-ecs-managed-tags \ --propagate-tags TASK_DEFINITION-SERVICE \ --network-configuration "awsvpcConfiguration={subnets=[subnet-ABCD],securityGroups=[sg-ABC],assignPublicIp=ENABLED}"
注意: 將 clustername 替換為您的叢集名稱,將 servicename 替換為您的服務名稱,將 taskdefinitionname 替換為您的任務定義。此外,請根據您想要傳播任務的位置,將 FARGATE 替換為您的啟動類型,將 TASK_DEFINITION-SERVICE 替換為 TASK_DEFINITION 或 SERVICE。將您的網路組態新增至 --network-configuration 選項。
若要在執行任務時新增標籤傳播,請執行下列 run-task 命令:
aws ecs run-task \ --cluster clustername \ --task-definition taskdefinitionname \ --launch-type FARGATE \ --enable-ecs-managed-tags \ --propagate-tags TASK_DEFINITION-SERVICE \ --network-configuration "awsvpcConfiguration={subnets=[subnet-ABC],securityGroups=[sg-ABC]}"
注意: 將 clustername 替換為您的叢集名稱,將 taskdefinitionname 替換為您的任務定義。此外,請根據您想要傳播任務的位置,將 FARGATE 替換為您的啟動類型,將 TASK_DEFINITION-SERVICE 替換為 TASK_DEFINITION 或 SERVICE。將您的網路組態新增至 --network-configuration 選項。
若要將標籤傳播新增至現有服務,請執行下列 update-service 命令:
aws ecs update-service --cluster clustername --service servicename --propagate-tags servicetagdefinition --force-new-deployment
注意: 將 servicename 替換為您的服務名稱,將 clustername 替換為您的叢集名稱,並將 servicetagdefinition 替換為您的服務或標籤定義。
您必須啟用成本分配標籤,標籤才能顯示在帳單報表中。
**注意:**最多可能需要 24 小時來啟用標籤。
相關資訊
- 語言
- 中文 (繁體)
