

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

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

 **描述** 

 `AWSSupport-TroubleshootECSTaskFailedToStart` 运行手册可帮助解决 Amazon ECS 集群中的 Amazon Elastic Container Service (Amazon ECS) 任务无法启动的问题。您必须以与未能启动的任务 AWS 区域 相同的方式运行此运行手册。运行手册分析了以下可能导致任务无法启动的常见问题：
+ 与已配置的容器注册表的网络连接
+ 缺少任务执行角色所需的 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 代表您执行操作 AWS Identity and Access Management (IAM) 角色的 Amazon 资源名称（ARN）。如果未指定角色，Systems Manager Automation 将使用启动此运行手册的用户的权限。
+ LambdaRoleArn

  类型：字符串

  描述：（可选）允许该 AWS Lambda 函数访问所需 AWS 服务和资源的 IAM 角色的 ARN。如果未指定任何角色，则此 Systems Manager Automation 将在您的账户中为 Lambda 创建一个 IAM 角色`NetworkToolSSMRunbookExecution<ExecutionId>`，其名称包含托管策略：。`AWSLambdaVPCAccessExecutionRole`
+ ClusterName

  类型：字符串

  描述：（必需）任务启动失败的 Amazon ECS 集群的名称。
+ CloudwatchRetentionPeriod

  类型：整数

  描述：（可选）Lambda 函数日志存储在 Ama CloudWatch zon Logs 中的保留期，以天为单位。只有在分析确定需要测试网络连通性时，才需要这样做。

  有效值：1 \$1 3 \$1 5 \$1 7 \$1 14 \$1 30 \$1 60 \$1 90

  默认：30
+ TaskId

  类型：字符串

  描述：（必需）失败任务的 ID。使用最近失败的任务。

**所需的 IAM 权限**

`AutomationAssumeRole` 参数需要执行以下操作才能成功使用运行手册。
+ `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 权限。如果您没有足够的权限来使用此运行手册，则缺少的必需权限将包含在此自动化的输出中。
+ `aws:branch` - 根据您是否对运行手册的所有必要操作拥有权限进行分支。
+ `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 函数网络接口删除步骤的输出。