

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

# 在 Amazon ECS 受管執行個體上建立任務定義
<a name="create-job-definition-ecs-managed-instances"></a>

Amazon ECS 受管執行個體任務定義`ecsProperties`搭配 `MANAGED_INSTANCES`平台功能使用。與 Fargate 不同，vCPU 和記憶體大小組合沒有限制，並且支援 GPU 資源。如需支援參數的詳細資訊，請參閱 [Amazon ECS 受管執行個體上的任務定義](ecs-managed-instances-job-definitions.md)。

## 在 Amazon ECS 受管執行個體上建立任務定義 （主控台）
<a name="create-jd-ecs-managed-instances-console"></a>

**若要在 Amazon ECS 受管執行個體上建立新的任務定義：**

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

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

1. 在左側導覽窗格中，選擇**任務定義**。

1. 選擇**建立**。

1. 針對**協同運作類型**，選擇 **ECS 受管執行個體**。

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

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

1. 針對**執行角色**，選擇授予 Amazon ECS 容器代理程式代表您進行 AWS API 呼叫許可的 IAM 角色。Amazon ECS 受管執行個體任務需要此角色。例如， 角色用於從 Amazon ECR 提取容器映像。

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

   1. 在**映像**中，輸入要用於任務的容器映像。您可以使用命名慣例來指定 Amazon ECR `{{repository-url}}/{{image}}:{{tag}}` 登錄檔中的影像。公有登錄檔中的映像會使用完整的 URI （例如，`public.ecr.aws/amazonlinux/amazonlinux:2023`)。

   1. 在**命令**中，輸入要傳遞至容器的命令。

   1. 在 **vCPU** 中，指定保留給容器的 vCPU 數量。

   1. 針對**記憶體**，指定容器可用的記憶體限制 (MiB)。

   1. （選用） 對於 **GPUs**，指定要提供給容器的 GPU 裝置數量。運算環境必須有可用的 GPU 執行個體。

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

1. 選擇 **Create job definition (建立任務定義)**。

## 在 Amazon ECS 受管執行個體上建立任務定義 (AWS CLI)
<a name="create-jd-ecs-managed-instances-cli"></a>

使用 `register-job-definition`命令為 Amazon ECS 受管執行個體建立任務定義。

### 基本範例
<a name="create-jd-ecs-managed-instances-cli-basic"></a>

下列範例會建立執行簡單命令的最小任務定義。

```
$ aws batch register-job-definition \
    --job-definition-name {{my-managed-instances-job-def}} \
    --type container \
    --platform-capabilities MANAGED_INSTANCES \
    --ecs-properties '{
      "taskProperties": [{
        "containers": [{
          "image": "public.ecr.aws/amazonlinux/amazonlinux:2023",
          "name": "main",
          "command": ["echo", "hello managed instances"],
          "resourceRequirements": [
            {"type": "VCPU", "value": "1"},
            {"type": "MEMORY", "value": "1024"}
          ]
        }],
        "executionRoleArn": "arn:aws:iam::{{123456789012}}:role/{{ecsTaskExecutionRole}}"
      }]
    }'
```

### GPU 任務定義
<a name="create-jd-ecs-managed-instances-cli-gpu"></a>

下列範例會建立請求 GPU 資源的任務定義。

```
$ aws batch register-job-definition \
    --job-definition-name {{my-gpu-managed-instances-job-def}} \
    --type container \
    --platform-capabilities MANAGED_INSTANCES \
    --ecs-properties '{
      "taskProperties": [{
        "containers": [{
          "image": "{{123456789012}}.dkr.ecr.{{us-east-1}}.amazonaws.com/{{my-gpu-image}}:latest",
          "name": "main",
          "command": ["nvidia-smi"],
          "resourceRequirements": [
            {"type": "VCPU", "value": "4"},
            {"type": "MEMORY", "value": "16384"},
            {"type": "GPU", "value": "1"}
          ]
        }],
        "executionRoleArn": "arn:aws:iam::{{123456789012}}:role/{{ecsTaskExecutionRole}}"
      }]
    }'
```

### 多容器 （附屬） 任務定義
<a name="create-jd-ecs-managed-instances-cli-sidecar"></a>

下列範例會使用主要容器和附屬記錄容器建立任務定義。

```
$ aws batch register-job-definition \
    --job-definition-name {{my-sidecar-managed-instances-job-def}} \
    --type container \
    --platform-capabilities MANAGED_INSTANCES \
    --ecs-properties '{
      "taskProperties": [{
        "containers": [{
          "image": "public.ecr.aws/amazonlinux/amazonlinux:2023",
          "name": "main",
          "command": ["echo", "processing data"],
          "essential": true,
          "resourceRequirements": [
            {"type": "VCPU", "value": "2"},
            {"type": "MEMORY", "value": "4096"}
          ]
        },
        {
          "image": "public.ecr.aws/amazonlinux/amazonlinux:2023",
          "name": "sidecar",
          "command": ["echo", "logging sidecar"],
          "essential": false,
          "resourceRequirements": [
            {"type": "VCPU", "value": "1"},
            {"type": "MEMORY", "value": "512"}
          ]
        }],
        "executionRoleArn": "arn:aws:iam::{{123456789012}}:role/{{ecsTaskExecutionRole}}"
      }]
    }'
```