

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

# `AWSSupport-TroubleshootAWSBatchJob`
<a name="automation-aws-troubleshoot-aws-batch-job"></a>

 **Description** 

 `AWSSupport-TroubleshootAWSBatchJob` Runbook 可協助您疑難排解導致 AWS Batch 任務無法進入 `RUNNABLE` `STARTING` 狀態的問題。

 **如何運作？** 

此 Runbook 會執行下列檢查：
+ 如果運算環境處於 `INVALID`或 `DISABLED` 狀態。
+ 如果運算環境的`Max vCPU`參數夠大，足以容納任務佇列中的任務磁碟區。
+ 如果任務需要的 vCPUs或記憶體資源多於運算環境執行個體類型可提供的資源。
+ 如果任務應該在 GPU 型執行個體上執行，但運算環境未設定為使用 GPU 型執行個體。
+ 如果運算環境的 Auto Scaling 群組無法啟動執行個體。
+ 如果啟動的執行個體可以加入基礎 Amazon Elastic Container Service (Amazon ECS) 叢集；否則，它會執行 [AWSSupport-TroubleshootECSContainerInstance](https://docs.aws.amazon.com//systems-manager-automation-runbooks/latest/userguide/automation-aws-troubleshoot-ecs-container-instance.html) 執行手冊。
+ 如果任何許可問題封鎖執行任務所需的特定動作。

**重要**  
此 Runbook 必須在與您的任務停滯在 `RUNNABLE` 狀態的相同 AWS 區域中啟動。
對於在 Amazon ECS AWS Fargate 或 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體上排程 AWS Batch 的任務，可以啟動此 Runbook。如果針對 Amazon Elastic Kubernetes Service (Amazon EKS) 上的 AWS Batch 任務啟動自動化，則啟動會停止。
如果執行個體可以執行任務，但無法註冊 Amazon ECS 叢集，此 Runbook 會啟動`AWSSupport-TroubleshootECSContainerInstance`自動化 Runbook，嘗試判斷原因。如需詳細資訊，請參閱 [AWSSupport-TroubleshootECSContainerInstance](https://docs.aws.amazon.com//systems-manager-automation-runbooks/latest/userguide/automation-aws-troubleshoot-ecs-container-instance.html) 執行手冊。

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

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

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

  類型：字串

  描述：（必要） 停滯在 `RUNNABLE` 狀態 AWS Batch 的任務 ID。

  允許模式： `^[a-f0-9]{8}(-[a-f0-9]{4}){3}-[a-f0-9]{12}(:[0-9]+)?(#[0-9]+)?$`

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `autoscaling:DescribeAutoScalingGroups`
+ `autoscaling:DescribeScalingActivities`
+ `batch:DescribeComputeEnvironments`
+ `batch:DescribeJobs`
+ `batch:DescribeJobQueues`
+ `batch:ListJobs`
+ `cloudtrail:LookupEvents`
+ `ec2:DescribeIamInstanceProfileAssociations`
+ `ec2:DescribeInstanceAttribute`
+ `ec2:DescribeInstances`
+ `ec2:DescribeInstanceTypeOfferings`
+ `ec2:DescribeInstanceTypes`
+ `ec2:DescribeNetworkAcls`
+ `ec2:DescribeRouteTables`
+ `ec2:DescribeSecurityGroups`
+ `ec2:DescribeSpotFleetInstances`
+ `ec2:DescribeSpotFleetRequests`
+ `ec2:DescribeSpotFleetRequestHistory`
+ `ec2:DescribeSubnets`
+ `ec2:DescribeVpcEndpoints`
+ `ec2:DescribeVpcs`
+ `ecs:DescribeClusters`
+ `ecs:DescribeContainerInstances`
+ `ecs:ListContainerInstances`
+ `iam:GetInstanceProfile`
+ `iam:GetRole`
+ `iam:ListRoles`
+ `iam:PassRole`
+ `iam:SimulateCustomPolicy`
+ `iam:SimulatePrincipalPolicy`
+ `ssm:DescribeAutomationExecutions`
+ `ssm:DescribeAutomationStepExecutions`
+ `ssm:GetAutomationExecution`
+ `ssm:StartAutomationExecution`
+ `sts:GetCallerIdentity`

 **指示** 

1. 導覽至主控台中的 [AWSSupport-TroubleshootAWSBatchJob](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootAWSBatchJob) AWS Systems Manager 。

1. 選取**執行自動化**

1. 針對輸入參數，輸入下列內容：
   + **AutomationAssumeRole （選用）：**

     (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)，允許 Systems Manager Automation 代表您執行動作。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
   + **JobId （必要）：**

     停滯在 `RUNNABLE` 狀態 AWS Batch 的任務 ID。  
![\[Input parameters form with AutomationAssumeRole and JobId fields for AWS Batch job configuration.\]](http://docs.aws.amazon.com/zh_tw/systems-manager-automation-runbooks/latest/userguide/images/awssupport-troubleshoot-aws-batch-job_input_paramters.png)

1. 選取**執行**。

1. 請注意，自動化會啟動。

1. 文件會執行下列步驟：
   + **PreflightPermissionChecks：**

     針對起始使用者/角色執行預檢 IAM 許可檢查。如果有任何缺少的許可，此步驟會提供全域輸出區段中缺少的 API 動作。
   + **ProceedOnlyIfUserHasPermission：**

     根據您是否具有 Runbook 所有必要動作的許可進行分支。
   + **AWSBatchJobEvaluation：**

     針對 AWS Batch 任務執行檢查，確認其存在且處於 `RUNNABLE` 狀態。
   + **ProceedOnlyIfBatchJobExistsAndIsinRunnableState：**

     根據任務是否存在且處於 `RUNNABLE` 狀態的分支。
   + **BatchComputeEnvironmentEvaluation：**

     針對 AWS Batch 運算環境執行檢查。
   + **ProceedOnlyIfComputeEnvironmentChecksAreOK：**

     根據運算環境檢查是否成功進行分支。
   + **UnderlyingInfraEvaluation：**

     針對基礎 Auto Scaling 群組或 Spot 機群請求執行檢查。
   + **ProceedOnlyIfInstancesNotJoiningEcsCluster：**

      分支是根據是否有執行個體未加入 Amazon ECS 叢集。
   + **EcsAutomationRunner：**

     為未加入叢集的執行個體執行 Amazon ECS 自動化。
   + **ExecutionResults：**

     根據先前的步驟產生輸出。

1. 完成後，會提供評估報告 HTML 檔案的 URI：

   **報告成功執行 Runbook 的 S3 主控台連結和 Amazon S3 URI**  
![\[Execution result summary showing errors in compute environment setup and job queue.\]](http://docs.aws.amazon.com/zh_tw/systems-manager-automation-runbooks/latest/userguide/images/awssupport-troubleshoot-aws-batch-job_outputs.png)

 **參考** 

Systems Manager Automation
+ [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootAWSBatchJob)
+ [執行自動化](https://docs.aws.amazon.com//systems-manager/latest/userguide/automation-working-executing.html)
+ [設定 自動化](https://docs.aws.amazon.com//systems-manager/latest/userguide/automation-setup.html)
+ [支援自動化工作流程登陸頁面](https://aws.amazon.com/premiumsupport/technology/saw/)