开始使用 Amazon Batch - Amazon Batch
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

开始使用 Amazon Batch

您可以使用Amazon Batch首次运行的向导快速入门Amazon Batch。完成先决条件后,您可以使用Amazon Batch首次运行向导通过几个步骤创建计算环境、创建作业定义和作业队列。

您还可以在Amazon Batch首次运行向导中提交 “Hello World” 作业示例,以测试您的配置。如果您已经有要启动的 Docker 映像Amazon Batch,可以使用该映像创建作业定义。

步骤 1:先决条件

在启动Amazon Batch首次运行向导之前,请执行以下操作:

步骤 2:创建计算环境

计算环境是对您的 Amazon EC2 实例的引用。计算环境中的设置和限制说明Amazon Batch如何配置和自动启动 Amazon EC2 实例。

要创建计算环境,请执行以下操作:

注意

目前,您只能在首次运行向导中创建托管计算环境。要创建非托管计算环境,请参阅创建计算环境

  1. 打开Amazon Batch控制台首次运行向导

  2. 计算环境配置部分中:

    1. 计算环境名称中,输入自定义名称。

    2. 对于服务角色,选择有权代表您呼叫其他Amazon Web Services人的服务角色。如果您没有可以呼叫其他Amazon Web Services人的服务角色,则会代您创建一个角色。

  3. 实例配置部分中:

    1. 对于配置模式,选择 FargateFargate Spot按需Spot

    2. (仅限价)对于按需价格的最大百分比,输入您要为竞价资源支付的按需定价的最大百分比。

    3. (仅限竞价按需)对于最低 vCPUs,请输入实例使用的最小 vCPUs 数量。

      提示

      如果您将 “最小 vCPUs” 设置为0,则在没有工作可用时不使用实例时间。

    4. (所有配置模型)对于最大 vCPUs,请输入实例使用的最大 vCPUs 数量。

    5. (可选,仅限竞价按需)对于所需的 vCPUs,请输入实例使用的所需的 vCPUs 数量。

    6. (仅限竞价按需)对于允许的实例类型,选择该实例使用的实例类型。

      重要

      默认情况下,选择最佳最佳设置选择最适合您的 M4、C4 和 R4 和 R4 和 R4 和 R4 和 R4 和 R4 和 R4 和 R4 和 R4 和 R4 和 R4 和 R4 和 RAmazon Web Services 区域 4 要使用一组自定义的实例类型,请删除最佳设置,然后选择所需的实例类型。

    7. (仅限竞价按需分配)对于分配策略,为按需选择 BEST_FIT_P ROGRESSIVE 或针对竞价选择 SPOT_C APITALIZE_OPT

  4. 在 “网络” 部分中:

    1. 对于 VPC_ID,选择亚马逊 VPC。

    2. 对于子网,默认情况下Amazon Web Services 账户会列出您的子网。如果要创建一组自定义子网,请选择清除子网,然后选择所需的子网。

      重要

      计算资源必须通过 VPC 终端节点或多个公有 IP 地址与 Amazon ECS VPC 终端节点通信。有关更多信息,请参阅 Amazon ECS 接口 VPC 终端节点 (Amazon PrivateLink)。如果您的实例没有配置 VPC 终端节点或公有 IP 地址,则可以使用网络地址转换 (NAT)。有关 NAT 的更多信息,请参阅 NAT 网关创建 Virtual Cloud

    3. (可选)展开其他设置:安全组、置放群组

      1. 对于安全组,选择要与实例关联的 Amazon EC2 安全组。如果要创建一组自定义的安全组,请选择清除安全组。然后,选择所需的安全组。

      2. (可选,仅限按需价)对于置放群组,如果您创建多节点parallel 作业,请输入置放群组名称。

  5. 选择 Next(下一步)

步骤 3:创建作业队列

任务队列会存储您提交的任务,直到Amazon Batch调度程序在您的计算环境中的资源上运行该作业。要创建作业队列,请执行以下操作:

  1. Job 队列配置部分中:

    1. 对于 Job 队列名称,输入自定义名称。

    2. 在 “优先级” 中,为作业队列输入 0 到 100 之间的整数。

      重要

      Amazon Batch调度程序为更高的整数值分配更高的优先级。

    3. (可选)如果您有要应用于作业队列的Amazon调度策略:

      1. 开启调度策略 ARN

      2. 选择您想要的 Amazon 资源名称 (ARN)。

    4. (可选)扩展其他配置

      对于 “状态”,选择作业队列状态。

  2. (可选)在 “标签” 部分:

    1. 选择 Add tag (添加标签)。输入密钥名称/值对,然后选择 A dd tag

      重要

      如果选择添加标签,则必须输入键值对,然后再次选择添加标签或选择删除标签

  3. 选择 Next(下一步)

步骤 4:创建作业定义

要创建作业定义,请执行以下操作:

  1. 在 “常规配置” 部分中:

    1. 名称中,输入自定义作业定义名称。

    2. 对于执行超时时间为单位,输入未完成作业终止的时间长度(以秒为单位)。

      重要

      最短超时时间最短超时时间为60 秒。

    3. (可选)扩展其他标签配置

    4. 标签是为资源分配的标记。要添加标签,请选择 Add tag(添加标签)。输入键值对,然后再次选择 A dd tag

      重要

      如果选择添加标签,则必须输入键值对,然后再次选择添加标签或选择删除标签

    5. (可选)开启传播标签将标签传播到亚马逊弹性容器服务任务。

  2. 在 “平台兼容性” 部分中:

    1. 对于执行角色,请选择一个任务执行角色,该角色允许 Amazon Elastic Container Service (Amazon ECS) 代理代表您进行Amazon调用。例如,您可以选择 “ecsTaskExecution角色”。

  3. 在 “Job 配置” 部分中:

    1. 对于 Imag e,输入用于启动容器的图像的名称。默认情况下,Docker Hub 注册表中的所有映像都可用,你也可以以 rep ository-url/image: tag 格式指定其他存储库。该参数最长可达 255 个字符。可以包含大写和小写字母、数字、连字符 (_)、句点 (.)、正斜杠 (.)、正斜杠 (/) 和数字符号 (#)。)、正斜杠 (/) 和数字符号 (#)。参数映射到Image Docker Remote API 的 “创建容器” 部分,IMAGE参数映射到docker run

      注意

      Docker映像架必须与为它们安排的计算资源的处理器架构相匹配。例如,Arm基于Docker映像只能在Arm基于计算资源上运行。

      • Amazon ECR 公共存储库中的映像使用完整registry/repository[:tag]registry/repository[@digest]命名约定(例如,public.ecr.aws/registry_alias/my-web-app:latest)。

      • Amazon ECR 存储库中的映像使用完整registry/repository:tag命名规则(例如,aws_account_id.dkr.ecr.region.amazonaws.com/my-web-app:latest)。

      • Docker Hub 上的官方存储库中的映像使用一个名称 (例如,ubuntumongo)。

      • Docker Hub 上其他存储库中的映像通过组织名称 (例如,amazon/amazon-ecs-agent) 进行限定。

      • 其他在线存储库中的映像由域名 (例如,quay.io/assemblyline/ubuntu) 进行进一步限定。

    2. 对于命令语法,选择 BashJSON

    3. 对于 Command,指定要传递到容器的命令。此参数映射到 Docker Remote API 创建容器部分中的 Cmd,以及 docker runCOMMAND 参数。有关 Docker CMD 参数的更多信息,请参阅 https://docs.docker.com/engine/reference/builder/#cmd

      注意

      您可以在命令中使用参数替代默认值和占位符。有关更多信息,请参阅参数

      提示

      选择 “信息” 查看 Bash 和 JSON 代码示例。

    4. 对于 vCPUs,指定要为容器预留的 vCPU 数量。此参数将映射到 Docker Remote API创建容器部分中的 CpuShares 以及 docker run--cpu-shares 选项。每个 vCPU 相当于 1024 个 CPU 份额。

    5. 对于 M ory,指定要提供给作业容器的内存量的硬限制(以 MiB 为单位)。如果您的容器尝试使用超出此处指定的内存,该容器将被终止。此参数将映射到 Docker Remote API创建容器部分中的 Memory 以及 docker run--memory 选项。

    6. (可选)开启环境变量配置以添加传递到容器的环境变量。此参数将映射到 Docker Remote API创建容器部分中的 Env 以及 docker run--env 选项。

    7. (可选)开启 Job 角色配置以添加有权访问Amazon API 的 IAM 角色。此功能使用 Amazon ECS IAM 角色执行任务功能。有关更多信息,请参阅 Amazon Elastic Container Service 开发人员指南中的任务的 IAM 角色

      注意

      在 Fargate 资源上运行的作业需要任务角色。

      注意

      此处仅显示具有 Amazon 弹性容器服务任务角色信任关系的角色。有关如何为您的Amazon Batch任务创建 IAM 角色的说明,请参阅 A mazon Elastic Container Service 开发人员指南中的为任务创建 IAM 角色和策略

    8. (可选)开启安全配置以添加要在容器中使用的用户名。

      要为您的作业容器提供对主机实例的提升的权限(类似于root用户),请开启 Privivice (Privivic e)。此参数将映射到 Docker Remote API创建容器部分中的 Privileged 以及 docker run--privileged 选项。

      对于 User,输入要在容器内使用的用户名。此参数将映射到 Docker Remote API创建容器部分中的 User 以及 docker run--user 选项。

    9. (可选)启用 S ecret s 以名称/值对的形式添加密钥。这些秘密暴露在容器中。有关更多信息,请参阅 Serc ettoptions (SercJob 定义参数 e)

    10. (可选)打开 “启用只读文件系统” 以删除对卷的写入权限。

    11. (可选)开启装载点配置,为数据卷添加挂载点。您必须指定源卷和容器路径。这些挂载点将传递给容器实例上的 Docker 守护程序。

    12. (可选,仅按需价)打开 Ulimit 配置以配置 ulimit 值列表。输入名称、软限制和硬限制,然后选择 Add ulimi t。

    13. (可选)选择卷配置以创建要传递到容器的卷列表。输入该卷的名称源路径,然后选择 A dd volume。

    14. (可选)打开 Linux 参数配置以添加设备或打开 Linux 特定设置,例如启用 Init 进程

      1. (可选)启用初始化进程以在容器内运行初始化进程。这个过程转发信号和获得进程。

      2. (可选,仅限竞价按需)对于设备,选择添加设备

        1. (可选,仅限竞价按需)对于设备,选择添加设备以添加设备。

        2. (可选,仅限竞价按需)对于容器路径,指定容器实例中的路径以显示映射到主机实例的设备。如果将其保留为空,则在容器中使用主机路径。

        3. (可选,仅限竞价按需)对于主机路径,指定主机实例中设备的路径。

        4. (可选,仅限竞价和按需)对于权限,选择一项或多项权限以应用于容器中的设备。可用的权限有 READWRITEMKNOD

      3. (可选,仅限竞价按需)对于共享内存大小,请输入/dev/shm卷的大小(以 MiB 为单位)。

      4. (可选,仅限现货按需)I 对于最大交换大小,请输入容器可以使用的交换内存总量(以 MiB 为单位)。

      5. (可选,仅限现货按需)对于 Swappines s,输入介于 0 到 100 之间的值以表示容器的交换行为。如果未指定且已启用交换,则默认值为 60。有关更多信息,请参阅 swappyJob 定义参数

      6. (可选,仅限现货按需)对于 Tmpfs,选择 “添加 tmpfs” 以添加tmpfs支架。

      7. (可选,仅限现货按需)对于容器路径,输入装入tmpfs卷的容器中的绝对文件路径。

      8. (可选,仅限现货按需)在 “大小” 字段中,输入tmpfs音量的大小(以 MiB 为单位)。

      9. (可选)对于装载选项,请输入装载选项。有关包括可用装载选项列表在内的更多信息,请参阅中的 mou ntOption sJob 定义参数

    15. (可选)开启日志配置以向容器添加自定义日志驱动程序:

      注意

      默认情况下,使用awslogs日志驱动程序。

      1. (可选)对于日志驱动程序,选择要使用的日志驱动程序。有关可用日志驱动程序的更多信息,请参阅中的 LogDriverJob 定义参数

      2. (可选)对于 “选项”,选择 “添加选项” 以添加选项。输入名称值对,然后选择 A dd 选项

      3. (可选)打开 “密钥”。输入名称/值对,然后选择 “添加” 以添加密钥。

        提示

        有关更多信息,请参阅 Serc toption sJob 定义参数

  4. (可选)您可以将参数作为键值映射添加到作业定义中,以覆盖作业定义的默认值。要添加参数,请执行以下操作:

    1. 对于 “参数”,选择 “添加参数”。输入键值对,然后再次选择添加参数

      重要

      如果选择添加参数,则必须配置至少一个参数或选择删除参数

  5. (可选)在 “重试策略” 部分中,您可以配置重新提交失败作业的次数。您还可以配置退出代码和状态原因,以帮助对故障实例进行故障排除。要配置重试策略,请执行以下操作:

    1. 对于尝试J ob,请输入重新提交失败作业的次数。

    2. (可选)选择退出时添加评估。输入至少一个参数值,然后选择一个操作

      重要

      如果选择退出时添加评估,则必须配置至少一个参数并选择操作或选择退出时删除评估

  6. 选择 Next(下一步)

步骤 5:创建任务

工作是执行的工作单位Amazon Batch。作业作为容器化应用程序在 Amazon ECS 集中的Amazon ECS 集群中的Amazon Service Service Service

要创建任务:

  1. 在 “常规配置” 部分中:

    1. 对于 “名称”,输入自定义名称。

    2. 对于执行超时,输入未完成的作业终止之前的持续时间(以秒为单位)。最短超时时间最短超时时间为60 秒。

    3. (可选)开启阵列作业以将任务分散到多个主机。在阵列大小中输入主机数量。

    4. (可选)如果Job 有任何依赖关系,请开启作业依赖关系。然后,输入依赖项的 Job ID 并选择 A dd

    5. (可选)扩展其他标签配置。在标签中,选择添加标签以添加标签。输入标签密钥和可选值,然后再次选择添加标签

      重要

      如果选择添加标签,则必须输入键值对,然后再次选择添加标签或选择删除标签

    6. (可选)开启传播标签将标签传播到 ECS 任务。

  2. 在 “Job 配置” 部分中:

    1. 对于命令语法,选择 BashJSON

    2. 对于 Command,指定要传递到容器的命令。此参数映射到 Docker Remote API 创建容器部分中的 Cmd,以及 docker runCOMMAND 参数。有关 Docker CMD 参数的更多信息,请参阅 https://docs.docker.com/engine/reference/builder/#cmd

      注意

      您可以在命令中使用参数替代默认值和占位符。有关更多信息,请参阅参数

      提示

      选择 “信息” 查看 Bash 和 JSON 代码示例。

    3. 对于 vCPUs,输入要为容器预留的 vCPUs 数量。

    4. 对于内存,输入容器的内存配额。

    5. GPU 数量中,输入要为容器保留的图形处理单元 (GPU) 数量。

    6. (可选)开启环境变量配置,将其他环境变量传递给容器。输入名称和值,然后选择添加

  3. 在 “参数” 部分中,您可以添加传递给作业的其他参数。这些参数替换作业定义中的参数值。在参数部分中:

    1. (可选)对于参数,选择添加参数

    2. 输入参数名称,然后选择添加参数

    重要

    如果选择添加参数,则必须输入名称/值对并选择添加参数或选择删除参数

  4. 在 “重试策略” 部分中,您可以配置重新提交失败作业的次数。您还可以配置退出代码和状态原因,以帮助对故障实例进行故障排除。要配置重试策略,请执行以下操作:

    1. 对于尝试J ob,请输入重新提交失败作业的次数。

    2. (可选)选择退出时添加评估。输入退出代码状态原因原因。然后,选择一个动作

      重要

      如果选择退出时添加评估,则必须配置至少一个参数并选择操作或选择退出时删除评估

  5. 选择 Next(下一步)

步骤 6:审查并创建

查看并创建,请查看配置步骤。如果需要进行更改,请选择 Edit(编辑)。完成后,选择 Create (创建)。