View a markdown version of this page

在 Amazon ECS 受管執行個體上建立任務定義 - AWS Batch

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

在 Amazon ECS 受管執行個體上建立任務定義

Amazon ECS 受管執行個體任務定義ecsProperties搭配 MANAGED_INSTANCES平台功能使用。與 Fargate 不同,vCPU 和記憶體大小組合沒有限制,並且支援 GPU 資源。如需支援參數的詳細資訊,請參閱 Amazon ECS 受管執行個體上的任務定義

在 Amazon ECS 受管執行個體上建立任務定義 (主控台)

若要在 Amazon ECS 受管執行個體上建立新的任務定義:
  1. 在 https://https://console.aws.amazon.com/batch/ 開啟 AWS Batch 主控台。

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

  3. 在左側導覽窗格中,選擇任務定義

  4. 選擇建立

  5. 針對協同運作類型,選擇 ECS 受管執行個體

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

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

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

  9. 容器組態區段中:

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

    2. 命令中,輸入要傳遞至容器的命令。

    3. vCPU 中,指定保留給容器的 vCPU 數量。

    4. 針對記憶體,指定容器可用的記憶體限制 (MiB)。

    5. (選用) 對於 GPUs,指定要提供給容器的 GPU 裝置數量。運算環境必須有可用的 GPU 執行個體。

  10. (選用) 展開標籤,然後選擇新增標籤以將標籤新增至資源。開啟傳播標籤,從任務和任務定義傳播標籤。

  11. 選擇 Create job definition (建立任務定義)

在 Amazon ECS 受管執行個體上建立任務定義 (AWS CLI)

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

基本範例

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

$ 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 任務定義

下列範例會建立請求 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" }] }'

多容器 (附屬) 任務定義

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

$ 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" }] }'