本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
AWSSupport-TroubleshootECSTaskFailedToStart
Description
AWSSupport-TroubleshootECSTaskFailedToStart Runbook 可協助您針對 Amazon ECS 叢集中的 Amazon Elastic Container Service (Amazon ECS) 任務無法啟動的原因進行故障診斷。您必須在與 AWS 區域 任務無法啟動的相同 中執行此 Runbook。Runbook 會分析下列可能阻止任務啟動的常見問題:
-
已設定容器登錄檔的網路連線
-
缺少任務執行角色所需的 IAM 許可
-
VPC 端點連線
-
安全群組規則組態
-
AWS Secrets Manager 秘密參考
-
記錄組態
注意
如果分析判斷需要測試網路連線,則會在您的帳戶中建立 Lambda 函數和必要的 IAM 角色。這些資源用於模擬失敗任務的網路連線。自動化會在不再需要這些資源時將其刪除。不過,如果自動化無法刪除資源,您必須手動執行此操作。
文件類型
自動化
擁有者
Amazon
平台
Linux、macOS、 Windows
參數
-
AutomationAssumeRole
類型:字串
描述:(選用) 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色,Systems Manager Automation 會使用啟動此 Runbook 的使用者許可。
-
ClusterName
類型:字串
描述:(必要) 任務無法啟動的 Amazon ECS 叢集名稱。
-
CloudwatchRetentionPeriod
類型:整數
描述:(選用) 將 Lambda 函數日誌儲存在 Amazon CloudWatch Logs 中的保留期間,以天為單位。只有在分析判斷需要測試網路連線時,才需要這樣做。
有效值:1 | 3 | 5 | 7 | 14 | 30 | 60 | 90
預設:30
-
TaskId
類型:字串
描述:(必要) 失敗任務的 ID。使用最近失敗的任務。
必要的 IAM 許可
AutomationAssumeRole 參數需要下列動作才能成功使用 Runbook。
-
cloudtrail:LookupEvents -
ec2:DeleteNetworkInterface -
ec2:DescribeInstances -
ec2:DescribeInstanceAttribute -
ec2:DescribeIamInstanceProfileAssociations -
ec2:DescribeSecurityGroups -
ec2:DescribeNetworkAcls -
ec2:DescribeNetworkInterfaces -
ec2:DescribeRouteTables -
ec2:DescribeSubnets -
ec2:DescribeVpcEndpoints -
ec2:DescribeVpcs -
ecr:DescribeImages -
ecr:GetRepositoryPolicy -
ecs:DescribeContainerInstances -
ecs:DescribeServices -
ecs:DescribeTaskDefinition -
ecs:DescribeTasks -
iam:AttachRolePolicy -
iam:CreateRole -
iam:DeleteRole -
iam:DetachRolePolicy -
iam:GetInstanceProfile -
iam:GetRole -
iam:ListRoles -
iam:PassRole -
iam:SimulateCustomPolicy -
iam:SimulatePrincipalPolicy -
kms:DescribeKey -
lambda:CreateFunction -
lambda:DeleteFunction -
lambda:GetFunctionConfiguration -
lambda:InvokeFunction -
lambda:TagResource -
logs:DescribeLogGroups -
logs:PutRetentionPolicy -
secretsmanager:DescribeSecret -
ssm:DescribeParameters -
sts:GetCallerIdentity
文件步驟
-
aws:executeScript- 驗證啟動自動化的使用者或角色是否具有必要的 IAM 許可。如果您沒有足夠的許可來使用此 Runbook,則缺少的必要許可會包含在自動化的輸出中。 -
aws:branch- 根據您是否具有 Runbook 所有必要動作的許可進行分支。 -
aws:executeScript- 如果分析判斷需要測試網路連線,請在 VPC 中建立 Lambda 函數。 -
aws:branch- 根據上一個步驟的結果進行分支。 -
aws:executeScript- 分析啟動任務失敗的可能原因。 -
aws:executeScript- 刪除此自動化建立的資源。 -
aws:executeScript- 格式化自動化的輸出,將分析結果傳回至主控台。在自動化完成之前,您可以在此步驟之後檢閱分析。 -
aws:branch- 根據 Lambda 函數和相關資源是否已建立且需要刪除進行分支。 -
aws:sleep- 休眠 30 分鐘,以便刪除 Lambda 函數的彈性網路界面。 -
aws:executeScript- 刪除 Lambda 函數網路界面。 -
aws:executeScript- 格式化 Lambda 函數網路界面刪除步驟的輸出。