

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

# 创建配额管理资源
<a name="create-quota-management-resources"></a>

在创建关联的调度策略、服务环境和作业队列时，配额管理需要特定的设置。

## 先决条件
<a name="quota-management-resources-prerequisites"></a>

在创建配额管理资源之前，请确保您具有：
+ **IAM 权限** — 创建和管理 AWS Batch 任务队列、调度策略和服务环境的权限。有关更多信息，请参阅 [AWS Batch IAM 策略、角色和权限](IAM_policies.md)。

------
#### [ Configure quota management resources (AWS Batch console) ]

 AWS Batch 控制台提供了一个集成的工作流程，用于创建配额管理所需的所有资源。配额管理作业队列创建工作流程还会创建支持配额管理的调度策略和服务环境。

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

1. 在导航窗格中，选择 **Job 队列**，然后选择 C **reat** e。

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

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

   1. 在**名称**中，输入作业队列的名称。

   1. 在 “**优先级**” 中，输入一个介于 0 和 1000 之间的值。优先级较高的作业队列优先于服务环境。

1. 对于**日程安排**：

   1. 对于**计划算法**，请选择**配额管理**。

   1. 对于**计划策略 ARN**：
      + 如果已存在指定配额管理的计划策略，请从下拉列表中选择该策略。
      + 否则，请选择**创建计划策略**。

        1. 将打开一个侧边栏，用于配置配额管理计划策略。

        1. 为计划策略提供**名称**。

        1. 选择**创建**。**计划策略 ARN** 字段现已填充。

1. 对于**服务环境**配置，在 “**连接的服务环境**” 下：
**注意**  
启用配额管理的服务环境只能连接到一个启用了配额管理的作业队列。

   1. 如果已经创建了与配额管理兼容的服务环境，并且尚未连接到启用配额管理的作业队列，请从下拉列表中将其选中。

   1. 否则，请选择**创建服务环境**。将打开一个侧边栏来配置服务环境。

      1. 为服务环境提供一个**名称**。

      1. 提供至少一个容量限制（最多为 5 个）。对于每个容量限制，请从下拉列表中选择一个**实例类型**和**最大实例数**。

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

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

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

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

------
#### [ Configure quota management resources (AWS CLI) ]

要通过 AWS CLI 配置配额管理，请创建计划策略、服务环境和作业队列。计划策略和服务环境都必须与配额管理兼容，并且必须在创建任务队列之前创建。

**创建日程安排策略**

使用`create-scheduling-policy`命令创建与配额管理兼容的计划策略。在创建期间提供配额共享政策：

```
aws batch create-scheduling-policy \
  --name my-qm-sagemaker-scheduling-policy \
  --quota-share-policy idleResourceAssignmentStrategy="FIFO"
```

验证计划策略是否已成功创建：

```
aws batch describe-scheduling-policies \
  --arns arn-for-my-qm-sagemaker-scheduling-policy
```

**创建服务环境**

使用`create-service-environment`命令创建支持配额管理的服务环境。确保容量限制使用 SageMaker 训练作业接受的实例类型，例如`ml.g6.xlarge`或`ml.p4d.24xlarge`。

```
aws batch create-service-environment \
  --service-environment-name my-qm-sagemaker-service-env \
  --service-environment-type SAGEMAKER_TRAINING \
  --capacity-limits capacityUnit=instance_type,maxCapacity=instance_count
```

验证服务环境是否已成功创建：

```
aws batch describe-service-environments \
  --service-environments my-qm-sagemaker-service-env
```

**创建任务队列**

使用`create-job-queue`命令创建启用配额管理的作业队列。必须满足以下标准：
+ 必须提供一个当前未连接到其他作业队列的单一`SAGEMAKER_TRAINING`服务环境。
+ 服务环境必须根据实例类型来表示容量限制，例如`ml.m6i.xlarge`，而不是`NUM_INSTANCES`。
+ 必须连接包含以下内容的调度策略`quotaSharePolicy`。
+ `jobQueueType` 必须是 `SAGEMAKER_TRAINING`。

```
aws batch create-job-queue \
  --job-queue-name my-qm-sagemaker-jq \
  --job-queue-type SAGEMAKER_TRAINING \
  --priority 1 \
  --service-environment-order order=1,serviceEnvironment=my-qm-sagemaker-service-env \
  --scheduling-policy-arn arn-for-my-qm-sagemaker-scheduling-policy
```

验证任务队列是否已成功创建：

```
aws batch describe-job-queues \
  --job-queues my-qm-sagemaker-jq
```

请确保：
+ `state` 为 `ENABLED`
+ `status` 为 `VALID`
+ `statusReason` 为 `JobQueue Healthy`

------