本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在 Amazon ECS 受管執行個體上建立任務定義
Amazon ECS 受管執行個體任務定義ecsProperties搭配 MANAGED_INSTANCES平台功能使用。與 Fargate 不同,vCPU 和記憶體大小組合沒有限制,並且支援 GPU 資源。如需支援參數的詳細資訊,請參閱 Amazon ECS 受管執行個體上的任務定義。
在 Amazon ECS 受管執行個體上建立任務定義 (主控台)
若要在 Amazon ECS 受管執行個體上建立新的任務定義:
-
在 https://https://console.aws.amazon.com/batch/
開啟 AWS Batch 主控台。 -
從頂端導覽列中,選擇要 AWS 區域 使用的 。
-
在左側導覽窗格中,選擇任務定義。
-
選擇建立。
-
針對協同運作類型,選擇 ECS 受管執行個體。
-
在名稱中,輸入任務定義的唯一名稱。名稱長度最多可達 128 個字元。可以包含大小寫字母、數字、連字號 (-) 和底線 (_)。
-
(選用) 針對執行逾時,輸入逾時值 (以秒為單位)。執行逾時是未完成任務終止之前的時間長度。如果嘗試超過逾時持續時間,則會停止嘗試並移至
FAILED狀態。如需詳細資訊,請參閱任務逾時。最小值為 60 秒。 -
針對執行角色,選擇授予 Amazon ECS 容器代理程式代表您進行 AWS API 呼叫許可的 IAM 角色。Amazon ECS 受管執行個體任務需要此角色。例如, 角色用於從 Amazon ECR 提取容器映像。
-
在容器組態區段中:
-
在映像中,輸入要用於任務的容器映像。您可以使用命名慣例來指定 Amazon ECR
登錄檔中的影像。公有登錄檔中的映像會使用完整的 URI (例如,repository-url/image:tagpublic.ecr.aws/amazonlinux/amazonlinux:2023)。 -
在命令中,輸入要傳遞至容器的命令。
-
在 vCPU 中,指定保留給容器的 vCPU 數量。
-
針對記憶體,指定容器可用的記憶體限制 (MiB)。
-
(選用) 對於 GPUs,指定要提供給容器的 GPU 裝置數量。運算環境必須有可用的 GPU 執行個體。
-
-
(選用) 展開標籤,然後選擇新增標籤以將標籤新增至資源。開啟傳播標籤,從任務和任務定義傳播標籤。
-
選擇 Create job definition (建立任務定義)。
在 Amazon ECS 受管執行個體上建立任務定義 (AWS CLI)
使用 register-job-definition命令為 Amazon ECS 受管執行個體建立任務定義。
基本範例
下列範例會建立執行簡單命令的最小任務定義。
$aws batch register-job-definition \ --job-definition-namemy-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-namemy-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-namemy-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" }] }'