

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

# 在 Amazon Batch 中创建 SageMaker 训练作业队列
<a name="create-sagemaker-job-queue"></a>

SageMaker 训练作业队列直接与 SageMaker AI 服务集成，无需管理底层计算基础设施，即可提供无服务器作业调度。

## 先决条件
<a name="sagemaker-job-queue-prerequisites"></a>

在创建 SageMaker 训练作业队列之前，确保您已满足如下前提条件：
+ **服务环境**：一个定义了容量限制的服务环境。有关更多信息，请参阅 [在中创建服务环境 Amazon Batch](create-service-environments.md)。
+ **IAM 权限**：创建和管理 Amazon Batch 作业队列和服务环境的权限。有关更多信息，请参阅 [Amazon Batch IAM 策略、角色和权限](IAM_policies.md)。

------
#### [ Create a SageMaker Training job queue (Amazon Batch console) ]

1. 打开Amazon Batch控制台，地址：[https://console.aws.amazon.com/batch/](https://console.amazonaws.cn/batch/)。

1. 在导航窗格中，选择**作业队列**和**创建**。

1. 对于**编排类型**，选择 **SageMaker 训练**。

1. 对于**作业队列配置**：

   1. 对于**名称**，输入该作业队列的名称。

   1. 对于**优先级**，输入一个介于 0 到 1000 之间的值。服务环境会优先处理优先级较高的作业队列。

   1. （可选）对于**计划策略 Amazon 资源名称（ARN）**，请选择现有的计划策略。

   1. 对于**已连接的服务环境**，从列表中选择一个要关联到该作业队列的服务环境。

1. （可选）对于 **作业状态限制**：

   1. 对于**配置错误**，选择 `SERVICE_ENVIRONMENT_MAX_RESOURCE` 并输入**最大可运行时间（秒）**。

   1. 对于**容量**，选择 `INSUFFICIENT_INSTANCE_CAPACITY` 并输入**最大可运行时间（秒）**。

1. 选择**创建作业队列**

------
#### [ Create a SageMaker Training job queue (Amazon CLI) ]

使用 `create-job-queue` 命令创建 SageMaker 训练作业队列。

以下示例会创建一个使用服务环境的基本 SageMaker 训练作业队列：

```
aws batch create-job-queue \
  --job-queue-name my-sm-training-fifo-jq \
  --job-queue-type SAGEMAKER_TRAINING \
  --priority 1 \
  --service-environment-order order=1,serviceEnvironment=ExampleServiceEnvironment
```

将 *ExampleServiceEnvironment* 替换为服务环境的名称。

该命令返回的输出类似于下方内容：

```
{
  "jobQueueName": "my-sm-training-fifo-jq",
  "jobQueueArn": "arn:aws:batch:region:account:job-queue/my-sm-training-fifo-jq"
}
```

创建作业队列后，请验证该队列是否已成功创建且处于有效状态。

使用 `describe-job-queues` 命令查看有关作业队列的详细信息：

```
aws batch describe-job-queues --job-queues my-sm-training-fifo-jq
```

该命令返回的输出类似于下方内容：

```
{
  "jobQueues": [
    {
      "jobQueueName": "my-sm-training-fifo-jq",
      "jobQueueArn": "arn:aws:batch:region:account:job-queue/my-sm-training-fifo-jq",
      "state": "ENABLED",
      "status": "VALID",
      "statusReason": "JobQueue Healthy",
      "priority": 1,
      "computeEnvironmentOrder": [],
      "serviceEnvironmentOrder": [
        {
          "order": 1,
          "serviceEnvironment": "arn:aws:batch:region:account:service-environment/ExampleServiceEnvironment"
        }
      ],
      "jobQueueType": "SAGEMAKER_TRAINING",
      "tags": {},
      "jobStateTimeLimitActions": []
    }
  ]
}
```

请确保：
+ `state` 为 `ENABLED`
+ `status` 为 `VALID`
+ `statusReason` 为 `JobQueue Healthy`
+ `jobQueueType` 为 `SAGEMAKER_TRAINING`
+ `serviceEnvironmentOrder` 会引用您的服务环境

------