

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

# `AWSSupport-TroubleshootECSTaskFailedToStart`
<a name="automation-aws-troubleshootecstaskfailedtostart"></a>

 **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`。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootECSTaskFailedToStart) 

**文件類型**

 自動化

**擁有者**

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 \$1 3 \$1 5 \$1 7 \$1 14 \$1 30 \$1 60 \$1 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 函數網路界面刪除步驟的輸出。