

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

# 建立單一節點任務定義
<a name="create-job-definition"></a>

您必須先建立任務定義 AWS Batch，才能在 中執行任務。此程序在單節點和多節點平行任務之間略有不同。本主題特別介紹如何為 AWS Batch 非多節點平行任務 （也稱為 *Gang 排程*) 的任務建立任務定義。

您可以在 Amazon Elastic Container Service 資源上建立多節點平行任務定義。如需詳細資訊，請參閱[建立多節點平行任務定義](create-multi-node-job-def.md)。

**Topics**
+ [在 Amazon EC2 資源上建立單一節點任務定義](create-job-definition-EC2.md)
+ [在 Fargate 資源上建立單一節點任務定義](create-job-definition-Fargate.md)
+ [在 Amazon EKS 資源上建立單一節點任務定義](create-job-definition-eks.md)
+ [在 Amazon EC2 資源上建立具有多個容器的單一節點任務定義](create-job-definition-single-node-multi-container.md)

# 在 Amazon EC2 資源上建立單一節點任務定義
<a name="create-job-definition-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. 對於 **EC2 平台組態**，請關閉**啟用多節點平行**處理。

1. 在**名稱**中，輸入任務定義的唯一名稱。名稱長度最多可達 128 個字元。可以包含大小寫字母、數字、連字號 (-) 和底線 (\$1)。

1. （選用） 針對**執行逾時**，輸入逾時值 （以秒為單位）。執行逾時是未完成任務終止之前的時間長度。如果嘗試超過逾時持續時間，則會停止嘗試並移至 `FAILED` 狀態。如需詳細資訊，請參閱[任務逾時](job_timeouts.md)。最小值為 60 秒。

1. （選用） 開啟**排程優先順序**。輸入介於 0 到 100 之間的排程優先順序值。較高值的優先順序較高。

1. （選用） 針對**任務嘗試**，輸入嘗試將任務移至`RUNNABLE`狀態的 AWS Batch 次數。輸入介於 1 到 10 之間的數字。

1. （選用） 針對**重試策略條件**，選擇**退出時新增評估**。輸入至少一個參數值，然後選擇**動作**。對於每組條件，**動作**必須設定為**重試**或**結束**。這些動作表示下列項目：
   + **重試** – AWS Batch 重試，直到達到您指定的任務嘗試次數為止。
   + **結束** – AWS Batch 停止重試任務。
**重要**  
如果您選擇在**結束時新增評估**，您必須設定至少一個參數，然後選擇**動作**或選擇在**結束時移除評估**。

1. （選用） 展開**標籤**，然後選擇**新增標籤**以將標籤新增至資源。輸入索引鍵和選用值，然後選擇**新增標籤**。

1. （選用） 開啟**傳播標籤**，將標籤從任務和任務定義傳播到 Amazon ECS 任務。

1. 選擇**下一頁**。

1. 在**容器組態**區段中：

   1. 針對**映像**，選擇要用於任務的Docker映像。根據預設，Docker Hub 登錄檔中的映像為可用。您也可以用 `repository-url/image:tag` 指定其他儲存庫。名稱長度最多可達 225 個字元。它可以包含大小寫字母、數字、連字號 (-)、底線 (\$1)、冒號 (：)、斜線 (/) 和數字符號 (\$1)。此參數會映射至 [Docker Remote API](https://docs.docker.com/engine/api/v1.38/) 的[建立容器](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate)區段中的 `Image` 以及 [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/) 的 `IMAGE` 參數。
**注意**  
Docker 映像架構必須符合執行個體排程所在之運算資源的處理器架構。例如，ARM 型 Docker 映像只能在 ARM 型運算資源上執行。
      + Amazon ECR Public 儲存庫中的映像會使用完整`registry/repository[:tag]`或命名慣例 `registry/repository[@digest]` （例如 `public.ecr.aws/registry_alias/my-web-app:latest`)。
      + Amazon ECR 儲存庫中的映像會使用完整的命名慣例 `registry/repository[:tag]` （例如 `aws_account_id.dkr.ecr.region.amazonaws.com``/my-web-app:latest`)。
      + Docker Hub 上官方儲存庫中的映像，使用的是單一名稱 (例如，`ubuntu` 或 `mongo`)。
      + Docker Hub 上的其他儲存庫中的映像要求使用組織名稱 (例如，`amazon/amazon-ecs-agent`)。
      + 其他線上儲存庫中的映像更進一步要求使用網域名稱 (例如，`quay.io/assemblyline/ubuntu`)。

   1. 在**命令**中，將命令輸入 欄位做為其 **JSON** 字串陣列對等項。

      此參數會映射至 [Docker Remote API](https://docs.docker.com/engine/api/v1.38/) 的[建立容器](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate)區段中的 `Cmd` 以及 [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/) 的 `COMMAND` 參數。如需 Docker `CMD` 參數的詳細資訊，請參閱 [https://docs.docker.com/engine/reference/builder/\$1cmd](https://docs.docker.com/engine/reference/builder/#cmd)。
**注意**  
您可以在命令中使用預設值來取代參數和預留位置。如需詳細資訊，請參閱[參數](job_definition_parameters.md#parameters)。

   1. （選用） 對於**執行角色**，指定 IAM 角色，授予 Amazon ECS 容器代理程式代表您進行 AWS API 呼叫的許可。此功能針對任務使用 Amazon ECS IAM 角色。如需詳細資訊，請參閱《[Amazon Elastic Container Service 開發人員指南》中的 Amazon ECS 任務執行 IAM 角色](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_execution_IAM_role.html)。 **

   1. 針對**任務角色組態**，選擇具有 AWS APIs 許可的 IAM 角色。此功能針對任務使用 Amazon ECS IAM 角色。如需詳細資訊，請參閱《Amazon Elastic Container Service 開發人員指南》**中的[任務 IAM 角色](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html)。
**注意**  
這裡只會顯示具有 **Amazon Elastic Container Service 任務角色**信任關係的角色。如需為您的 AWS Batch 任務建立 IAM 角色的詳細資訊，請參閱《*Amazon Elastic Container Service 開發人員指南*》中的[為您的任務建立 IAM 角色和政策](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html#create_task_iam_policy_and_role)。

1. 針對**參數**，選擇**新增參數**，將參數替換預留位置新增為**鍵**對和選用**值**對。

1. 在**環境組態**區段中：

   1. 針對 **vCPUs**，輸入要預留給容器的 vCPUs 數量。此參數會映射到 [Docker Remote API](https://docs.docker.com/engine/api/v1.38/) 的[建立容器](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate)區段中的 `CpuShares` 以及 [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/) 的 `--cpu-shares` 選項。每個 vCPU 相當於 1,024 個 CPU 共用。您必須指定至少 1 個 vCPU。

   1. 針對**記憶體**，輸入容器可用的記憶體限制。如果您的容器嘗試超過您在此處指定的記憶體量，則容器會停止。此參數會映射到 [Docker Remote API](https://docs.docker.com/engine/api/v1.38/) 的[建立容器](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate)區段中的 `Memory` 以及 [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/) 的 `--memory` 選項。您必須為單一工作指定至少 4 MiB 的記憶體。
**注意**  
若要最大化資源使用率，請為特定執行個體類型的任務排定記憶體優先順序。如需詳細資訊，請參閱[運算資源記憶體管理](memory-management.md)。

   1. 針對 ** GPUs 數量**，選擇要保留給容器的 GPUs 數量。

   1. （選用） 對於**環境變數**，選擇**新增環境變數**，將環境變數新增為名稱/值對。這些變數會傳遞至容器。

   1. （選用） 針對**秘密**，選擇**新增秘密**，將秘密新增為名稱/值對。這些秘密會在容器中公開。如需詳細資訊，請參閱 [LogConfiguration：secretOptions](https://docs.aws.amazon.com/batch/latest/APIReference/API_LogConfiguration.html#Batch-Type-LogConfiguration-secretOptions)。

1. 選擇**下一頁**。

1. 在 **Linux 組態**區段中：

   1. 在 **User** (使用者) 中，輸入要在容器內使用的使用者名稱。此參數會映射到 [Docker Remote API](https://docs.docker.com/engine/api/v1.38/) 的[建立容器](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate)區段中的 `User` 以及 [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/) 的 `--user` 選項。

   1. （選用） 若要在主機執行個體上提升任務容器的許可 （類似於`root`使用者），請將**特權**滑桿拖曳至右側。此參數會映射到 [Docker Remote API](https://docs.docker.com/engine/api/v1.38/) 的[建立容器](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate)區段中的 `Privileged` 以及 [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/) 的 `--privileged` 選項。

   1. （選用） 開啟**啟用初始化程序**以在容器內執行`init`程序。此程序會轉送訊號並接收程序。

1. （選用） 在**檔案系統組態**區段中：

   1. 開啟**啟用唯讀檔案系統**以移除磁碟區的寫入存取權。

   1. 針對**共用記憶體大小**，輸入`/dev/shm`磁碟區的大小 （以 MiB 為單位）。

   1. 針對**最大交換大小**，輸入容器可以使用的交換記憶體總量 （以 MiB 為單位）。

   1. 針對**交換輸入**介於 0 到 100 之間的值，以表示容器的交換行為。如果您未指定值並啟用交換，則值預設為 60。如需詳細資訊，請參閱 [LinuxParameters：swappiness](https://docs.aws.amazon.com/batch/latest/APIReference/API_LinuxParameters.html#Batch-Type-LinuxParameters-swappiness)。

   1. （選用） 展開**其他組態**。

   1. （選用） 針對 **Tmpfs**，選擇**新增 tmpfs** 以新增`tmpfs`掛載。

   1. （選用） 針對**裝置**，選擇**新增裝置**以新增裝置：

      1. 針對 **Container path (容器路徑)**，指定容器執行個體中的路徑，以公開對應到主機執行個體的裝置。如果您將此保留空白，則會在容器中使用主機路徑。

      1. 針對 **Host path (主機路徑)**，指定主機執行個體中的裝置的路徑。

      1. 針對**許可**，選擇要套用至裝置的一或多個許可。可用的許可為**讀取**、**寫入**和 **MKNOD**。

   1. （選用） 對於**磁碟區組態**，選擇**新增磁碟區**以建立要傳遞至容器的磁碟區清單。輸入磁碟區**的名稱**和**來源路徑**，然後選擇**新增磁碟區**。您也可以選擇開啟**啟用 EFS**。

   1. （選用） 對於**掛載點**，選擇**新增掛載點組態**以新增資料磁碟區的掛載點。您必須指定來源磁碟區和容器路徑。這些掛載點會傳遞至容器執行個體Docker daemon上的 。您也可以選擇將磁碟區設為**唯讀**。

   1. （選用） 針對 **Ulimits 組態**，選擇**新增 ulimit** 以新增容器`ulimits`的值。輸入**名稱**、**軟性限制**和**硬性限制**值，然後選擇**新增 ulimit**。

1. 在**任務屬性**區段中：

   1. 針對**執行角色 - 條件式**，選擇角色以允許 Amazon ECS 代理程式代表您進行 AWS API 呼叫。如需建立**執行角色**的詳細資訊，請參閱 [教學課程：建立 IAM 執行角色](create-execution-role.md)。

   1. 選擇**啟用 ECS 執行命令**，以啟用直接存取 Amazon ECS 容器殼層，並略過主機作業系統。您必須選擇**任務角色**。
**重要**  
**ECS 執行**命令需要可寫入的檔案系統。

   1. 針對**任務角色**，選擇 Amazon ECS Identity and Access Management (IAM) 角色，以允許容器代表您進行 AWS API 呼叫。如需詳細資訊，請參閱《[Amazon Elastic Container Service 開發人員指南》中的 Amazon ECS 任務 IAM 角色](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html)。 **

1. （選用） 在**記錄組態**區段中：

   1. 對於**日誌驅動程式**，選擇要使用的日誌驅動程式。如需可用日誌驅動程式的詳細資訊，請參閱 [LogConfiguration：logDriver](https://docs.aws.amazon.com/batch/latest/APIReference/API_LogConfiguration.html#Batch-Type-LogConfiguration-logDriver)。
**注意**  
根據預設，會使用 `awslogs` 日誌驅動程式。

   1. 針對**選項**，選擇**新增選項**以新增選項。輸入名稱/值對，然後選擇**新增選項**。

   1. 針對**秘密**，選擇**新增秘密**。輸入名稱/值對，然後選擇**新增秘密**以新增秘密。
**提示**  
如需詳細資訊，請參閱 [LogConfiguration：secretOptions](https://docs.aws.amazon.com/batch/latest/APIReference/API_LogConfiguration.html#Batch-Type-LogConfiguration-secretOptions)。

1. 選擇**下一頁**。

1. 針對**任務定義檢閱**，檢閱組態步驟。如需變更，請選擇 **Edit** (編輯)。完成後，請選擇**建立任務定義**。

# 在 Fargate 資源上建立單一節點任務定義
<a name="create-job-definition-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**。如需詳細資訊，請參閱[Fargate 運算環境](fargate.md)。

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

1. （選用） 針對**執行逾時**，輸入逾時值 （以秒為單位）。執行逾時是未完成任務終止之前的時間長度。如果嘗試超過逾時持續時間，則會停止嘗試並移至 `FAILED` 狀態。如需詳細資訊，請參閱[任務逾時](job_timeouts.md)。最小值為 60 秒。

1. （選用） 開啟**排程優先順序**。輸入介於 0 到 100 之間的排程優先順序值。較高值的優先順序高於較低值。

1. （選用） 展開**標籤**，然後選擇**新增標籤**以將標籤新增至資源。開啟**傳播標籤**，從任務和任務定義傳播標籤。

1. 在 **Fargate 平台組態**區段中：

   1. 針對**執行期平台**，選擇運算環境架構。

   1. 針對**作業系統系列**，選擇運算環境的作業系統。

   1. 針對 **CPU 架構**，選擇 vCPU 架構。

   1. 對於 **Fargate 平台版本**，請輸入 `LATEST`或特定執行期環境版本。

   1. （選用） 開啟**指派公有 IP**，將公有 IP 地址指派給 Fargate 任務網路介面。對於在私有子網路中執行以將傳出流量傳送至網際網路的任務，私有子網路需要連接 NAT 閘道，才能將請求路由至網際網路。您可能想要這麼做，以便提取容器映像。如需詳細資訊，請參閱《Amazon Elastic Container Service 開發人員指南》**中的 [Amazon ECS 任務聯網](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html)。

   1. （選用） 對於**暫時性儲存**，輸入要配置給任務的暫時性儲存量。暫時性儲存量必須介於 21 GiB 和 200 GiB 之間。根據預設，如果您未輸入值，則會配置 20 GiB 的暫時性儲存。
**注意**  
暫時性儲存需要 Fargate 平台 1.4 版或更新版本。

   1. 針對**執行角色**，指定 IAM 角色，授予 Amazon ECS 容器和 Fargate 代理程式代表您進行 AWS API 呼叫的許可。此功能使用 Amazon ECS IAM 角色執行任務功能。如需包括組態先決條件的詳細資訊，請參閱《[Amazon Elastic Container Service 開發人員指南》中的 Amazon ECS 任務執行 IAM 角色](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_execution_IAM_role.html)。 **

   1. 針對**任務嘗試**，輸入嘗試將任務移至 `RUNNABLE` 狀態的 AWS Batch 次數。輸入介於 1 到 10 之間的數字。

   1. 選用） 針對**重試策略條件**，選擇在**結束時新增評估**。輸入至少一個參數值，然後選擇**動作**。對於每組條件，**動作**必須設定為**重試**或**結束**。這些動作表示下列項目：
      + **重試** – AWS Batch 重試，直到達到您指定的任務嘗試次數為止。
      + **結束** – AWS Batch 停止重試任務。
**重要**  
如果您選擇在**結束時新增評估**，則必須至少設定一個參數，然後選擇**動作**，或選擇在**結束時移除評估**。

1. 選擇**下一頁**。

1. 在**容器組態**區段中：

   1. 針對**映像**，選擇要用於任務的 Docker 映像。根據預設，Docker Hub 登錄檔中的映像可供使用。您也可以用 `repository-url/image:tag` 指定其他儲存庫。名稱長度上限為 225 個字元。可包含大寫及小寫字母、數字、連字號 (-)、底線 (\$1)、冒號 (:)、句點 (.)、斜線 (/) 和數字符號 (\$1)。此參數會映射至 [Docker Remote API](https://docs.docker.com/engine/api/v1.38/) 的[建立容器](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate)區段中的 `Image` 以及 [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/) 的 `IMAGE` 參數。
**注意**  
Docker 映像架構必須符合執行個體排程所在之運算資源的處理器架構。例如，ARM 型 Docker 映像只能在 ARM 型運算資源上執行。
      + Amazon ECR Public 儲存庫中的映像會使用完整`registry/repository[:tag]`或命名慣例 `registry/repository[@digest]` （例如 `public.ecr.aws/registry_alias/my-web-app:latest`)。
      + Amazon ECR 儲存庫中的映像會使用完整的命名慣例 `registry/repository[:tag]` （例如 `aws_account_id.dkr.ecr.region.amazonaws.com``/my-web-app:latest`)。
      + Docker Hub 上官方儲存庫中的映像，使用的是單一名稱 (例如，`ubuntu` 或 `mongo`)。
      + Docker Hub 上的其他儲存庫中的映像要求使用組織名稱 (例如，`amazon/amazon-ecs-agent`)。
      + 其他線上儲存庫中的映像更進一步要求使用網域名稱 (例如，`quay.io/assemblyline/ubuntu`)。

   1. 在**命令**中，將命令輸入 欄位做為其 JSON 字串陣列對等項。

      此參數會映射至 [Docker Remote API](https://docs.docker.com/engine/api/v1.38/) 的[建立容器](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate)區段中的 `Cmd` 以及 [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/) 的 `COMMAND` 參數。如需 Docker `CMD` 參數的詳細資訊，請參閱 [https://docs.docker.com/engine/reference/builder/\$1cmd](https://docs.docker.com/engine/reference/builder/#cmd)。
**注意**  
您可以在命令中使用預設值來取代參數和預留位置。如需詳細資訊，請參閱[參數](job_definition_parameters.md#parameters)。

   1. （選用） 將參數新增至任務定義做為名稱/值映射，以覆寫任務定義預設值。若要新增參數：

      1. 針對**參數**，選擇**新增參數**，輸入名稱/值對，然後選擇**新增參數**。
**重要**  
如果您選擇**新增參數**，您必須設定至少一個參數，或選擇**移除參數**

   1. 在**環境組態**區段中：

      

      1. 針對**任務角色組態**，選擇具有 AWS APIs 許可的 IAM 角色。此功能使用 Amazon ECS IAM 角色執行任務功能。如需詳細資訊，請參閱《Amazon Elastic Container Service 開發人員指南》**中的[任務 IAM 角色](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html)。
**注意**  
這裡只會顯示具有 **Amazon Elastic Container Service 任務角色**信任關係的角色。如需如何為您的 AWS Batch 任務建立 IAM 角色的詳細資訊，請參閱《*Amazon Elastic Container Service 開發人員指南*》中的[為您的任務建立 IAM 角色和政策](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html#create_task_iam_policy_and_role)。

      1. 針對 **vCPUs**，輸入要預留給容器的 vCPUs 數量。此參數會映射到 [Docker Remote API](https://docs.docker.com/engine/api/v1.38/) 的[建立容器](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate)區段中的 `CpuShares` 以及 [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/) 的 `--cpu-shares` 選項。每個 vCPU 相當於 1,024 個 CPU 共用。您必須指定至少 1 個 vCPU。

      1. 針對**記憶體**，輸入容器可用的記憶體限制。如果容器嘗試使用超過此處指定的記憶體，容器便會終止。此參數會映射到 [Docker Remote API](https://docs.docker.com/engine/api/v1.38/) 的[建立容器](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate)區段中的 `Memory` 以及 [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/) 的 `--memory` 選項。您必須為單一工作指定至少 4 MiB 的記憶體。

         如果您使用 GuardDuty 執行期監控，GuardDuty 安全代理程式會有些微的記憶體負荷。因此，記憶體限制必須包含 GuardDuty 安全代理程式的大小。如需有關 GuardDuty 安全代理程式記憶體限制的資訊，請參閱《*GuardDuty 使用者指南*》中的 [CPU 和記憶體限制](https://docs.aws.amazon.com/guardduty/latest/ug/prereq-runtime-monitoring-ecs-support.html#ecs-runtime-agent-cpu-memory-limits)。如需有關最佳實務的資訊，請參閱《*Amazon ECS 開發人員指南*》中的[如何在啟用執行期監控之後修復 Fargate 任務上的記憶體不足錯誤](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-guard-duty-troubleshooting.html#memory-error)。
**注意**  
若要最大化資源使用率，請為特定執行個體類型的任務排定記憶體的優先順序。如需詳細資訊，請參閱[運算資源記憶體管理](memory-management.md)。

   1. （選用） 對於**環境變數**，選擇**新增環境變數**，將環境變數新增為名稱/值對。這些變數會傳遞至容器。

   1. （選用） 對於**秘密**，選擇**新增秘密**，將秘密新增為名稱/值對。這些秘密會在容器中公開。如需詳細資訊，請參閱 [LogConfiguration：secretOptions](https://docs.aws.amazon.com/batch/latest/APIReference/API_LogConfiguration.html#Batch-Type-LogConfiguration-secretOptions)。

   1. 選擇**下一頁**。

1. （選用） 在** Linux 組態**區段中：

   1. 針對**使用者**，輸入要在容器內使用的使用者名稱。

   1. 開啟**啟用初始化程序**以在容器內執行初始化程序。此程序會轉送訊號並接收程序。

   1. 開啟**啟用唯讀檔案系統**以移除磁碟區的寫入存取權。

   1. （選用） 展開**其他組態**。

   1. 針對**掛載點組態**，選擇**新增掛載點組態**以新增資料磁碟區的掛載點。您必須指定來源磁碟區和容器路徑。這些掛載點會傳遞至容器執行個體Docker daemon上的 。

   1. 針對**磁碟區組態**，選擇**新增磁碟區**以建立要傳遞至容器的磁碟區清單。輸入磁碟區**的名稱**和**來源路徑**，然後選擇**新增磁碟區**。

   1. 在**任務屬性**區段中：

      1. 針對**執行角色 - 條件式**，選擇角色以允許 Amazon ECS 代理程式代表您進行 AWS API 呼叫。如需建立**執行角色**的詳細資訊，請參閱 [教學課程：建立 IAM 執行角色](create-execution-role.md)。

      1. 選擇**啟用 ECS 執行命令**，以啟用直接存取 Amazon ECS 容器殼層，並略過主機作業系統。您必須選擇**任務角色**。
**重要**  
**ECS 執行**命令需要可寫入的檔案系統。

      1. 針對**任務角色**，選擇 Amazon ECS Identity and Access Management (IAM) 角色，以允許容器代表您進行 AWS API 呼叫。如需詳細資訊，請參閱《[Amazon Elastic Container Service 開發人員指南》中的 Amazon ECS 任務 IAM 角色](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html)。 **

   1. 在**記錄組態**區段中：

      1. （選用） 對於**日誌驅動程式**，選擇要使用的日誌驅動程式。如需可用日誌驅動程式的詳細資訊，請參閱 [LogConfiguration：logDriver](https://docs.aws.amazon.com/batch/latest/APIReference/API_LogConfiguration.html#Batch-Type-LogConfiguration-logDriver)。
**注意**  
根據預設，會使用 `awslogs` 日誌驅動程式。

      1. （選用） 對於**選項**，選擇**新增選項**以新增選項。輸入名稱/值對，然後選擇**新增選項**。

      1. （選用） 針對**秘密**，選擇**新增秘密**以新增秘密。然後，輸入名稱/值對，然後選擇**新增秘密**。
**提示**  
如需詳細資訊，請參閱 [LogConfiguration：secretOptions](https://docs.aws.amazon.com/batch/latest/APIReference/API_LogConfiguration.html#Batch-Type-LogConfiguration-secretOptions)。

1. 選擇**下一頁**。

1. 對於**任務定義檢閱**，請檢閱組態步驟。如需變更，請選擇 **Edit** (編輯)。完成後，請選擇**建立任務定義**。

# 在 Amazon EKS 資源上建立單一節點任務定義
<a name="create-job-definition-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. 針對**協調類型**，選擇 **Elastic Kubernetes Service (EKS)**。

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

1. （選用） 針對**執行逾時**，輸入逾時值 （以秒為單位）。執行逾時是未完成任務終止之前的時間長度。如果嘗試超過逾時持續時間，則會停止嘗試並移至 `FAILED` 狀態。如需詳細資訊，請參閱[任務逾時](job_timeouts.md)。最小值為 60 秒。

1. （選用） 開啟**排程優先順序**。輸入介於 0 到 100 之間的排程優先順序值。較高值的優先順序高於較低值。

1. （選用） 展開**標籤**，然後選擇**新增標籤**以將標籤新增至資源。

1. 選擇**下一頁**。

1. 在 **EKS pod 屬性**區段中：

   1. 針對**服務帳戶名稱**，輸入為在 中執行的程序提供身分的帳戶pod。

   1. 開啟**主機網路**以使用Kubernetespod網路模型，並為傳入連線開啟接聽連接埠。僅針對傳出通訊關閉此設定。

   1. 針對 **DNS 政策**，選擇下列其中一項：
      + **無值 (null)** – pod忽略Kubernetes環境中的 DNS 設定。
      + **預設** – pod 會繼承其執行所在節點的名稱解析度組態。
**注意**  
如果未指定 DNS 政策，**預設**不會是預設 DNS 政策。而是使用 **ClusterFirst**。
      + **ClusterFirst** – 任何與設定之叢集網域尾碼不相符的 DNS 查詢都會轉寄至繼承自節點的上游名稱伺服器。
      + **ClusterFirstWithHostNet** – 如果**主機網路**開啟，則使用此選項。

   1. （選用） 對於**磁碟區**，選取**新增磁碟區**，然後：

      1. 為您的磁碟區新增**名稱**。

      1. （選用） 新增**主機上目錄的主機路徑**。

      1. （選用） 新增**中型**和**大小限制**以設定 [Kubernetes emptyDir](https://kubernetes.io/docs/concepts/storage/volumes/#emptydir)。

      1. （選用） 提供 Pod 的**秘密名稱**，以及秘密是否為**選用**。

      1. （選用） 定義**宣告名稱**，將 Kubernetes [持久性磁碟區宣告](https://kubernetes.io/docs/concepts/storage/persistent-volumes/)連接至 Pod，以及是否為**唯讀**。

   1. （選用） 對於 **Pod 標籤**，選擇**新增 Pod 標籤**，然後輸入名稱/值對。
**重要**  
Pod 標籤的字首不能包含 `kubernetes.io/`、 `k8s.io/`或 `batch.amazonaws.com/`。

   1. （選用） 對於 **Pod 註釋**，選擇**新增註釋**，然後輸入名稱/值對。
**重要**  
Pod 註釋的字首不能包含 `kubernetes.io/`、 `k8s.io/`或 `batch.amazonaws.com/`。

   1. 選擇**下一頁**。

   1. 在**容器組態**區段中：

      1. 在**名稱**中，輸入容器的唯一名稱。名稱必須以字母或數字開頭，長度最多可達 63 個字元。它可以包含大小寫字母、數字和連字號 (-)。

      1. 針對**映像**，選擇要用於任務的Docker映像。根據預設，Docker Hub 登錄檔中的映像可供使用。您也可以用 `repository-url/image:tag` 指定其他儲存庫。名稱長度上限為 255 個字元。可包含大寫及小寫字母、數字、連字號 (-)、底線 (\$1)、冒號 (:)、句點 (.)、斜線 (/) 和數字符號 (\$1)。此參數會映射至 [Docker Remote API](https://docs.docker.com/engine/api/v1.38/) 的[建立容器](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate)區段`Image`中的 ，以及 的 `IMAGE` 參數 [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/)
**注意**  
Docker 映像架構必須符合執行個體排程所在之運算資源的處理器架構。例如，ARM 型 Docker 映像只能在 ARM 型運算資源上執行。
         + Amazon ECR Public 儲存庫中的映像會使用完整`registry/repository[:tag]`或命名慣例 `registry/repository[@digest]` （例如 `public.ecr.aws/registry_alias/my-web-app:latest`)。
         + Amazon ECR 儲存庫中的映像會使用完整的命名慣例 `registry/repository[:tag]` （例如 `aws_account_id.dkr.ecr.region.amazonaws.com``/my-web-app:latest`)。
         + Docker Hub 上官方儲存庫中的映像，使用的是單一名稱 (例如，`ubuntu` 或 `mongo`)。
         + Docker Hub 上的其他儲存庫中的映像要求使用組織名稱 (例如，`amazon/amazon-ecs-agent`)。
         + 其他線上儲存庫中的映像更進一步要求使用網域名稱 (例如，`quay.io/assemblyline/ubuntu`)。

      1. （選用） 對於**映像提取政策**，選擇提取映像的時間。

      1. （選用） 針對**命令**，輸入要傳遞至容器的JSON命令。

      1. （選用） 對於**引數**，輸入要傳遞至容器的引數。如果未提供 引數，則會使用容器映像命令。

   1. （選用） 您可以將參數新增至任務定義做為名稱值映射，以覆寫任務定義預設值。若要新增參數：

      1. 針對**參數**，輸入名稱值對，然後選擇**新增參數**。
**重要**  
如果您選擇**新增參數**，您必須至少設定一個參數，或選擇**移除參數**

   1. 在**環境組態**區段中：

      1. 針對 **vCPUs**，輸入要保留給容器的 vCPUs 數量。此參數會映射到 [Docker Remote API](https://docs.docker.com/engine/api/v1.38/) 的[建立容器](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate)區段中的 `CpuShares` 以及 [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/) 的 `--cpu-shares` 選項。每個 vCPU 相當於 1,024 個 CPU 共用。您必須指定至少 1 個 vCPU。

      1. 針對**記憶體**，輸入容器可用的記憶體限制。如果容器嘗試使用超過此處指定的記憶體，容器便會終止。此參數會映射到 [Docker Remote API](https://docs.docker.com/engine/api/v1.38/) 的[建立容器](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate)區段中的 `Memory` 以及 [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/) 的 `--memory` 選項。您必須為單一工作指定至少 4 MiB 的記憶體。
**注意**  
若要最大化資源使用率，請為特定執行個體類型的任務排定記憶體的優先順序。如需詳細資訊，請參閱[運算資源記憶體管理](memory-management.md)。

   1. （選用） 對於**環境變數**，選擇**新增環境變數**，將環境變數新增為名稱/值對。這些變數會傳遞至容器。

   1. （選用） 對於**磁碟區掛載**：

      1. 選擇**新增磁碟區掛載**。

      1. 輸入**名稱**，然後在掛載磁碟區的容器中輸入**掛載路徑**。輸入 **SubPath** 以指定參考磁碟區內的子路徑，而不是其根路徑。

      1. 選擇**唯讀**以移除磁碟區的寫入許可。

      1. 選擇**新增磁碟區掛載**。

   1. （選用） 對於以**使用者身分執行**，輸入使用者 ID 以執行容器程序。
**注意**  
使用者 ID 必須存在於映像中，容器才能執行。

   1. （選用） 對於**以群組身分執行**，輸入群組 ID 以執行容器程序執行時間。
**注意**  
群組 ID 必須存在於映像中，容器才能執行。

   1. （選用） 若要在主機執行個體上提升任務容器的許可 （類似於`root`使用者），請將**特權**滑桿拖曳至右側。此參數會映射到 [Docker Remote API](https://docs.docker.com/engine/api/v1.38/) 的[建立容器](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate)區段中的 `Privileged` 以及 [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/) 的 `--privileged` 選項。

   1. （選用） 開啟**唯讀根檔案系統**，移除根檔案系統的寫入存取權。

   1. （選用） 開啟**以非根使用者的身分執行**，以非根使用者的pod身分執行 中的容器。
**注意**  
如果已開啟**以非根身分執行**， 會在執行時間kubelet驗證映像，以確認映像未以 UID 0 執行。

   1. 選擇**下一頁**。

1. 針對**任務定義檢閱**，檢閱組態步驟。如需變更，請選擇 **Edit** (編輯)。完成後，請選擇**建立任務定義**。

# 在 Amazon EC2 資源上建立具有多個容器的單一節點任務定義
<a name="create-job-definition-single-node-multi-container"></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. 對於**任務定義結構**，請關閉**使用舊版 containerProperties 結構**處理。

1. 對於 **EC2 平台組態**，請關閉**啟用多節點平行**處理。

1. 選擇**下一步**。

1. 在**一般組態**區段中，輸入下列內容：

   1. 在**名稱**中，輸入任務定義的唯一名稱。名稱長度最多可達 128 個字元。可以包含大小寫字母、數字、連字號 (-) 和底線 (\$1)。

   1. 針對**執行逾時 - *選用***，輸入逾時值 （以秒為單位）。執行逾時是未完成任務終止之前的時間長度。如果嘗試超過逾時持續時間，則會停止嘗試並移至 `FAILED` 狀態。如需詳細資訊，請參閱[任務逾時](job_timeouts.md)。最小值為 60 秒。

   1. 開啟**排程優先順序 - *選用***。輸入介於 0 到 100 之間的排程優先順序值。較高值的優先順序較高。

   1. 展開**標籤 - *選用***，然後選擇**新增標籤**以將標籤新增至資源。輸入索引鍵和選用值，然後選擇**新增標籤**。

   1. 開啟**傳播標籤**，將標籤從任務和任務定義傳播到 Amazon ECS 任務。

1. 在**重試策略 - *選用***區段中，輸入下列內容：

   1. 針對**任務嘗試**，輸入嘗試將任務移至`RUNNABLE`狀態的 AWS Batch 次數。輸入介於 1 到 10 之間的數字。

   1. 針對**重試策略條件**，選擇在**結束時新增評估**。輸入至少一個參數值，然後選擇**動作**。對於每組條件，**動作**必須設定為**重試**或**結束**。這些動作表示下列項目：
      + **重試** – AWS Batch 重試，直到達到您指定的任務嘗試次數為止。
      + **結束** – AWS Batch 停止重試任務。
**重要**  
如果您選擇在**結束時新增評估**，則必須至少設定一個參數，然後選擇**動作**或選擇在**結束時移除評估**。

1. 在**任務屬性**區段中，輸入下列項目：

   1. 針對**執行角色 - *條件式***，選擇角色以允許 Amazon ECS 代理程式代表您進行 AWS API 呼叫。如需建立**執行角色**的詳細資訊，請參閱 [教學課程：建立 IAM 執行角色](create-execution-role.md)。

   1. 選擇**啟用 ECS 執行命令**，以啟用直接存取 Amazon ECS 容器殼層，並略過主機作業系統。您必須選擇**任務角色**。
**重要**  
**ECS 執行**命令需要可寫入的檔案系統。

   1. 針對**任務角色**，選擇 Amazon ECS Identity and Access Management (IAM) 角色，以允許容器代表您進行 AWS API 呼叫。如需詳細資訊，請參閱《[Amazon Elastic Container Service 開發人員指南》中的 Amazon ECS 任務 IAM 角色](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html)。 **

   1. 針對 **IPC 模式**`task`，選擇 `host`、 或 `none`。如果指定 `host` ，則在同一容器執行個體上指定主機 IPC 模式的任務中的所有容器都會與主機 Amazon EC2 執行個體共用相同的 IPC 資源。如果指定任務，則指定任務內的所有容器都會共用相同的 IPC 資源。如果未指定，則任務容器中的 IPC 資源為私有，不會與任務或容器執行個體中的其他容器共用。如果沒有指定值，則 IPC 資源命名空間共用取決於容器執行個體上 Docker 常駐程式的設定。

   1. 針對 **PID 模式**，選擇 `host`或 `task`。例如，監控附屬可能需要 `pidMode` 存取相同任務中執行之其他容器的相關資訊。如果指定 `host` ，則在同一容器執行個體上指定主機 PID 模式的任務中的所有容器都會與主機 Amazon EC2 執行個體共用相同的程序命名空間。如果已指定 `task`，則指定任務內的所有容器會共用相同的程序命名空間。如果未指定任何值，每個容器的預設值會是私有命名空間。

1. 在**消耗性資源**區段中，輸入下列內容：

   1. 輸入唯一的**名稱**和**請求的值**。

   1. 您可以選擇新增消耗性資源來**新增更多消耗性資源**。

1. 在**儲存**區段中，輸入下列內容：

   1. 輸入磁碟區**的名稱**和**來源路徑**，然後選擇**新增磁碟區**。您也可以選擇開啟啟用 EFS。

   1. 您可以選擇新增磁碟區來**新增更多磁碟區**。

1. 針對**參數**，選擇**新增參數**，將參數替換預留位置新增為**鍵**對和選用**值**對。

1. 選擇**下一頁**。

1. 在**容器組態**區段中：

   1. 在 **Name** (名稱) 中，輸入容器的名稱。

   1. 對於**必要容器**，如果容器為必要，請啟用 。

   1. 針對**映像**，選擇要用於任務的Docker映像。根據預設，Docker Hub 登錄檔中的映像為可用。您也可以用 `repository-url/image:tag` 指定其他儲存庫。名稱長度最多可達 225 個字元。它可以包含大小寫字母、數字、連字號 (-)、底線 (\$1)、冒號 (：)、斜線 (/) 和數字符號 (\$1)。此參數會映射至 [Docker Remote API](https://docs.docker.com/engine/api/v1.38/) 的[建立容器](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate)區段中的 `Image` 以及 [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/) 的 `IMAGE` 參數。
**注意**  
Docker 映像架構必須符合執行個體排程所在之運算資源的處理器架構。例如，ARM 型 Docker 映像只能在 ARM 型運算資源上執行。
      + Amazon ECR Public 儲存庫中的映像會使用完整`registry/repository[:tag]`或命名慣例 `registry/repository[@digest]` （例如 `public.ecr.aws/registry_alias/my-web-app:latest`)。
      + Amazon ECR 儲存庫中的映像會使用完整的命名慣例 `registry/repository[:tag]` （例如 `aws_account_id.dkr.ecr.region.amazonaws.com``/my-web-app:latest`)。
      + Docker Hub 上官方儲存庫中的映像，使用的是單一名稱 (例如，`ubuntu` 或 `mongo`)。
      + Docker Hub 上的其他儲存庫中的映像要求使用組織名稱 (例如，`amazon/amazon-ecs-agent`)。
      + 其他線上儲存庫中的映像更進一步要求使用網域名稱 (例如，`quay.io/assemblyline/ubuntu`)。

   1. 針對**資源需求**，請設定下列各項：

      1. 針對 **vCPUs**，選擇容器CPUs 數量。

      1. 針對**記憶體**，選擇容器的記憶體量。

      1. 針對 **GPU - *選用***，選擇容器的 GPUs 數量。

   1. 在 **User** (使用者) 中，輸入要在容器內使用的使用者名稱。

   1. 開啟**啟用唯讀檔案系統**以移除磁碟區的寫入存取權。

   1. 開啟**特權**，在主機執行個體上為任務容器提供更高的許可，類似於根使用者。

   1. 在**命令**中，將命令輸入 欄位做為其 **JSON** 字串陣列對等項。

      此參數會映射至 [Docker Remote API](https://docs.docker.com/engine/api/v1.38/) 的[建立容器](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate)區段中的 `Cmd` 以及 [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/) 的 `COMMAND` 參數。如需 Docker `CMD` 參數的詳細資訊，請參閱 [https://docs.docker.com/engine/reference/builder/\$1cmd](https://docs.docker.com/engine/reference/builder/#cmd)。
**注意**  
您可以在 命令中使用參數替換和預留位置的預設值。如需詳細資訊，請參閱[參數](job_definition_parameters.md#parameters)。

   1. 對於**儲存庫登入資料 - *選用***，輸入包含登入資料之秘密的 ARN。

   1. 針對**環境變數 - *選用***，選擇**新增環境變數**以新增要傳遞至容器的環境變數。

   1. 在 **Linux 參數 - *選用***區段中：

      1. 開啟**啟用初始化程序**以在容器內執行初始化程序。

      1. 針對**共用記憶體大小**，輸入 /dev/shm 磁碟區的大小 (MiB)

      1. 針對**最大交換大小**，輸入容器可以使用的交換記憶體總量 （以 MiB 為單位）。

      1. 針對**交換輸入**介於 0 到 100 之間的值，表示容器的交換行為。如果您未指定值並啟用交換，則值預設為 60。

      1. 針對**裝置**，選擇**新增裝置**以新增裝置：

         1. 針對 **Container path (容器路徑)**，指定容器執行個體中的路徑，以公開對應到主機執行個體的裝置。如果您將此保留空白，則會在容器中使用主機路徑。

         1. 針對 **Host path (主機路徑)**，指定主機執行個體中的裝置的路徑。

         1. 針對**許可**，選擇要套用至裝置的一或多個許可。可用的許可為**讀取**、**寫入**和 **MKNOD**。

      1. 針對 **Tmpfs**，選擇**新增 tmpfs** 以新增`tmpfs`掛載。

   1. 
**注意**  
Firelens 記錄必須在專用容器中完成。若要設定 Firelens 記錄：  
在每個容器中，除了專用防火墻容器之外，請將**記錄驅動程式**設定為 `awsfirelens`
在您的 Firelens 容器中，設定記錄目的地的 **Firelens 組態 - 選用**和**記錄組態 - *選用*** 

      在 **Firelens 組態 - 選用**區段中：
**重要**  
AWS Batch 在非 MNP、非 FARGATE Amazon ECS 任務上強制執行`host`網路模式。Amazon ECS Firelens [需要根使用者](https://github.com/aws/aws-for-fluent-bit/blob/mainline/troubleshooting/debugging.md#amazon-ecs-firelens-root-is-required)。執行使用 `host` 網路模式的任務時，Amazon ECS 建議不要使用根使用者 (UID 0) 執行容器，[以提高安全性](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html#network_mode)。因此，所有具有 Firelens 記錄的非 MNP、非 FARGATE ECS 任務都不符合安全最佳實務。

      1. 針對**類型**，選擇 `fluentd`或 `fluentbit`。

      1. 在**選項**中，輸入選項的名稱/值對。您可以使用新增**選項****來新增更多選項**。

   1.  在**記錄組態 - *選用***區段中：

      1. 對於**日誌驅動程式**，選擇要使用的日誌驅動程式。如需可用日誌驅動程式的詳細資訊，請參閱 [LogConfiguration：logDriver](https://docs.aws.amazon.com/batch/latest/APIReference/API_LogConfiguration.html#Batch-Type-LogConfiguration-logDriver)。
**注意**  
根據預設，會使用 `awslogs` 日誌驅動程式。

      1. 針對**選項**，選擇**新增選項**以新增選項。輸入名稱/值對，然後選擇**新增選項**。

      1. 針對**秘密**，選擇**新增秘密**。輸入名稱/值對，然後選擇**新增秘密**以新增秘密。
**提示**  
如需詳細資訊，請參閱 [LogConfiguration：secretOptions](https://docs.aws.amazon.com/batch/latest/APIReference/API_LogConfiguration.html#Batch-Type-LogConfiguration-secretOptions)。

   1. 對於**掛載點 - *選用***，選擇**新增掛載點**以新增資料磁碟區的掛載點。您必須指定來源磁碟區和容器路徑。

   1. 針對**秘密 - *選用***，選擇**新增秘密**以新增秘密。然後，輸入名稱值對，然後選擇**新增秘密**。
**提示**  
如需詳細資訊，請參閱 [LogConfiguration：secretOptions](https://docs.aws.amazon.com/batch/latest/APIReference/API_LogConfiguration.html#Batch-Type-LogConfiguration-secretOptions)。

   1. 針對 **Ulimits - *選用***，選擇**新增 ulimit** 以新增容器`ulimits`的值。輸入**名稱**、**軟性限制**和**硬性限制**值，然後選擇**新增 ulimit**。

   1. 對於**相依性 - *選用***，選擇**新增容器相依性**。選擇容器的名稱及其狀態，以判斷此容器何時啟動。

1. 如果您只設定一個容器，則必須選擇**新增容器**並完成設定新容器。否則，請選擇**下一步**以檢閱。