

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

# 建立配額管理資源
<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. 在 https：//[https://console.aws.amazon.com/batch/](https://console.aws.amazon.com/batch/) 開啟 AWS Batch 主控台。

1. 在導覽窗格中，選擇**任務佇列**，然後選擇**建立**。

1. 針對**協調類型**，選擇 **SageMaker Training**。

1. 對於**任務佇列組態**：

   1. 在**名稱**中，輸入任務佇列的名稱。

   1. 針對 **Priority**，輸入介於 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) ]

若要透過 CLI AWS 設定配額管理，請建立排程政策、服務環境和任務佇列。排程政策和服務環境都必須與配額管理相容，並在建立任務佇列之前建立。

**建立排程政策**

使用 `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 Training 任務接受的執行個體類型，例如 `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`

------