

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

# 建立任務佇列
<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)
+ [在 中建立 SageMaker 訓練任務佇列 AWS Batch](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. 在 https：//[https://console.aws.amazon.com/batch/](https://console.aws.amazon.com/batch/) 開啟 AWS Batch 主控台。

1. 從導覽列中，選取要 AWS 區域 使用的 。

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

1. 選擇**建立**。

1. 針對**協調類型**，選擇 **Amazon Elastic Compute Cloud (Amazon EC2)**。

1. 在**名稱**中，輸入任務佇列的唯一名稱。名稱長度上限為 128 個字元，且可包含大小寫字母、數字和底線 (\$1)。

1. 針對**優先順序**，輸入任務佇列優先順序的整數值。優先順序較高的任務佇列會在與相同運算環境相關聯的優先順序較低的任務佇列之前執行。優先順序會依遞減順序決定。例如，優先順序值為 10 的任務佇列的排程優先順序會高於優先順序值為 1 的任務佇列。

1. （選用） 針對**排程政策 Amazon Resource Name (ARN)**，選擇現有的排程政策。

1. 對於**連線的運算環境**，請從清單中選擇一或多個運算環境，以與任務佇列建立關聯。依您希望佇列嘗試放置任務佇列的順序選取運算環境。任務排程器會使用您在 中選取運算環境的順序，來判斷哪個運算環境會啟動指定的任務。運算環境必須處於 `VALID` 狀態，才能將它們與任務佇列建立關聯。您可以將多達三個運算環境與工作佇列建立關聯。如果您沒有現有的運算環境，請選擇**建立運算環境**
**注意**  
與任務佇列相關聯的所有運算環境必須共用相同的佈建模型。 AWS Batch 不支援在單一任務佇列中混合佈建模型。

1. 針對**運算環境順序**，選擇向上和向下箭頭以設定您想要的順序。

1. 選擇**建立任務佇列**以完成並建立您的任務佇列。

# 建立 Fargate 任務佇列
<a name="create-job-queue-fargate"></a>

完成下列步驟以建立任務佇列 AWS Fargate。

**建立 Fargate 任務佇列**

1. 在 https：//[https://console.aws.amazon.com/batch/](https://console.aws.amazon.com/batch/) 開啟 AWS Batch 主控台。

1. 從導覽列中，選取要 AWS 區域 使用的 。

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

1. 選擇**建立**。

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

1. 在**名稱**中，輸入任務佇列的唯一名稱。名稱長度上限為 128 個字元，且可包含大小寫字母、數字和底線 (\$1)。

1. 針對**優先順序**，輸入任務佇列優先順序的整數值。優先順序較高的任務佇列會在與相同運算環境相關聯的優先順序較低的任務佇列之前執行。優先順序會依遞減順序決定。例如，優先順序值為 10 的任務佇列的排程優先順序會高於優先順序值為 1 的任務佇列。

1. （選用） 針對**排程政策 Amazon Resource Name (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. 在 https：//[https://console.aws.amazon.com/batch/](https://console.aws.amazon.com/batch/) 開啟 AWS Batch 主控台。

1. 從導覽列中，選取要 AWS 區域 使用的 。

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

1. 選擇**建立**。

1. 針對**協調類型**，選擇 **Amazon Elastic Kubernetes Service (Amazon EKS)**。

1. 在**名稱**中，輸入任務佇列的唯一名稱。名稱長度上限為 128 個字元，且可包含大小寫字母、數字和底線 (\$1)。

1. 在 **Priority** (優先順序)，為任務佇列的優先順序輸入整數值。優先順序較高的任務佇列會在與相同運算環境相關聯的優先順序較低的任務佇列之前執行。優先順序會依遞減順序決定。例如，優先順序值為 10 的任務佇列的排程優先順序會高於優先順序值為 1 的任務佇列。

1. （選用） 針對**排程政策 Amazon Resource Name (ARN)**，選擇現有的排程政策。

1. 對於**連線的運算環境**，請從清單中選擇一或多個運算環境，以與任務佇列建立關聯。依您希望佇列嘗試放置任務佇列的順序選取運算環境。任務排程器會使用您在 中選取運算環境的順序，來判斷哪個運算環境會啟動指定的任務。運算環境必須處於 `VALID` 狀態，才能將它們與任務佇列建立關聯。您可以將多達三個運算環境與工作佇列建立關聯。
**注意**  
與任務佇列相關聯的所有運算環境必須共用相同的佈建模型。 AWS Batch 不支援在單一任務佇列中混合佈建模型。
**注意**  
與任務佇列相關聯的所有運算環境必須共用相同的架構。 AWS Batch 不支援在單一任務佇列中混合運算環境架構類型。

1. 針對**運算環境順序**，選擇向上和向下箭頭以設定您想要的順序。

1. 選擇**建立任務佇列**以完成並建立您的任務佇列。

# 在 中建立 SageMaker 訓練任務佇列 AWS Batch
<a name="create-sagemaker-job-queue"></a>

SageMaker Training 任務佇列會直接與 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. 在 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. （選用） 針對**排程政策 Amazon Resource Name (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 Training 任務佇列。

下列範例會建立使用服務環境的基本 SageMaker Training 任務佇列：

```
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": ""
   }
}
```