

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

# ContainerProperties 的任務定義參數
<a name="job_definition_parameters"></a>

使用 的任務定義[https://docs.aws.amazon.com/batch/latest/APIReference/API_ContainerProperties.html](https://docs.aws.amazon.com/batch/latest/APIReference/API_ContainerProperties.html)分為幾個部分：
+ 任務定義名稱
+ 任務定義的類型
+ 參數替換預留位置預設值
+ 任務的容器屬性
+ 在 Amazon EKS 資源上執行之任務所需的任務定義 Amazon EKS 屬性
+ 多節點平行任務所需的節點屬性
+ 在 Fargate 資源上執行的任務所需的平台功能
+ 任務定義的預設標籤傳播詳細資訊
+ 任務定義的預設重試策略
+ 任務定義的預設排程優先順序
+ 任務定義的預設標籤
+ 任務定義的預設逾時

**Contents**
+ [

## 任務定義名稱
](#jobDefinitionName)
+ [

## 類型
](#type)
+ [

## 參數
](#parameters)
+ [

## 容器屬性
](#containerProperties)
+ [

## Amazon EKS 屬性
](#job-definition-parameters-eks-properties)
+ [

## 平台功能
](#job-definition-parameters-platform-capabilities)
+ [

## 傳播標籤
](#job-definition-parameters-propagate-tags)
+ [

## 節點屬性
](#nodeProperties)
+ [

## 重試策略
](#retryStrategy)
+ [

## 排程優先順序
](#job-definition-parameters-schedulingPriority)
+ [

## Tags (標籤)
](#job-definition-parameters-tags)
+ [

## 逾時
](#timeout)

## 任務定義名稱
<a name="jobDefinitionName"></a>

`jobDefinitionName`  
您必須在註冊任務定義時指定名稱。名稱長度上限為 128 個字元。可以包含大小寫字母、數字、連字號 (-) 和底線 (\$1)。以該名稱註冊的第一個任務定義會獲得 1 的修訂。後續使用該名稱註冊的任何任務定義，將取得遞增的修訂版號碼。  
類型：字串  
必要：是

## 類型
<a name="type"></a>

`type`  
註冊任務定義時，需指定任務類型。如果任務在 Fargate 資源上執行，`multinode`則不支援 。如需多節點平行任務的詳細資訊，請參閱「[建立多節點平行任務定義](create-multi-node-job-def.md)」。  
類型：字串  
有效值：`container` \$1 `multinode`  
必要：是

## 參數
<a name="parameters"></a>

`parameters`  
當您提交任務時，您可以指定取代預留位置的參數，或覆寫預設任務定義參數。任務提交要求中的參數，優先於任務定義中的預設值。這表示您可以針對使用相同格式的多個任務使用相同的任務定義。您也可以在提交時以程式設計方式變更命令中的值。  
類型：字串到字串映射  
必要：否  
註冊任務定義時，您可以在任務容器屬性的 `command` 欄位使用參數替換預留位置。語法如下。  

```
"command": [
    "ffmpeg",
    "-i",
    "Ref::inputfile",
    "-c",
    "Ref::codec",
    "-o",
    "Ref::outputfile"
]
```
在上述範例中，命令中有 `Ref::inputfile`、`Ref::codec` 和 `Ref::outputfile` 參數替換預留位置。您可以使用任務定義中的 `parameters` 物件來設定這些預留位置的預設值。例如，若要設定 `Ref::codec` 預留位置的預設值，您應在任務定義中指定下列各項：  

```
"parameters" : {"codec" : "mp4"}
```
提交此任務定義以執行時，容器 命令中的`Ref::codec`引數會取代為預設值 `mp4`。

## 容器屬性
<a name="containerProperties"></a>

當您註冊任務定義時，請指定在放置任務時，在容器執行個體上傳遞至 Docker 協助程式的容器屬性清單。任務定義允許使用以下的容器屬性。針對單節點任務，這些容器屬性會設定在任務定義層級。針對多節點平行任務，每個節點群組的容器屬性會設定在 [節點屬性](#nodeProperties) 層級。

`command`  
傳遞至容器的命令。此參數會映射至 [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)。  

```
"command": ["string", ...]
```
類型：字串陣列  
必要：否

`environment`  
傳遞至容器的環境變數。此參數會映射到 [Docker Remote API](https://docs.docker.com/engine/api/v1.38/) 的[建立容器](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate)區段中的 `Env` 以及 [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/) 的 `--env` 選項。  
不建議您對敏感資訊 (例如憑證) 使用純文字環境變數。
環境變數開頭不得為 `AWS_BATCH`。此命名慣例會保留給 AWS Batch 服務所設定的變數。
類型：金鑰值對的陣列  
必要：否    
`name`  
環境變數的名稱。  
類型：字串  
必要：是，使用 `environment` 時。  
`value`  
環境變數的值。  
類型：字串  
必要：是，使用 `environment` 時。

```
"environment" : [
    { "name" : "envName1", "value" : "envValue1" },
    { "name" : "envName2", "value" : "envValue2" }
]
```

`executionRoleArn`  
註冊任務定義時，您可以指定 IAM 角色。此角色為 Amazon ECS 容器代理程式提供代表您呼叫其相關聯政策中指定之 API 動作的許可。在 Fargate 資源上執行的任務必須提供執行角色。如需詳細資訊，請參閱[AWS Batch IAM 執行角色](execution-IAM-role.md)。  
類型：字串  
必要：否

`fargatePlatformConfiguration`  
在 Fargate 資源上執行之任務的平台組態。在 EC2 資源上執行的任務不得指定此參數。  
類型：[FargatePlatformConfiguration](https://docs.aws.amazon.com/batch/latest/APIReference/API_FargatePlatformConfiguration.html) 物件  
必要：否    
`platformVersion`  
 AWS Fargate 平台版本用於 任務，或使用 AWS Fargate 平台`LATEST`的最新核准版本。  
類型：字串  
預設：`LATEST`  
必要：否

`image`  
用來啟動任務的映像。此字串會直接傳遞至 Docker 常駐程式。根據預設，Docker Hub 登錄檔中的映像為可用。您也可以用 `repository-url/image:tag` 指定其他儲存庫。允許最多 255 個字元 (大小寫)、數字、連字號、底線、等號、句號、正斜線、井號。此參數會映射至 [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`)。
類型：字串  
必要：是

`instanceType`  
用於多節點平行任務的執行個體類型。所有節點平行任務中的所有節點群組皆必須使用相同的執行個體類型。此參數不適用於單一節點容器任務或在 Fargate 資源上執行的任務。  
類型：字串  
必要：否

`jobRoleArn`  
註冊任務定義時，您可以指定 IAM 角色。角色提供任務容器權限，允許其代表您呼叫相關聯政策中指定的 API 動作。如需詳細資訊，請參閱《Amazon Elastic Container Service 開發人員指南》**中的[任務 IAM 角色](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html)。  
類型：字串  
必要：否

`linuxParameters`  
Linux 特定的修改，會套用到容器，例如用於裝置映射的詳細資訊。  

```
"linuxParameters": {
    "devices": [
        {
            "hostPath": "string",
            "containerPath": "string",
            "permissions": [
                "READ", "WRITE", "MKNOD"
            ]
        }
    ],
    "initProcessEnabled": true|false,
    "sharedMemorySize": 0,
    "tmpfs": [
        {
            "containerPath": "string",
            "size": integer,
            "mountOptions": [
                "string"
            ]
        }
    ],
    "maxSwap": integer,
    "swappiness": integer
}
```
類型：[LinuxParameters](https://docs.aws.amazon.com/batch/latest/APIReference/API_LinuxParameters.html) 物件  
必要：否    
`devices`  
映射到容器的裝置列表。此參數對應到 [Docker Remote API](https://docs.docker.com/engine/api/v1.38/) [Create a container](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) (建立容器) 一節中的 `Devices`，以及 [Docker run](https://docs.docker.com/engine/reference/run/) 的 `--device` 選項。  
此參數不適用於在 Fargate 資源上執行的任務。
類型：[Device](https://docs.aws.amazon.com/batch/latest/APIReference/API_Device.html) 物件的陣列  
必要：否    
`hostPath`  
主機容器執行個體中可用裝置的路徑。  
類型：字串  
必要：是  
`containerPath`  
裝置在容器中公開的路徑。如果未指定，裝置會在與主機路徑相同的路徑中公開。  
類型：字串  
必要：否  
`permissions`  
容器中的裝置的許可。如果未指定，則許可會設為 `READ`、 `WRITE`和 `MKNOD`。  
類型：字串陣列  
必要：否  
有效值：`READ` \$1 `WRITE` \$1 `MKNOD`  
`initProcessEnabled`  
若為 true，請在容器內執行 `init` 處理程序，該處理程序可轉寄訊號及獲得處理程序。此參數會映射到 [docker run](https://docs.docker.com/engine/reference/run/) 的 `--init` 選項。在您的容器執行個體上，此參數需要 1.25 版或更新版本的 Docker Remote API。若要檢查容器執行個體的 Docker Remote API 版本，請登入容器執行個體，並執行下列命令：`sudo docker version | grep "Server API version"`  
類型：布林值  
必要：否  
`maxSwap`  
任務可以使用的交換記憶體總量 （以 MiB 為單位）。此參數將會轉換為 [docker run](https://docs.docker.com/engine/reference/run/) 的 `--memory-swap` 選項，其中值是容器記憶體與 `maxSwap` 值的總和。如需詳細資訊，請參閱 Docker 文件中的 [`--memory-swap` 詳細資訊](https://docs.docker.com/config/containers/resource_constraints/#--memory-swap-details)。  
如果將 `maxSwap` 值指定為 `0`，容器不會使用交換。接受的值為 `0` 或任何正整數。如果省略 `maxSwap` 參數，容器會使用其執行所在之容器執行個體的交換組態。必須設定 `maxSwap` 值，才能使用 `swappiness` 參數。  
此參數不適用於在 Fargate 資源上執行的任務。
類型：整數  
必要：否  
`sharedMemorySize`  
`/dev/shm` 磁碟區的大小值 (以 MiB 為單位)。此參數會映射到 [docker run](https://docs.docker.com/engine/reference/run/) 的 `--shm-size` 選項。  
此參數不適用於在 Fargate 資源上執行的任務。
類型：整數  
必要：否  
`swappiness`  
您可藉此調整容器的記憶體交換行為。除非絕對必要，否則 `swappiness`值`0`會導致交換不會發生。為 `100` 的 `swappiness` 值導致積極地交換頁面。接受的值為介於 `0` 與 `100` 之間的整數。如果未指定 `swappiness` 參數，則會使用預設值 `60`。如果未對 `maxSwap` 指定值，則會忽略此參數。如果 `maxSwap` 設定為 0，則容器不會使用交換。此參數會映射到 [docker run](https://docs.docker.com/engine/reference/run/) 的 `--memory-swappiness` 選項。  
當您使用每個容器交換組態時，請考量下列事項。  
+ 必須在容器執行個體上啟用和配置交換空間，供容器使用。
**注意**  
根據預設，Amazon ECS 最佳化 AMI 沒有啟用交換功能。您必須在執行個體上啟用交換，才能使用此功能。如需詳細資訊，請參閱《*Amazon EC2 使用者指南*》中的[執行個體存放區交換磁碟區](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-store-swap-volumes.html)，或[如何使用交換檔案將記憶體配置為 Amazon EC2 執行個體中的交換空間？](https://aws.amazon.com/premiumsupport/knowledge-center/ec2-memory-swap-file/)
+ 交換空間參數僅針對使用 EC2 資源的任務定義提供支援。
+ 如果從任務定義中省略 `maxSwap` 和 `swappiness` 參數，每個容器的預設 `swappiness` 值都為 60。總交換用量限制為容器記憶體保留的兩倍。
此參數不適用於在 Fargate 資源上執行的任務。
類型：整數  
必要：否  
`tmpfs`  
tmpfs 掛載的容器路徑、掛載選項和大小。  
類型：[Tmpfs](https://docs.aws.amazon.com/batch/latest/APIReference/API_Tmpfs.html) 物件的陣列  
此參數不適用於在 Fargate 資源上執行的任務。
必要：否    
`containerPath`  
掛載 tmpfs 磁碟區之容器中的絕對檔案路徑。  
類型：字串  
必要：是  
`mountOptions`  
tmpfs 磁碟區掛載選項的清單。  
有效值："`defaults`" \$1 "`ro`" \$1 "`rw`" \$1 `suid`"`nosuid`" \$1 `dev`"" \$1 "`nodev`" \$1 """ \$1 "`exec`" `noexec`\$1 "`async`"" \$1 `sync`""" \$1 "`dirsync`"" \$1 "`remount`"" `mand`\$1 "`nomand`" \$1 "`atime`"" \$1 "" \$1 "`nodiratime`"" \$1 `noatime``diratime`""" \$1 "`bind`"" \$1 """ `rbind``unbindable``runbindable``private`\$1`rprivate`"" \$1 """ \$1 "`shared`"" \$1 "`rshared``slave``rslave``relatime`"" \$1 "`norelatime`"" \$1 "`strictatime`"`nostrictatime``mode``uid``gid``nr_inodes``nr_blocks``mpol`  
類型：字串陣列  
必要：否  
`size`  
tmpfs 磁碟區大小 (以 MiB 為單位)。  
類型：整數  
必要：是

`logConfiguration`  
任務的日誌組態規格。  
此參數對應到 [Docker Remote API](https://docs.docker.com/engine/api/v1.38/) [Create a container](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) (建立容器) 一節中的 `LogConfig`，以及 [Docker run](https://docs.docker.com/engine/reference/run/) 的 `--log-driver` 選項。根據預設，容器會和 Docker 常駐程式使用一樣的日誌記錄驅動程式。不過，容器可以使用與 Docker 協助程式不同的記錄驅動程式，方法是在容器定義中指定具有此參數的日誌驅動程式。若要為容器使用不同的記錄驅動程式，必須在容器執行個體或其他日誌伺服器上設定日誌系統，以提供遠端記錄選項。如需支援的不同日誌驅動程式選項的詳細資訊，請參閱 Docker 文件中的 [Configure logging drivers](https://docs.docker.com/engine/admin/logging/overview/) (設定日誌驅動程式)。  
AWS Batch 目前支援 Docker 協助程式可用的部分記錄驅動程式 （如 [LogConfiguration](https://docs.aws.amazon.com/batch/latest/APIReference/API_LogConfiguration.html) 資料類型所示）。
在您的容器執行個體上，此參數需要 1.18 版或更新版本的 Docker Remote API。若要檢查容器執行個體的 Docker Remote API 版本，請登入容器執行個體，並執行下列命令：`sudo docker version | grep "Server API version"`  

```
"logConfiguration": {
    "devices": [
        {
            "logDriver": "string",
            "options": {
                "optionName1" : "optionValue1",
                "optionName2" : "optionValue2"
            }
            "secretOptions": [
              {
                  "name" : "secretOptionName1",
                  "valueFrom" : "secretOptionArn1"
              },
              {
                  "name" : "secretOptionName2",
                  "valueFrom" : "secretOptionArn2"
              }
            ]
        }
    ]
}
```
類型：[LogConfiguration](https://docs.aws.amazon.com/batch/latest/APIReference/API_LogConfiguration.html) 物件  
必要：否    
`logDriver`  
用於任務的日誌驅動程式。根據預設， 會 AWS Batch 啟用`awslogs`日誌驅動程式。根據預設，針對此參數列出的有效值是 Amazon ECS 容器代理程式可與之通訊的日誌驅動程式。  
此參數對應到 [Docker Remote API](https://docs.docker.com/engine/api/v1.38/) [Create a container](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) (建立容器) 一節中的 `LogConfig`，以及 [Docker run](https://docs.docker.com/engine/reference/run/) 的 `--log-driver` 選項。根據預設，任務會使用與 Docker 協助程式相同的記錄驅動程式。不過，任務可以使用與 Docker 協助程式不同的記錄驅動程式，方法是在任務定義中指定具有此參數的日誌驅動程式。如果您想要為任務指定另一個記錄驅動程式，則必須在運算環境中的容器執行個體上設定日誌系統。或者，在另一個日誌伺服器上進行設定，以提供遠端記錄選項。如需支援的不同日誌驅動程式選項的詳細資訊，請參閱 Docker 文件中的 [Configure logging drivers](https://docs.docker.com/engine/admin/logging/overview/) (設定日誌驅動程式)。  
AWS Batch 目前支援 Docker 協助程式可用的部分記錄驅動程式。未來的 Amazon ECS 容器代理程式版本可能會提供更多可用的其他日誌驅動程式。
支援的記錄驅動程式為 `awslogs`、`fluentd`、`gelf`、`json-file`、`journald`、`logentries`、`syslog` 和 `splunk`。  
在 Fargate 資源上執行的任務僅限於 `awslogs`和 `splunk` 日誌驅動程式。
在您的容器執行個體上，此參數需要 1.18 版或更新版本的 Docker Remote API。若要檢查容器執行個體的 Docker Remote API 版本，請登入容器執行個體，並執行下列命令：`sudo docker version | grep "Server API version"`  
在容器執行個體上執行的 Amazon ECS 容器代理程式必須使用 `ECS_AVAILABLE_LOGGING_DRIVERS`環境變數註冊該執行個體上可用的記錄驅動程式。否則，放置在該執行個體上的容器無法使用這些日誌組態選項。如需詳細資訊，請參閱《Amazon Elastic Container Service 開發人員指南》中的 [Amazon ECS 容器代理程式組態](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html)。  
`awslogs`  
指定 Amazon CloudWatch Logs 記錄驅動程式。如需詳細資訊，請參閱 Docker 文件中的 [使用 awslogs 日誌驅動程式](using_awslogs.md)和 [Amazon CloudWatch Logs 記錄驅動程式](https://docs.docker.com/config/containers/logging/awslogs/)。  
`fluentd`  
指定 Fluentd 記錄驅動程式。如需包括用量和選項的詳細資訊，請參閱 Docker 文件中的 [Fluentd 記錄驅動程式](https://docs.docker.com/config/containers/logging/fluentd/)。  
`gelf`  
指定 Graylog 延伸格式 (GELF) 記錄驅動程式。如需包括用量和選項的詳細資訊，請參閱 Docker 文件中的 [Graylog 擴充格式記錄驅動程式](https://docs.docker.com/config/containers/logging/gelf/)。  
`journald`  
指定 journald 記錄驅動程式。如需包括用量和選項的詳細資訊，請參閱 Docker 文件中的[日誌記錄驅動程式](https://docs.docker.com/config/containers/logging/journald/)。  
`json-file`  
指定 JSON 檔案記錄驅動程式。如需包括用量和選項的詳細資訊，請參閱 Docker 文件中的 [JSON 檔案記錄驅動程式](https://docs.docker.com/config/containers/logging/json-file/)。  
`splunk`  
指定 Splunk 記錄驅動程式。如需包括用量和選項的詳細資訊，請參閱 Docker 文件中的 [Splunk 記錄驅動程式](https://docs.docker.com/config/containers/logging/splunk/)。  
`syslog`  
指定 syslog 記錄驅動程式。如需包括用量和選項的詳細資訊，請參閱 Docker 文件中的 [Syslog 記錄驅動程式](https://docs.docker.com/config/containers/logging/syslog/)。
類型：字串  
必要：是  
有效值：`awslogs` \$1 `fluentd` \$1 `gelf` \$1 `journald` \$1 `json-file` \$1 `splunk` \$1 `syslog`  
如果您有先前未列出的自訂驅動程式，想要使用 Amazon ECS 容器代理程式，您可以放棄 [ GitHub 上可用的](https://github.com/aws/amazon-ecs-agent) Amazon ECS 容器代理程式專案，並自訂它以使用該驅動程式。我們鼓勵您為想要進行的變更提交提取請求。不過，Amazon Web Services 目前不支援執行已修改本軟體複本的請求。  
`options`  
要傳送至任務日誌驅動程式的日誌組態選項。  
在您的容器執行個體上，此參數需要 1.19 版或更新版本的 Docker Remote API。  
類型：字串到字串映射  
必要：否  
`secretOptions`  
此物件代表要傳送至日誌組態的秘密。如需詳細資訊，請參閱[指定敏感資料](specifying-sensitive-data.md)。  
類型：物件陣列  
必要：否    
`name`  
要在任務中設定的日誌驅動程式選項名稱。  
類型：字串  
必要：是  
`valueFrom`  
要公開給容器日誌組態之秘密的 Amazon Resource Name (ARN)。支援的值為 Secrets Manager 秘密的完整 ARN 或 SSM 參數存放區中參數的完整 ARN。  
如果 SSM 參數存放區參數與您啟動 AWS 區域 的任務位於相同的 中，則您可以使用參數的完整 ARN 或名稱。如果參數存在於不同區域，則必須指定完整 ARN。
類型：字串  
必要：是

`memory`  
*此參數已棄用，請`resourceRequirements`改用 。*  
為任務預留的記憶體 MiB 數量。  
做為如何使用 的範例`resourceRequirements`，如果您的任務定義包含類似以下的語法。  

```
"containerProperties": {
  "memory": 512
}
```
使用 的同等語法`resourceRequirements`如下所示。  

```
"containerProperties": {
  "resourceRequirements": [
    {
      "type": "MEMORY",
      "value": "512"
    }
  ]
}
```
類型：整數  
必要：是

`mountPoints`  
容器中資料磁碟區的掛載點。此參數會映射到 [Docker Remote API](https://docs.docker.com/engine/api/v1.38/) 的[建立容器](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate)區段中的 `Volumes` 以及 [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/) 的 `--volume` 選項。  

```
"mountPoints": [
                {
                  "sourceVolume": "string",
                  "containerPath": "string",
                  "readOnly": true|false
                }
              ]
```
類型：物件陣列  
必要：否    
`sourceVolume`  
要掛載的磁碟區名稱。  
類型：字串  
必要：是，使用 `mountPoints` 時。  
`containerPath`  
容器上要掛載主機磁碟區的路徑。  
類型：字串  
必要：是，使用 `mountPoints` 時。  
`readOnly`  
如果此數值為 `true`，容器擁有磁碟區的唯讀存取權。如果此值為 `false`，則容器可寫入磁碟區。  
類型：布林值  
必要：否  
預設：False

`networkConfiguration`  
在 Fargate 資源上執行之任務的網路組態。在 EC2 資源上執行的任務不得指定此參數。  

```
"networkConfiguration": { 
   "assignPublicIp": "string"
}
```
類型：物件陣列  
必要：否    
`assignPublicIp`  
指示任務是否有公有 IP 地址。如果任務需要傳出網路存取，這是必要的。  
類型：字串  
有效值：`ENABLED` \$1 `DISABLED`  
必要：否  
預設：`DISABLED`

`privileged`  
此參數為 true 時，容器便會取得主機容器執行個體的更高許可 (類似 `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` 選項。此參數不適用於在 Fargate 資源上執行的任務。請勿提供或指定為 false。  

```
"privileged": true|false
```
類型：布林值  
必要：否

`readonlyRootFilesystem`  
此參數為 true 時，容器會取得根檔案系統的唯讀存取權。此參數會映射到 [Docker Remote API](https://docs.docker.com/engine/api/v1.38/) 的[建立容器](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate)區段中的 `ReadonlyRootfs` 以及 [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/) 的 `--read-only` 選項。  

```
"readonlyRootFilesystem": true|false
```
類型：布林值  
必要：否

`resourceRequirements`  
指派給容器的資源類型和數量。支援的資源包括 `GPU` `MEMORY` 和 `VCPU`。  

```
"resourceRequirements" : [
  {
    "type": "GPU",
    "value": "number"
  }
]
```
類型：物件陣列  
必要：否    
`type`  
要指派給容器的資源類型。支援的資源包括 `GPU` `MEMORY` 和 `VCPU`。  
類型：字串  
必要：是，使用 `resourceRequirements` 時。  
`value`  
為容器預留的指定資源數量。這些值根據指定的 `type` 而有所差異。    
type="GPU"  
為容器保留的記實體 GPU 數量。為任務中所有容器預留的 GPUs 數量不能超過啟動任務的運算資源上可用的 GPUs 數量。  
type="MEMORY"  
提供給容器使用的記憶體硬性限制 (MiB)。如果您的容器嘗試使用超過此處指定的記憶體，容器便會終止。此參數對應到 [Docker Remote API](https://docs.docker.com/engine/api/v1.38/) [Create a container](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) (建立容器) 一節中的 `Memory`，以及 [Docker run](https://docs.docker.com/engine/reference/run/) 的 `--memory` 選項。您必須為單一工作指定至少 4 MiB 的記憶體。這是必要的，但可以在多個地方為多節點平行 (MNP) 任務指定。必須至少為每個節點指定一次。此參數對應到 [Docker Remote API](https://docs.docker.com/engine/api/v1.38/) [Create a container](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) (建立容器) 一節中的 `Memory`，以及 [Docker run](https://docs.docker.com/engine/reference/run/) 的 `--memory` 選項。  
如果您嘗試為特定執行個體類型提供盡可能多的記憶體，以最大化資源使用率，請參閱 [運算資源記憶體管理](memory-management.md)。
對於在 Fargate 資源上執行的任務， `value`必須符合其中一個支援的值。此外，`VCPU`這些值必須是該記憶體值支援的其中一個值。      
<a name="Fargate-memory-vcpu"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/batch/latest/userguide/job_definition_parameters.html)  
type="VCPU"  
為任務保留的 vCPU 數量。此參數對應到 [Docker Remote API](https://docs.docker.com/engine/api/v1.38/) [Create a container](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) (建立容器) 一節中的 `CpuShares`，以及 [Docker run](https://docs.docker.com/engine/reference/run/) 的 `--cpu-shares` 選項。每個 vCPU 相當於 1,024 個 CPU 共用。對於在 EC2 資源上執行的任務，您必須至少指定一個 vCPU。這是必要項目，但可以在幾個地方指定。必須至少為每個節點指定一次。  
對於在 Fargate 資源上執行的任務， `value` 必須符合其中一個支援的值，且`MEMORY`值必須是該 VCPU 值支援的其中一個值。支援的值為 0.25、0.5、1、2、4、8 和 16。  
Fargate 隨需 vCPU 資源計數配額的預設值為 6 個 vCPU。如需 Fargate 配額的詳細資訊，請參閱《》中的 [AWS Fargate 配額](https://docs.aws.amazon.com/general/latest/gr/ecs-service.html#service-quotas-fargate)*Amazon Web Services 一般參考*。
類型：字串  
必要：是，使用 `resourceRequirements` 時。

`secrets`  
公開為環境變數之任務的秘密。如需詳細資訊，請參閱[指定敏感資料](specifying-sensitive-data.md)。  

```
"secrets": [
    {
      "name": "secretName1",
      "valueFrom": "secretArn1"
    },
    {
      "name": "secretName2",
      "valueFrom": "secretArn2"
    }
    ...
]
```
類型：物件陣列  
必要：否    
`name`  
包含秘密的環境變數名稱。  
類型：字串  
必要：是，使用 `secrets` 時。  
  
`valueFrom`  
公開給容器的秘密。支援的值為 Secrets Manager 秘密的完整 Amazon Resource Name (ARN)，或 SSM 參數存放區中參數的完整 ARN。  
如果 SSM 參數存放區參數與您啟動 AWS 區域 的任務位於相同的 中，則您可以使用參數的完整 ARN 或名稱。如果參數存在於不同區域，則必須指定完整 ARN。
類型：字串  
必要：是，使用 `secrets` 時。

`ulimits`  
容器中要設定的 `ulimits` 值的清單。此參數會映射到 [Docker Remote API](https://docs.docker.com/engine/api/v1.38/) 的[建立容器](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate)區段中的 `Ulimits` 以及 [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/) 的 `--ulimit` 選項。  

```
"ulimits": [
  {
    "name": string,
    "softLimit": integer,
    "hardLimit": integer
  }
  ...
]
```
類型：物件陣列  
必要：否    
`name`  
`ulimit` 的 `type`。  
類型：字串  
必要：是，使用 `ulimits` 時。  
  
`hardLimit`  
`ulimit` 類型的硬性限制。  
類型：整數  
必要：是，使用 `ulimits` 時。  
  
`softLimit`  
`ulimit` 類型的軟性限制。  
類型：整數  
必要：是，使用 `ulimits` 時。  


`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` 選項。  

```
"user": "string"
```
類型：字串  
必要：否

`vcpus`  
*此參數已棄用，請`resourceRequirements`改用 。*  
為容器保留的 vCPU 數量。  
如果您的任務定義包含類似以下的行`resourceRequirements`，則做為如何使用 的範例：  

```
"containerProperties": {
  "vcpus": 2
}
```
使用 `resourceRequirements`的同等行如下所示。  

```
"containerProperties": {
  "resourceRequirements": [
    {
      "type": "VCPU",
      "value": "2"
    }
  ]
}
```
類型：整數  
必要：是

`volumes`  
註冊任務定義時，您可指定磁碟區清單，那些磁碟區會傳送到容器執行個體上的 Docker 協助程式。容器屬性允許使用以下參數：  

```
"volumes": [
  {
    "name": "string",
    "host": {
      "sourcePath": "string"
    },
    "efsVolumeConfiguration": {
      "authorizationConfig": {
        "accessPointId": "string",
        "iam": "string"
      },
      "fileSystemId": "string",
      "rootDirectory": "string",
      "transitEncryption": "string",
      "transitEncryptionPort": number
    }
  }
]
```  
`name`  
磁碟區名稱。可以包含最多可達 255 個字元 (大小寫)、數字、連字號和底線。此名稱是參考容器定義 `sourceVolume` 中的 `mountPoints` 參數。  
類型：字串  
必要：否  
`host`  
`host` 參數內容決定資料磁碟區是否在主機容器執行個體和儲存位置中保留。如果 `host` 參數是空的，則 Docker 協助程式會為您的資料磁碟區指派主機路徑。不過，資料不保證會在與其相關聯的容器停止執行後持續存在。  
此參數不適用於在 Fargate 資源上執行的任務。
類型：物件  
必要：否    
`sourcePath`  
提供給容器的主機容器執行個體上的路徑。如果此參數是空的，則 Docker 常駐程式會為您指派主機路徑。  
如果 `host` 參數包含 `sourcePath` 檔案位置，資料磁碟區將保留在主機容器執行個體上的指定位置，直到您手動將其刪除為止。如果 `sourcePath` 值不存在於主機容器執行個體上，Docker 常駐程式將建立該值。如果位置存在，將匯出來源路徑資料夾的內容。  
類型：字串  
必要：否  
`efsVolumeConfiguration`  
當您使用適用於任務儲存體的 Amazon Elastic File System 檔案系統時，會指定此參數。如需詳細資訊，請參閱[Amazon EFS 磁碟區](efs-volumes.md)。  
類型：物件  
必要：否    
`authorizationConfig`  
Amazon EFS 檔案系統的授權組態詳細資訊。  
類型：字串  
必要：否    
`accessPointId`  
要使用的 Amazon EFS 存取點 ID。如果指定存取點，則必須省略 中指定的根目錄值`EFSVolumeConfiguration`，或將 設定為 `/`。這會強制執行在 EFS 存取點上設定的路徑。如果使用存取點，則必須在 `EFSVolumeConfiguration` 中啟用傳輸加密。如需詳細資訊，請參閱《Amazon Elastic File System 使用者指南》**中的[使用 Amazon EFS 存取點](https://docs.aws.amazon.com/efs/latest/ug/efs-access-points.html)。  
類型：字串  
必要：否  
`iam`  
決定是否在掛載 Amazon EFS 檔案系統時使用 AWS Batch 任務定義中定義的任務 IAM 角色。如果已啟用，必須在 `EFSVolumeConfiguration` 中啟用傳輸加密。如果省略此參數，系統會使用 `DISABLED` 的預設值。如需詳細資訊，請參閱[使用 Amazon EFS 存取點](efs-volumes.md#efs-volume-accesspoints)。  
類型：字串  
有效值：`ENABLED` \$1 `DISABLED`  
必要：否  
`fileSystemId`  
要使用的 Amazon EFS 檔案系統識別碼。  
類型：字串  
必要：否  
`rootDirectory`  
在 Amazon EFS 檔案系統中的目錄，其將掛載作為主機內的根目錄。如果省略此參數，使用 Amazon EFS 磁碟區的根目錄。如果您指定 `/`，它具有與省略此參數相同的效果。長度上限為 4,096 個字元。  
如果在 中指定了 EFS 存取點`authorizationConfig`，則必須省略根目錄參數或將其設定為 `/`。這會強制執行在 Amazon EFS 存取點上設定的路徑。
類型：字串  
必要：否  
`transitEncryption`  
確定是否要對 Amazon ECS 主機和 Amazon EFS 伺服器之間 Amazon EFS 傳輸中的資料啟用加密功能。若使用 Amazon EFS IAM 授權，則必須啟用傳輸加密。如果省略此參數，系統會使用 `DISABLED` 的預設值。如需詳細資訊，請參閱《Amazon Elastic File System 使用者指南》中的[加密傳輸中的資料](https://docs.aws.amazon.com/efs/latest/ug/encryption-in-transit.html)。  
類型：字串  
有效值：`ENABLED` \$1 `DISABLED`  
必要：否  
`transitEncryptionPort`  
在 Amazon ECS 主機和 Amazon EFS 伺服器之間傳送加密資料時所使用的連接埠。如果您未指定傳輸加密連接埠，它會使用 Amazon EFS 掛載協助程式使用的連接埠選擇策略。該值必須介於 0 到 65,535 之間。如需詳細資訊，請參閱《Amazon Elastic File System 使用者指南》**中的 [EFS 掛載協助程式](https://docs.aws.amazon.com/efs/latest/ug/efs-mount-helper.html)。  
類型：整數  
必要：否

## Amazon EKS 屬性
<a name="job-definition-parameters-eks-properties"></a>

有各種 Amazon ECS 型任務特定屬性的物件。這不得為 Amazon ECS 型任務定義指定。

`podProperties`  
任務 Kubernetes Pod 資源的屬性。  
類型：[EksPodProperties](https://docs.aws.amazon.com/batch/latest/APIReference/API_EksPodProperties.html) 物件  
必要：否    
`containers`  
Amazon EKS Pod 上所使用容器的屬性。  
類型：[EksContainer](https://docs.aws.amazon.com/batch/latest/APIReference/API_EksContainer.html) 物件  
必要：否    
`args`  
進入點的引數陣列。如果未指定，系統會使用容器映像的 `CMD`。這對應至 `args` 中 [Pod](https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/) [進入點](https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#entrypoint)部分的成員Kubernetes。環境變數參考使用容器的環境擴展。  
如果沒有參考的環境變數，不會變更命令中的參考。例如，如果參考為 "`$(NAME1)`"，且沒有 `NAME1` 環境變數，命令字串會保持 "`$(NAME1)`"。`$$` 會替換為 `$`，且產生的字串不會擴展。例如，`$$(VAR_NAME)` 會以 `$(VAR_NAME)` 傳遞，無論是否有 `VAR_NAME` 環境變數。如需詳細資訊，請參閱 *Dockerfile 參考*中的 [CMD](https://docs.docker.com/engine/reference/builder/#cmd)，以及 *Kubernetes 文件*中的[定義 Pod 的命令和引數](https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/)。  
類型：字串陣列  
必要：否  
`command`  
容器的進入點。這不是在 Shell 中執行。如果未指定，系統會使用容器映像的 `ENTRYPOINT`。環境變數參考使用容器的環境擴展。  
如果沒有參考的環境變數，不會變更命令中的參考。例如，如果參考為 "`$(NAME1)`"，且沒有 `NAME1` 環境變數，命令字串會保持 "`$(NAME1)`"。`$$` 會替換為 `$`，且產生的字串不會擴展。例如，`$$(VAR_NAME)` 會以 `$(VAR_NAME)` 傳遞，無論是否有 `VAR_NAME` 環境變數。無法更新進入點。如需詳細資訊，請參閱 *Dockerfile 參考*中的 [ENTRYPOINT](https://docs.docker.com/engine/reference/builder/#entrypoint)，以及 *Kubernetes 文件*中的[定義容器和進入點的命令和引數](https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/)。 [https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#entrypoint](https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#entrypoint)  
類型：字串陣列  
必要：否  
`env`  
傳遞至容器的環境變數。  
環境變數不得以 "`AWS_BATCH`" 開頭。此命名慣例會保留給 AWS Batch 設定的變數。
類型：[EksContainerEnvironmentVariable](https://docs.aws.amazon.com/batch/latest/APIReference/API_EksContainerEnvironmentVariable.html) 物件的陣列  
必要：否    
`name`  
環境變數的名稱。  
類型：字串  
必要：是  
`value`  
環境變數的值。  
類型：字串  
必要：否  
`image`  
用來啟動容器的 Docker 映像檔。  
類型：字串  
必要：是  
`imagePullPolicy`  
容器的映像提取政策。支援的值為 `Always`、`IfNotPresent` 和 `Never`。此參數預設為 `IfNotPresent`。但如果指定 `:latest` 標籤，預設為 `Always`。如需詳細資訊，請參閱 *Kubernetes 文件*中的[更新映像](https://kubernetes.io/docs/concepts/containers/images/#updating-images)。  
類型：字串  
必要：否  
`name`  
容器的名稱。如果未指定名稱，系統會使用預設名稱 "`Default`"。Pod 中的每個容器都必須有唯一名稱。  
類型：字串  
必要：否  
`resources`  
指派給容器的資源類型和數量。支援的資源包括 `memory` `cpu` 和 `nvidia.com/gpu`。如需詳細資訊，請參閱 *Kubernetes 文件*中的 [Pod 和容器的資源管理](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/)。  
類型：[EksContainerResourceRequirements](https://docs.aws.amazon.com/batch/latest/APIReference/API_EksContainerResourceRequirements.html) 物件  
必要：否    
`limits`  
為容器預留的資源類型和數量。這些值根據指定的 `name` 而有所差異。可以使用 `limits` 或 `requests` 物件請求資源。    
memory  
容器的記憶體硬性限制 (以 MiB 為單位)，使用整數，具有 "Mi" 字尾。如果您的容器嘗試使用超過指定的記憶體，容器便會終止。您必須為任務指定至少 4 MiB 的記憶體。可以在 `limits`、`requests` 或兩者中指定 `memory`。如果同時在這兩個位置指定 `memory`，則 `limits` 中指定的值必須等於 `requests` 中指定的值。  
若要將資源使用率最大化，請為您正在使用的特定執行個體類型的任務，提供盡可能多的記憶體。如要瞭解如何作業，請參閱[運算資源記憶體管理](memory-management.md)。  
cpu  
為容器預留的 CPU 數量。值必須是 `0.25` 的偶數倍數。可以在 `limits`、`requests` 或兩者中指定 `cpu`。如果同時在這兩個位置指定 `cpu`，則 `limits` 中指定的值至少須與 `requests` 中指定的值一樣大。  
nvidia.com/gpu  
為容器預留的 GPU 數量。值必須為整數。可以在 `limits`、`requests` 或兩者中指定 `memory`。如果同時在這兩個位置指定 `memory`，則 `limits` 中指定的值必須等於 `requests` 中指定的值。
類型：字串到字串映射  
值長度限制：長度下限為 1。長度上限為 256。  
必要：否  
`requests`  
為容器請求的資源類型和數量。這些值根據指定的 `name` 而有所差異。可以使用 `limits` 或 `requests` 物件請求資源。    
memory  
容器的記憶體硬性限制 (以 MiB 為單位)，使用整數，具有 "Mi" 字尾。如果您的容器嘗試使用超過指定的記憶體，容器便會終止。您必須為任務指定至少 4 MiB 的記憶體。可以在 `limits`、`requests` 或兩者中指定 `memory`。如果同時在兩者中指定 `memory`，則 `limits` 中指定的值必須等於 `requests` 中指定的值。  
如果您嘗試為特定執行個體類型提供盡可能多的記憶體，以最大化資源使用率，請參閱 [運算資源記憶體管理](memory-management.md)。  
cpu  
為容器預留的 CPU 數量。值必須是 `0.25` 的偶數倍數。可以在 `limits`、`requests` 或兩者中指定 `cpu`。如果同時在兩者中指定 `cpu`，則 `limits` 中指定的值至少須與 `requests` 中指定的值一樣大。  
nvidia.com/gpu  
為容器預留的 GPU 數量。值必須為整數。可以在 `limits`、`requests` 或兩者中指定 `nvidia.com/gpu`。如果同時在兩者中指定 `nvidia.com/gpu`，則 `limits` 中指定的值必須等於 `requests` 中指定的值。
類型：字串到字串映射  
值長度限制：長度下限為 1。長度上限為 256。  
必要：否  
`securityContext`  
任務的安全性內容。如需詳細資訊，請參閱 *Kubernetes 文件*中的[設定 Pod 或容器的安全內容](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/)。  
類型：[EksContainerSecurityContext](https://docs.aws.amazon.com/batch/latest/APIReference/API_EksContainerSecurityContext.html) 物件  
必要：否    
`privileged`  
此參數為 `true` 時，容器便會取得主機容器執行個體的更高許可。許可層級類似於`root`使用者許可。預設值為 `false`。此參數會映射至 *Kubernetes 文件*`privileged`中[特權 Pod 安全政策中的政策](https://kubernetes.io/docs/concepts/security/pod-security-policy/#privileged)。  
類型：布林值  
必要：否  
`readOnlyRootFilesystem`  
此參數為 `true` 時，容器會取得根檔案系統的唯讀存取權。預設值為 `false`。此參數會映射至 *Kubernetes 文件*`ReadOnlyRootFilesystem`中[磁碟區和檔案系統 Pod 安全政策中的政策](https://kubernetes.io/docs/concepts/security/pod-security-policy/#volumes-and-file-systems)。  
類型：布林值  
必要：否  
`runAsGroup`  
指定此參數時，容器會以指定的群組 ID (`gid`) 執行。如果未指定此參數，預設值為映像中繼資料中指定的群組。此參數會映射至 *Kubernetes 文件*中使用者和群組 Pod 安全`RunAsGroup``MustRunAs`政策中的 和 政策。 [https://kubernetes.io/docs/concepts/security/pod-security-policy/#users-and-groups](https://kubernetes.io/docs/concepts/security/pod-security-policy/#users-and-groups)  
類型：Long  
必要：否  
`runAsNonRoot`  
指定此參數時，容器會以 `uid` 非 0 的使用者身分執行。如果未指定此參數，系統會強制執行此規則。此參數會映射至 *Kubernetes 文件*中使用者和群組 Pod 安全`RunAsUser``MustRunAsNonRoot`政策中的 和 政策。 [https://kubernetes.io/docs/concepts/security/pod-security-policy/#users-and-groups](https://kubernetes.io/docs/concepts/security/pod-security-policy/#users-and-groups)  
類型：Long  
必要：否  
`runAsUser`  
指定此參數時，容器會以指定的使用者 ID (`uid`) 執行。如果未指定此參數，預設值為映像中繼資料中指定的使用者。此參數會映射至 *Kubernetes 文件*中使用者和群組 Pod 安全`RunAsUser``MustRanAs`政策中的 和 政策。 [https://kubernetes.io/docs/concepts/security/pod-security-policy/#users-and-groups](https://kubernetes.io/docs/concepts/security/pod-security-policy/#users-and-groups)  
類型：Long  
必要：否  
`volumeMounts`  
磁碟區會針對適用於 Amazon EKS 任務的容器掛載。如需 中磁碟區和磁碟區掛載的詳細資訊Kubernetes，請參閱 *Kubernetes 文件*中的[磁碟區](https://kubernetes.io/docs/concepts/storage/volumes/)。  
類型：[EksContainerVolumeMount](https://docs.aws.amazon.com/batch/latest/APIReference/API_EksContainerVolumeMount.html) 物件陣列  
必要：否    
`mountPath`  
掛載磁碟區之容器上的路徑。  
類型：字串  
必要：否  
`name`  
掛載的磁碟區名稱。這必須符合 Pod 中任一磁碟區的名稱。  
類型：字串  
必要：否  
`readOnly`  
如果此數值為 `true`，容器擁有磁碟區的唯讀存取權。否則，容器可以寫入磁碟區。預設值為 `false`。  
類型：布林值  
必要：否  
`dnsPolicy`  
Pod 的 DNS 政策。預設值為 `ClusterFirst`。如果未指定 `hostNetwork` 參數，預設值為 `ClusterFirstWithHostNet`。`ClusterFirst` 指示任何與設定之叢集網域字尾不相符的 DNS 查詢，都會轉寄至繼承自節點的上游名稱伺服器。如果 [RegisterJobDefinition](https://docs.aws.amazon.com/batch/latest/APIReference/API_RegisterJobDefinition.html) API 操作`dnsPolicy`中未指定 的值，則 `dnsPolicy` [DescribeJobDefinitions](https://docs.aws.amazon.com/batch/latest/APIReference/API_DescribeJobDefinitions.html) 或 [DescribeJobs](https://docs.aws.amazon.com/batch/latest/APIReference/API_DescribeJobs.html) API 操作不會傳回 的值。視 `hostNetwork` 參數的值而定，Pod 規格設定會包含 `ClusterFirst` 或 `ClusterFirstWithHostNet`。如需詳細資訊，請參閱 *Kubernetes 文件*中的 [Pod 的 DNS 政策](https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-s-dns-policy)。  
有效值：`Default` \$1 `ClusterFirst` \$1 `ClusterFirstWithHostNet`  
類型：字串  
必要：否  
`hostNetwork`  
指示 Pod 是否使用主機的網路 IP 地址。預設值為 `true`。將此設定為`false`啟用 Kubernetes Pod 網路模型。大多數 AWS Batch 工作負載都是輸出限定的，不需要每個 Pod 傳入連線的 IP 配置額外負荷。如需詳細資訊，請參閱 *Kubernetes 文件*中的[主機命名空間](https://kubernetes.io/docs/concepts/security/pod-security-policy/#host-namespaces)和 [Pod 聯網](https://kubernetes.io/docs/concepts/workloads/pods/#pod-networking)。  
類型：布林值  
必要：否  
`serviceAccountName`  
用來執行 Pod 的服務帳戶名稱。如需詳細資訊，請參閱《Amazon EKS 使用者指南》中的[Kubernetes服務帳戶](https://docs.aws.amazon.com/eks/latest/userguide/service-accounts.html)和[設定Kubernetes服務帳戶以擔任 IAM 角色](https://docs.aws.amazon.com/eks/latest/userguide/associate-service-account-role.html)和在*Kubernetes文件中*[設定 Pod 的服務帳戶](https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/)。 **  
類型：字串  
必要：否  
`volumes`  
為使用 Amazon EKS 資源的任務定義指定磁碟區。  
類型：[EksVolume](https://docs.aws.amazon.com/batch/latest/APIReference/API_EksVolume.html) 物件的陣列  
必要：否    
emptyDir  
指定Kubernetes`emptyDir`磁碟區的組態。將 Pod 指派給節點時，會先建立 `emptyDir` 磁碟區。只要該 Pod 在該節點上執行，就會存在。`emptyDir` 磁碟區最初是空的。Pod 中的所有容器都可以讀取和寫入 `emptyDir` 磁碟區中的檔案。但 `emptyDir` 磁碟區可以掛載在每個容器中相同或不同路徑上。因任何原因將 Pod 從節點移除時，系統會永久刪除 `emptyDir` 中的資料。如需詳細資訊，請參閱 *Kubernetes 文件*中的 [emptyDir](https://kubernetes.io/docs/concepts/storage/volumes/#emptydir)。  
類型：[EksEmptyDir](https://docs.aws.amazon.com/batch/latest/APIReference/API_EksEmptyDir.html) 物件  
必要：否    
中型  
存放磁碟區的媒體。預設值為空白字串，這會使用節點的儲存空間。    
""  
**(預設)** 使用節點的磁碟儲存空間。  
"Memory"  
使用節點 RAM 支援的 `tmpfs` 磁碟區。節點重新開機時，磁碟區的內容會遺失，且磁碟區上的任何儲存空間都會計入容器的記憶體限制。
類型：字串  
必要：否  
sizeLimit  
磁碟區的大小上限。預設未定義大小上限。  
類型：字串  
長度限制：長度下限為 1。長度上限為 256。  
必要：否  
hostPath  
指定Kubernetes`hostPath`磁碟區的組態。`hostPath` 磁碟區會將現有檔案或目錄，從主機節點的檔案系統掛載到您的 Pod。如需詳細資訊，請參閱 *Kubernetes 文件*中的 [hostPath](https://kubernetes.io/docs/concepts/storage/volumes/#hostpath)。  
類型：[EksHostPath](https://docs.aws.amazon.com/batch/latest/APIReference/API_EksHostPath.html) 物件  
必要：否    
*path*  
要掛載至 Pod 上容器的主機檔案或目錄的路徑。  
類型：字串  
必要：否  
name  
磁碟區名稱。此名稱必須可當作 DNS 子網域名稱。如需詳細資訊，請參閱 *Kubernetes 文件*中的 [DNS 子網域名稱](https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#dns-subdomain-names)。  
類型：字串  
必要：是  
秘密  
指定Kubernetes`secret`磁碟區的組態。如需詳細資訊，請參閱 *Kubernetes 文件*中的[秘密](https://kubernetes.io/docs/concepts/storage/volumes/#secret)。  
類型：[EksSecret](https://docs.aws.amazon.com/batch/latest/APIReference/API_EksSecret.html) 物件  
必要：否    
選擇性  
指定是否必須定義秘密或秘密的金鑰。  
類型：布林值  
必要：否  
secretName  
秘密的名稱。此名稱必須可當作 DNS 子網域名稱。如需詳細資訊，請參閱 *Kubernetes 文件*中的 [DNS 子網域名稱](https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#dns-subdomain-names)。  
類型：字串  
必要：是

## 平台功能
<a name="job-definition-parameters-platform-capabilities"></a>

`platformCapabilities`  
任務定義所需的平台功能。如果未指定任何值，則預設為 `EC2`。對於在 Fargate 資源上執行的任務，`FARGATE`會指定 。  
如果任務在 Amazon EKS 資源上執行，則不得指定 `platformCapabilities`。
類型：字串  
有效值：`EC2` \$1 `FARGATE`  
必要：否

## 傳播標籤
<a name="job-definition-parameters-propagate-tags"></a>

`propagateTags`  
指定是否要將標籤從任務或任務定義傳播到對應的 Amazon ECS 任務。如果沒有指定值，則不會傳播標籤。標籤只能在建立任務時傳播至任務。對於具有相同名稱的標籤，任務標籤優先於任務定義標籤。如果任務和任務定義的合併標籤總數超過 50，任務會移至 `FAILED` 狀態。  
如果任務在 Amazon EKS 資源上執行，則您不得指定 `propagateTags`。
類型：布林值  
必要：否

## 節點屬性
<a name="nodeProperties"></a>

`nodeProperties`  
註冊多節點平行任務定義時，您必須指定節點屬性的清單。這些節點屬性會定義要在任務中使用的節點數量、主節點索引，以及要使用的不同節點範圍。如果任務在 Fargate 資源上執行，則您無法指定 `nodeProperties`。請改用 `containerProperties`。任務定義允許使用以下的節點屬性。如需詳細資訊，請參閱[多節點平行任務](multi-node-parallel-jobs.md)。  
如果任務在 Amazon EKS 資源上執行，則不得指定 `nodeProperties`。
類型：[NodeProperties](https://docs.aws.amazon.com/batch/latest/APIReference/API_NodeProperties.html) 物件  
必要：否    
`mainNode`  
為多節點平行任務指定主要節點的節點索引。此節點索引值必須小於節點的數量。  
類型：整數  
必要：是  
`numNodes`  
與多節點平行任務關聯的節點數量。  
類型：整數  
必要：是  
`nodeRangeProperties`  
與多節點平行任務關聯的節點範圍和其屬性清單。  
節點群組是共用相同容器屬性的相同任務節點群組。您可以使用 AWS Batch 為每個任務指定最多五個不同的節點群組。
類型：[NodeRangeProperty](https://docs.aws.amazon.com/batch/latest/APIReference/API_NodeRangeProperty.html) 物件陣列  
必要：是    
`targetNodes`  
使用節點索引值的節點範圍。`0:3` 的範圍表示節點具有 `0` 到 `3` 的索引值。如果省略開始範圍值 (`:n`)，則會使用 0 來開始範圍。如果省略了結束範圍值 (`n:`)，則會使用最高可能的節點索引來結束範圍。您的累積節點範圍必須將所有節點納入考量 (`0:n`)。您可以巢狀節點範圍，例如 `0:10`和 `4:5`。在這種情況下，`4:5`範圍屬性會覆寫`0:10`屬性。  
類型：字串  
必要：否  
`container`  
節點範圍的容器詳細資訊。如需詳細資訊，請參閱[容器屬性](#containerProperties)。  
類型：[ContainerProperties](https://docs.aws.amazon.com/batch/latest/APIReference/API_ContainerProperties.html) 物件   
必要：否

## 重試策略
<a name="retryStrategy"></a>

`retryStrategy`  
註冊任務定義，您可以選擇性指定任務失敗後要使用的重試策略，隨此任務定義提交。在 [SubmitJob](https://docs.aws.amazon.com/batch/latest/APIReference/API_SubmitJob.html) 操作期間指定的任何重試策略都會覆寫此處定義的重試策略。根據預設，每個任務將嘗試一次。如果您指定多個嘗試，則會在任務失敗時重試任務。失敗嘗試的範例包括任務傳回非零結束碼，或容器執行個體終止。如需詳細資訊，請參閱[自動化任務重試](job_retries.md)。  
類型：[RetryStrategy](https://docs.aws.amazon.com/batch/latest/APIReference/API_RetryStrategy.html) 物件  
必要：否    
`attempts`  
將任務移至 `RUNNABLE` 狀態的次數。您可以指定嘗試 1 至 10 次。如果 `attempts` 超過 1 次，任務失敗後將重試該次數，直到其狀態移至 `RUNNABLE`。  

```
"attempts": integer
```
類型：整數  
必要：否  
`evaluateOnExit`  
最多 5 個物件的陣列，指定任務重試或失敗的條件。如果指定此參數，則也必須指定 `attempts` 參數。如果已指定 `evaluateOnExit` ，但沒有項目相符，則會重試任務。  

```
"evaluateOnExit": [
   {
      "action": "string",
      "onExitCode": "string",
      "onReason": "string",
      "onStatusReason": "string"
   }
]
```
類型： [EvaluateOnExit](https://docs.aws.amazon.com/batch/latest/APIReference/API_EvaluateOnExit.html) 物件的陣列  
必要：否    
`action`  
指定符合所有指定條件 (`onStatusReason` `onReason` 和 `onExitCode`) 時要採取的動作。這些值不區分大小寫。  
類型：字串  
必要：是  
有效值：`RETRY` \$1 `EXIT`  
`onExitCode`  
包含 glob 模式，以比對針對任務`ExitCode`傳回之 的小數表示法。模式的長度上限為 512 個字元。它只能包含數字。它不能包含字母或特殊字元。可以選擇以星號 (\$1) 結束，以便只有字串的開頭需要完全相符。  
類型：字串  
必要：否  
`onReason`  
包含 glob 模式，以比對為任務傳回`Reason`的 。模式的長度上限為 512 個字元。它可以包含字母、數字、句點 (.)、冒號 (：) 和空格 （空格、標籤）。可以選擇以星號 (\$1) 結束，以便只有字串的開頭需要完全相符。  
類型：字串  
必要：否  
`onStatusReason`  
包含 glob 模式，以比對為任務傳回`StatusReason`的 。模式的長度上限為 512 個字元。它可以包含字母、數字、句點 (.)、冒號 (：) 和空格 （空格、標籤）。可以選擇以星號 (\$1) 結束，以便只有字串的開頭需要完全相符。  
類型：字串  
必要：否

## 排程優先順序
<a name="job-definition-parameters-schedulingPriority"></a>

`schedulingPriority`  
與此任務定義一起提交之任務的排程優先順序。這只會影響具有公平共用政策的任務佇列中的任務。排程優先順序較高的任務會排在排程優先順序較低的任務之前。  
支援的最小值為 0，支援的最大值為 9999。  
類型：整數  
必要：否

## Tags (標籤)
<a name="job-definition-parameters-tags"></a>

`tags`  
要與任務定義建立關聯的鍵值對標籤。如需詳細資訊，請參閱[標記您的 AWS Batch 資源](using-tags.md)。  
類型：字串到字串映射  
必要：否

## 逾時
<a name="timeout"></a>

`timeout`  
您可以設定任務的逾時持續時間，以便在任務執行時間超過此時間時 AWS Batch 終止任務。如需詳細資訊，請參閱[任務逾時](job_timeouts.md)。如果任務因逾時而終止，則不會重試。[SubmitJob](https://docs.aws.amazon.com/batch/latest/APIReference/API_SubmitJob.html) 操作期間指定的任何逾時組態都會覆寫此處定義的逾時組態。如需詳細資訊，請參閱[任務逾時](job_timeouts.md)。  
類型：[JobTimeout](https://docs.aws.amazon.com/batch/latest/APIReference/API_JobTimeout.html) 物件  
必要：否    
`attemptDurationSeconds`  
 AWS Batch 終止未完成任務後的持續時間，以秒為單位 （從任務嘗試的`startedAt`時間戳記測量）。逾時最小值為 60 秒。  
若為陣列任務，逾時會套用至子任務，而不是父陣列任務。  
若為多節點平行 (MNP) 任務，逾時會套用至整個工作，而非個別節點。  
類型：整數  
必要：否