Amazon ECS
AWS Fargate 用户指南 (API 版本 2014-11-13)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

创建任务定义

您必须先创建任务定义,然后才能在 Amazon ECS 上运行 Docker 容器。您可以在任务定义中定义多个容器和数据卷。有关在任务定义中可用参数的更多信息,请参阅 任务定义参数

创建新的任务定义

  1. https://console.amazonaws.cn/ecs/ 上打开 Amazon ECS 控制台。

  2. 在导航窗格中,依次选择 Task Definitions (任务定义)Create new Task Definition (创建新任务定义)

  3. Select launch type compatibilities (选择启动类型兼容性) 页面上,依次选择 FARGATENext step (下一步)

    注意

    Fargate 启动类型与 Windows 容器不兼容。

  4. (可选) 如果您有任务定义的 JSON 表示形式,请完成以下步骤:

    1. Configure task and container definitions 页面上,滚动到页面底部并选择 Configure via JSON

    2. 将您的任务定义 JSON 粘贴到文本区域并选择 Save

    3. 验证您的信息并选择 Create

    滚动到页面底部,选择 Configure via JSON (通过 JSON 配置)

  5. Task Definition Name (任务定义名称) 中,为任务定义键入名称。最多能包含 255 个字母 (大写和小写字母)、数字、连字符和下划线。

  6. 对于 Task execution IAM role (任务执行 IAM 角色),选择您的任务执行角色,或者选择 Create new role (新建角色),以便控制台可以为您创建一个。有关更多信息,请参阅 。

  7. 对于 Task size,选择 Task memory (GB)Task CPU (vCPU) 的值。下表显示了有效组合。

    CPU 值 内存值
    256 (.25 vCPU) 512 MB、1 GB、2 GB
    512 (.5 vCPU) 1GB、2GB、3GB、4GB
    1024 (1 vCPU) 2GB、3GB、4GB、5GB、6GB、7GB、8GB
    2048 (2 vCPU) 4GB 到 16GB 之间 (以 1GB 为增量)
    4096 (4 vCPU) 8 GB 到 30 GB(以 1 GB 为增量)
  8. 对于您的任务定义中的每个容器,请完成以下步骤:

    1. 选择 Add container (添加容器)

    2. 填写每个必填字段以及要在您的容器定义中使用的任何可选字段。Advanced container configuration (高级容器配置) 菜单中提供了更多容器定义参数。有关更多信息,请参阅 任务定义参数

    3. 选择 Add (添加),将容器添加到任务定义。

  9. (可选)对于 Service Integration (服务集成),要配置 App Mesh 集成的参数,请选择 Enable App Mesh integration (启用 App Mesh 集成),然后执行以下操作:

    1. 对于 Application container name (应用程序容器名称),选择要用于 App Mesh 应用程序的容器名称。必须已在任务定义中定义此容器。

    2. 对于 Envoy image (Envoy 映像),使用自动填充的 Envoy 容器映像,即 840364872350.dkr.ecr.us-west-2.amazonaws.com/aws-appmesh-envoy:v1.12.1.1-prod。

    3. 对于 Mesh name (网格名称),选择要使用的 App Mesh 服务网格。必须已创建才会显示。有关更多信息,请参阅 AWS App Mesh 用户指南 中的服务网格

    4. 对于 Virtual node name (虚拟节点名称),选择要使用的 App Mesh 虚拟节点。必须已创建才会显示。有关更多信息,请参阅 AWS App Mesh 用户指南 中的虚拟节点

    5. 对于 Virtual node port (虚拟节点端口),将使用虚拟节点上设置的侦听器端口进行预先填充。

    6. 选择 Apply (应用)Confirm (确认)。这将为任务定义创建一个新的 Envoy 代理容器以及支持它的设置。然后,它将预先填充下一步中的 App Mesh 代理配置设置。

  10. (可选)对于 Proxy Configuration (代理配置),请验证所有预填充值。有关这些字段的更多信息,请参阅Proxy Configuration

  11. (可选)要为您的任务定义数据卷,请选择 Add volume (添加卷)。有关更多信息,请参阅在任务中使用数据卷

    1. 对于 Name (名称),键入卷名称。最多能包含 255 个字母 (大写和小写字母)、数字、连字符和下划线。

  12. In the Tags section, specify the key and value for each tag to associate with the task definition. For more information, see Tagging Your Amazon ECS Resources.

  13. 选择 Create

任务定义模板

空任务定义模板如下所示。您可以使用此模板创建任务定义,这些任务定义随后可粘贴到控制台 JSON 输入区域或保存到文件并与 AWS CLI --cli-input-json 选项结合使用。有关更多信息,请参阅任务定义参数

{ "family": "", "taskRoleArn": "", "executionRoleArn": "", "networkMode": "none", "containerDefinitions": [ { "name": "", "image": "", "repositoryCredentials": { "credentialsParameter": "" }, "cpu": 0, "memory": 0, "memoryReservation": 0, "links": [ "" ], "portMappings": [ { "containerPort": 0, "hostPort": 0, "protocol": "tcp" } ], "essential": true, "entryPoint": [ "" ], "command": [ "" ], "environment": [ { "name": "", "value": "" } ], "mountPoints": [ { "sourceVolume": "", "containerPath": "", "readOnly": true } ], "volumesFrom": [ { "sourceContainer": "", "readOnly": true } ], "linuxParameters": { "capabilities": { "add": [ "" ], "drop": [ "" ] }, "devices": [ { "hostPath": "", "containerPath": "", "permissions": [ "mknod" ] } ], "initProcessEnabled": true, "sharedMemorySize": 0, "tmpfs": [ { "containerPath": "", "size": 0, "mountOptions": [ "" ] } ] }, "secrets": [ { "name": "", "valueFrom": "" } ], "dependsOn": [ { "containerName": "", "condition": "SUCCESS" } ], "startTimeout": 0, "stopTimeout": 0, "hostname": "", "user": "", "workingDirectory": "", "disableNetworking": true, "privileged": true, "readonlyRootFilesystem": true, "dnsServers": [ "" ], "dnsSearchDomains": [ "" ], "extraHosts": [ { "hostname": "", "ipAddress": "" } ], "dockerSecurityOptions": [ "" ], "interactive": true, "pseudoTerminal": true, "dockerLabels": { "KeyName": "" }, "ulimits": [ { "name": "rss", "softLimit": 0, "hardLimit": 0 } ], "logConfiguration": { "logDriver": "syslog", "options": { "KeyName": "" } }, "healthCheck": { "command": [ "" ], "interval": 0, "timeout": 0, "retries": 0, "startPeriod": 0 }, "systemControls": [ { "namespace": "", "value": "" } ], "resourceRequirements": [ { "value": "", "type": "GPU" } ] } ], "volumes": [ { "name": "", "host": { "sourcePath": "" }, "dockerVolumeConfiguration": { "scope": "task", "autoprovision": true, "driver": "", "driverOpts": { "KeyName": "" }, "labels": { "KeyName": "" } } } ], "placementConstraints": [ { "type": "memberOf", "expression": "" } ], "requiresCompatibilities": [ "FARGATE" ], "cpu": "", "memory": "", "tags": [ { "key": "", "value": "" } ], "pidMode": "host", "ipcMode": "host", "proxyConfiguration": { "type": "APPMESH", "containerName": "", "properties": [ { "name": "", "value": "" } ] } }

您可以使用以下 AWS CLI 命令生成此任务定义模板:

aws ecs register-task-definition --generate-cli-skeleton

本页内容: