

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

# 创建作业队列
<a name="create-job-queue"></a>

在您可在 AWS Batch 中提交作业之前，必须先创建一个作业队列。在创建作业队列时，您可以将一个或多个计算环境与队列相关联，并且分配优先顺序。

您还可以为作业队列设置优先级，该队列决定了 AWS 批处理调度器放置作业的顺序。这意味着，如果计算环境与多个作业队列关联，则具有较高优先级的作业队列将会优先作业。

**Topics**
+ [创建 Amazon EC2 作业队列](create-job-queue-ec2.md)
+ [创建 Fargate 作业队列](create-job-queue-fargate.md)
+ [创建 Amazon EKS 作业队列](create-job-queue-eks.md)
+ [在 AWS Batch 中创建 SageMaker 训练作业队列](create-sagemaker-job-queue.md)
+ [作业队列模板](job-queue-template.md)

# 创建 Amazon EC2 作业队列
<a name="create-job-queue-ec2"></a>

完成以下步骤，为 Amazon Elastic Compute Cloud（Amazon EC2）创建作业队列。

**要创建 Amazon EC2 作业队列**

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

1. 从导航栏中，选择要使用的AWS 区域。

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

1. 选择**创建**。

1. 对于**编排类型**，选择 **Amazon Elastic Compute Cloud (Amazon EC2)**。

1. 对于**名称**，为作业队列输入唯一名称。名称可以长达 128 个字符，可以包含大小写字母、数字及下划线 (\$1)。

1. 对于**优先级**，为作业队列的优先级输入一个整数值。具有较高优先级的作业队列在与同一计算环境关联的较低优先级作业队列之前运行。优先级按降序确定。例如，优先级值为 10 的任务队列将会比优先级值为 1 的任务队列优先计划。

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

1. 对于 **连接的计算环境**，从列表中选择一个或多个计算环境，以便与作业队列关联。按照您希望队列尝试放置作业队列的顺序选择计算环境。作业计划程序使用您选择的计算环境顺序来确定哪些计算环境应启动给定作业。计算环境必须先处于 `VALID` 状态，然后您才能将其与作业队列关联。最多可以将三个计算环境与一个作业队列关联。如果您没有现有的计算环境，请选择**创建计算环境**
**注意**  
与作业队列关联的所有计算环境必须共享同一配置模型。AWS Batch 不支持在单个作业队列中混合使用配置模型。

1. 对于**计算环境顺序**，选择向上和向下箭头以配置所需的顺序。

1. 选择 **创建作业队列** 以完成和创建作业队列。

# 创建 Fargate 作业队列
<a name="create-job-queue-fargate"></a>

完成以下步骤，为 AWS Fargate 创建作业队列。

**要创建 Fargate 作业队列**

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

1. 从导航栏中，选择要使用的AWS 区域。

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

1. 选择**创建**。

1. 对于**编排类型**，请选择 **Fargate**。

1. 对于**名称**，为作业队列输入唯一名称。名称可以长达 128 个字符，可以包含大小写字母、数字及下划线 (\$1)。

1. 对于**优先级**，为作业队列的优先级输入一个整数值。具有较高优先级的作业队列在与同一计算环境关联的较低优先级作业队列之前运行。优先级按降序确定。例如，优先级值为 10 的任务队列将会比优先级值为 1 的任务队列优先计划。

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

1. 对于 **连接的计算环境**，从列表中选择一个或多个计算环境，以便与作业队列关联。按照您希望队列尝试放置作业队列的顺序选择计算环境。作业计划程序使用您选择的计算环境顺序来确定哪些计算环境应启动给定作业。计算环境必须先处于 `VALID` 状态，然后您才能将其与作业队列关联。最多可以将三个计算环境与一个作业队列关联。
**注意**  
与作业队列关联的所有计算环境必须共享同一配置模型。AWS Batch 不支持在单个作业队列中混合使用配置模型。

1. 对于**计算环境顺序**，选择向上和向下箭头以配置所需的顺序。

1. 选择 **创建作业队列** 以完成和创建作业队列。

# 创建 Amazon EKS 作业队列
<a name="create-job-queue-eks"></a>

完成以下步骤，为 Amazon Elastic Kubernetes Service（Amazon EKS）上创建作业队列。

**要创建 Amazon EKS 作业 队列**

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

1. 从导航栏中，选择要使用的AWS 区域。

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

1. 选择**创建**。

1. 对于**编排类型**，选择 **Amazon Elastic Kubernetes Service (Amazon EKS)**。

1. 对于**名称**，为作业队列输入唯一名称。名称可以长达 128 个字符，可以包含大小写字母、数字及下划线 (\$1)。

1. 对于 **Priority**，为作业队列的优先级输入一个整数值。具有较高优先级的作业队列在与同一计算环境关联的较低优先级作业队列之前运行。优先级按降序确定。例如，优先级值为 10 的任务队列将会比优先级值为 1 的任务队列优先计划。

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

1. 对于 **连接的计算环境**，从列表中选择一个或多个计算环境，以便与作业队列关联。按照您希望队列尝试放置作业队列的顺序选择计算环境。作业计划程序使用您选择的计算环境顺序来确定哪些计算环境应启动给定作业。计算环境必须先处于 `VALID` 状态，然后您才能将其与作业队列关联。最多可以将三个计算环境与一个作业队列关联。
**注意**  
与作业队列关联的所有计算环境必须共享同一配置模型。AWS Batch 不支持在单个作业队列中混合使用配置模型。
**注意**  
与作业队列关联的所有计算环境必须共享同一架构。AWS Batch不支持在单个作业队列中混合使用计算环境架构类型。

1. 对于**计算环境顺序**，选择向上和向下箭头以配置所需的顺序。

1. 选择 **创建作业队列** 以完成和创建作业队列。

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

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

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

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

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

1. 打开AWS Batch控制台，地址：[https://console.aws.amazon.com/batch/](https://console.aws.amazon.com/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 (AWS 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` 会引用您的服务环境

------

# 作业队列模板
<a name="job-queue-template"></a>

以下是一个空的作业队列模板。可以使用此模板创建作业队列。然后，可以将此作业队列保存到文件中，然后将其与AWS CLI`--cli-input-json`选项一起使用。有关这些参数的更多信息，请参阅*AWS Batch API 参考*中的[CreateJobQueue](https://docs.aws.amazon.com/batch/latest/APIReference/API_CreateJobQueue.html)。

**注意**  
您可以使用以下 AWS CLI 命令生成作业队列模板。  

```
$ aws batch create-job-queue --generate-cli-skeleton
```

```
{
   "computeEnvironmentOrder": [ 
      { 
         "computeEnvironment": "",
         "order": 0
      }
   ],
   "jobQueueName": "",
   "jobStateTimeLimitActions": [ 
      { 
         "state": "RUNNABLE",
         "action": "CANCEL",
		 "maxTimeSeconds": 0,
         "reason": ""

      }
   ],
   "priority": 0,
   "schedulingPolicyArn": "",
   "state": "ENABLED",
   "tags": { 
      "KeyName": ""
   }
}
```