本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在 Amazon ECS 托管实例上创建任务定义
Amazon ECS 托管实例任务定义ecsProperties与MANAGED_INSTANCES平台功能一起使用。与 Fargate 不同,对 vCPU 和内存大小组合没有限制,并且支持 GPU 资源。有关支持的参数的更多信息,请参阅亚马逊 ECS 托管实例上的任务定义。
在 Amazon ECS 托管实例(控制台)上创建任务定义
要在 Amazon ECS 托管实例上创建新的任务定义,请执行以下操作:
-
在处打开 AWS Batch 控制台https://console.aws.amazon.com/batch/
。 -
从顶部导航栏中,选择 AWS 区域 要使用的。
-
在左侧导航窗格中,选择作业定义。
-
选择创建。
-
对于编排类型,选择 ECS 托管实例。
-
对于名称,为您的作业定义输入唯一名称。名称长度不超过 128 个字符。可以包含大小写字母、数字、连字符(-)和下划线(_)。
-
(可选)对于执行超时,输入超时值(以秒为单位)。执行超时是指未完成的作业终止之前的时间长度。如果某次尝试超过了超时时间,该尝试将停止,状态将转为
FAILED。有关更多信息,请参阅 作业超时。最小值为 60 秒。 -
对于执行角色,选择一个 IAM 角色,该角色向 Amazon ECS 容器代理授予代表您进行 AWS API 调用的权限。此角色是 Amazon ECS 托管实例任务所必需的。例如,该角色用于从 Amazon ECR 提取容器镜像。
-
在容器配置部分:
-
对于映像,输入用于任务的容器镜像。可以使用
命名约定来指定 Amazon ECR 注册表中的图像。公共注册表中的图像使用完整的 URI(例如,repository-url/image:tagpublic.ecr.aws/amazonlinux/amazonlinux:2023)。 -
对于命令,输入要传递到容器的命令。
-
对于 vCPUs,指定要为容器预留的 vCPU 数量。
-
对于内存,指定容器可用的内存限制(以 MiB 为单位)。
-
(可选)对于 GPU,指定可供容器使用的 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" }] }'
Multi-container (边车)任务定义
以下示例使用主容器和 sidecar 日志容器创建任务定义。
$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" }] }'