View a markdown version of this page

AWSSupport-TroubleshootECSTaskFailedToStart - AWS Systems Manager Automation Runbook 參考

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

AWSSupport-TroubleshootECSTaskFailedToStart

Description

AWSSupport-TroubleshootECSTaskFailedToStart Runbook 可協助您針對 Amazon ECS 叢集中的 Amazon Elastic Container Service (Amazon ECS) 任務無法啟動的原因進行故障診斷。您必須在與 AWS 區域 任務無法啟動的相同 中執行此 Runbook。Runbook 會分析下列可能讓任務無法啟動的常見問題:

  • 與已設定容器登錄檔的網路連線

  • 缺少任務執行角色所需的 IAM 許可

  • VPC 端點連線

  • 安全群組規則組態

  • AWS Secrets Manager 秘密參考

  • 記錄組態

注意

如果分析判斷需要測試網路連線,則會在您的帳戶中建立 Lambda 函數和必要的 IAM 角色。這些資源用於模擬失敗任務的網路連線。自動化會在不再需要這些資源時將其刪除。不過,如果自動化無法刪除資源,您必須手動執行此操作。

提供 Lambda IAM 角色時,自動化將使用它,而不是建立新的角色。提供的 Lambda IAM 角色必須包含 AWS 受管政策,AWSLambdaVPCAccessExecutionRole並具有允許 Lambda 服務主體 擔任的信任政策lambda.amazonaws.com

執行此自動化 (主控台)

文件類型

 自動化

擁有者

Amazon

平台

Linux、macOS、 Windows

參數

  • AutomationAssumeRole

    類型:字串

    描述:(選用) 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色,Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。

  • LambdaRoleArn

    類型:字串

    描述:(選用) 允許函數 AWS Lambda 存取所需 AWS 服務和資源的 IAM 角色 ARN。如果未指定角色,此 Systems Manager Automation 會在您的帳戶中為 Lambda 建立一個 IAM 角色,其名稱NetworkToolSSMRunbookExecution<ExecutionId>包含 受管政策:AWSLambdaVPCAccessExecutionRole

  • 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:DescribeDhcpOptions

  • ec2:DescribeInstances

  • ec2:DescribeInstanceAttribute

  • ec2:DescribeIamInstanceProfileAssociations

  • ec2:DescribeSecurityGroups

  • ec2:DescribeNetworkAcls

  • ec2:DescribeNetworkInterfaces

  • ec2:DescribeRouteTables

  • ec2:DescribeSubnets

  • ec2:DescribeVpcEndpoints

  • ec2:DescribeVpcs

  • ec2:DescribeVpcAttribute

  • elasticfilesystem:DescribeFileSystems

  • elasticfilesystem:DescribeMountTargets

  • elasticfilesystem:DescribeMountTargetSecurityGroups

  • elasticfilesystem:DescribeFileSystemPolicy

  • 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:ListUsers

  • 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

提供 LambdaRoleArn 時,自動化不需要建立角色,而且可以排除下列許可:

  • iam:CreateRole

  • iam:DeleteRole

  • iam:AttachRolePolicy

  • iam:DetachRolePolicy

文件步驟

  • 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 函數網路界面刪除步驟的輸出。