创建多节点并行作业定义 - AWS Batch
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

如果我们为英文版本指南提供翻译,那么如果存在任何冲突,将以英文版本指南为准。在提供翻译时使用机器翻译。

创建多节点并行作业定义

您可在 AWS Batch 中运行作业之前,必须先创建一个作业定义。对于单节点并行作业和多节点并行作业,此过程略有不同。本主题介绍如何为 AWS Batch 多节点并行作业创建作业定义。有关更多信息,请参阅 多节点并行作业.

要创建单节点作业定义,请参阅创建作业定义.

创建多节点并行作业定义

  1. 通过以下网址打开 AWS Batch 控制台:。https://console.amazonaws.cn/batch/.

  2. 从导航栏中,选择要使用的区域。

  3. 在导航窗格中,选择 工作定义创建.

  4. 对于 职位定义名称,输入您的职位定义的唯一名称。最多能包含 128 个字母 (大写和小写字母)、数字、连字符和下划线。

  5. 对于 工作尝试,指定尝试工作的最大次数(如果失败)。有关更多信息,请参阅 自动作业重试.

  6. (可选) 执行超时,指定要允许您的工作尝试运行的最大秒数。如果尝试超过超时持续时间,则会停止并且状态移动到 FAILED...有关详细信息,请参阅 作业超时.

  7. 选择 工作需要多个节点配置 然后完成以下子步骤。要改为创建单节点并行作业定义,请参阅创建作业定义.

    1. 对于 节点数,输入要用于工作的节点总数。

    2. 对于 主节点,输入要用于主节点的节点索引。默认主节点索引为 0.

    3. (可选)要将节点限制为特定实例类型,请从下拉菜单中选择一个。如果未指定实例类型,则 AWS Batch 从计算环境中的可用实例类型中选择满足最大节点(vCPU 和内存)要求的最小实例类型。

      重要

      请务必选择可在计算环境中启动的实例类型。否则,您的作业将卡在 RUNNABLE 状态并阻止后续作业。

  8. (可选) 参数 部分,您可以指定参数替换默认值和占位符,以在启动工作容器的命令中使用。有关更多信息,请参阅 Parameters.

    1. 选择 添加参数.

    2. 对于 关键,指定参数的密钥。

    3. 对于 ,指定参数的值。

  9. 节点属性 部分,配置节点组。默认情况下,使用默认数量的节点为您创建单个节点组。

  10. 对于 目标节点,指定节点组的范围,使用 range_start:range_end 标记。

    对于您为作业指定的节点数,您可以创建最多 5 个节点范围。节点范围使用节点的索引值,并且节点索引从 0 开始。最终节点组的范围结束索引值应是您在步骤 1中指定的节点数减 1。例如,如果指定了 10 个节点,并且要使用单个节点组,则结束范围应为 9。

  11. 对于 容器图像,选择要用于工作的靠泊装置图像。默认情况下,Docker Hub 注册表中的映像可用。您还可以指定其他存储库 repository-url/image:tag... 允许最多 255 个字母 (大写和小写字母)、数字、连字符、下划线、冒号、句点、正斜杠和井号。 此参数映射到 Image创建容器 部分 Docker Remote APIIMAGE 参数 docker run.

    注意

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

    • 图像 Amazon ECR 存储库使用 registry/repository:tag 命名约定。例如, aws_account_id.dkr.ecr.region.amazonaws.com/my-web-app:latest

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

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

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

  12. 对于 vCPU,指定要为容器预留的vCPU数。此参数映射到 CpuShares创建容器 部分 Docker Remote API--cpu-shares 选项 docker run...每个vCPU等同于1,024个CPU共享。您必须指定至少一个 vCPU。

  13. 对于 内存,指定存储器的硬限制(在MIB中),以向该工作容器提供。如果您的容器尝试使用超出此处指定的内存,该容器将被终止。此参数映射到 Memory创建容器 部分 Docker Remote API--memory 选项 docker run...您必须为作业指定至少4MIB内存。

    注意

    如果您尝试通过为任务提供尽可能多的用于特定实例类型的内存来最大程度地利用资源,请参阅计算资源内存管理.

  14. 对于 命令,指定要传递到容器的命令。对于简单命令,您可以在 空间分隔 选项卡。然后,确保 JSON 结果 (该结果将传递到 Docker 守护程序) 正确无误。对于更复杂的命令(例如,使用特殊字符),您可以切换到 JSON 选项卡并输入同等的字符串阵列。

    此参数映射到 Cmd创建容器 部分 Docker Remote APICOMMAND 参数到 docker run...有关靠泊装置的更多信息 CMD 参数,转到 https://docs.docker.com/engine/reference/builder/#cmd.

    注意

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

  15. (可选)在主机实例上提供工作容器升级权限(类似于 root 用户),选择 特权. 此参数映射到 Privileged创建容器 sectionofthe Docker Remote API andthe --privileged 选项 docker run.

  16. (可选) 工作职责,您可以指定 IAM 在您的工作中提供容器的角色,以使用 AWS API。此功能使用 Amazon ECS IAM 任务功能的角色。有关详细信息,包括配置前提条件,请参阅 IAM任务角色Amazon Elastic Container Service Developer Guide.

    注意

    只有具有 Amazon Elastic Container Service 任务角色 信任关系如此处所示。如需更多关于创建 IAM 对您的 AWS Batch 职位,请参阅 为您的任务创建IAM角色和政策Amazon Elastic Container Service Developer Guide.

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

  18. (可选) 指定挂载点以供您的作业容器访问。

    1. 对于 容器路径,输入装载主机卷的容器上的路径。

    2. 对于 源卷,输入要装载的卷的名称。

    3. 要使容器的容量只读,请选择 只读.

  19. (可选) 可以为您的作业指定数据卷,以便传递到您的作业容器。

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

    2. (可选) 源路径,在主机实例上输入要向容器提供的路径。如果您将此字段保留为空,则 Docker 守护程序将为您分配一个主机路径。如果您指定源路径,则数据卷将在主机容器实例上的指定位置保留,除非您手动将其删除。如果主机容器实例上不存在源路径,则 Docker 守护程序会创建它。如果该位置不存在,则源路径文件夹的内容将导出至容器。

  20. (可选) 您可以指定要传递到您的作业容器的环境变量。此参数映射到 Env创建容器 部分 Docker Remote API--env 选项 docker run.

    重要

    建议不要对敏感信息(如凭证数据)使用纯文本环境变量。

    1. 选择 添加环境变量.

    2. 对于 关键,指定环境变量的密钥。

      注意

      环境变量不得以 AWS_BATCH此命名约定为由 AWS Batch 服务。

    3. 对于 ,指定环境变量的值。

  21. 对于 u限制,配置用于工作容器的任何ulimit值。

    1. 选择 添加限制.

    2. 对于 限制名称,选择要应用的ulimit。

    3. 对于 软限制,选择适用于uLimit类型的软限制。

    4. 对于 硬限制,选择要应用uLimit类型的硬限制。

  22. 返回步骤 10并对要为作业配置的每个节点组重复执行该步骤。

  23. 选择 创建职位定义.