在 Amazon EC2 资源上创建单节点作业定义 - Amazon Batch
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

在 Amazon EC2 资源上创建单节点作业定义

要在 Amazon EC2 资源上创建新的作业定义,请执行以下操作:
  1. 打开 Amazon Batch 控制台,地址:https://console.aws.amazon.com/batch/

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

  3. 在左侧导航窗格中,选择作业定义

  4. 选择 Create(创建)。

  5. 对于编排类型,选择 Amazon Elastic Compute Cloud (Amazon EC2)

  6. 对于 EC2 平台配置,请关闭启用多节点并行处理。

  7. 对于名称,为您的作业定义输入唯一名称。名称长度不超过 128 个字符。可以包含大小写字母、数字、连字符(-)和下划线(_)。

  8. (可选)对于执行超时,输入超时值(以秒为单位)。执行超时是指未完成的作业终止之前的时间长度。如果某次尝试超过了超时时间,该尝试将停止,状态将转为 FAILED。有关更多信息,请参阅作业超时。最小值为 60 秒。

  9. (可选)开启计划优先级。输入介于 0 到 100 之间的计划优先级值。值越高,优先级越高。

  10. (可选)对于作业尝试,请输入 Amazon Batch 尝试将作业移至 RUNNABLE 状态的次数。请输入 1 到 10 之间的数字。

  11. (可选)对于重试策略条件,选择退出时添加评估。至少输入一个参数值,然后选择一个操作。对于每组条件,必须将操作设置为重试退出。这些操作意味着以下几点:

    • 重试 – Amazon Batch 重试,直到达到您指定的作业尝试次数。

    • 退出 – Amazon Batch 停止重试作业。

    重要

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

  12. (可选)展开 标签,然后选择添加标签以向资源添加标签。输入键和可选的值,然后选择添加标签

  13. (可选)开启 传播标签将标签从作业和作业定义传播到 Amazon ECS 任务。

  14. 选择下一页

  15. 容器配置部分:

    1. 对于映像,选择要用于您的作业的 Docker 映像。默认情况下,Docker Hub 注册表中的映像可用。您也可以使用 repository-url/image:tag 指定其他存储库。名称长度不超过 225 个字符。可以包含大小写字母、数字、连字符(-)、下划线(_)、冒号(:)、正斜杠(/)和数字符号(#)。此参数可映射到 Docker Remote API创建容器部分中的 Imagedocker runIMAGE 参数。

      注意

      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,指定要传递到容器的命令。对于更简单的命令,请像输入命令提示符一样输入命令。然后,验证 JSON 结果是否正确,且是否传递给 Docker daemon。对于更复杂的命令(例如,使用特殊字符),请使用 JSON 语法。

      提示

      选择信息以查看 Bash 和 JSON 编码示例。

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

      注意

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

    4. (可选)对于执行角色,指定一个 IAM 角色,该角色授予 Amazon ECS 容器代理代表您进行 Amazon API 调用的权限。此功能使用 Amazon ECS IAM 角色执行任务。有关更多信息,请参阅 Amazon Elastic Container Service 开发人员指南中的 Amazon ECS 任务执行 IAM 角色

    5. 作业角色配置中,请选择有权访问 Amazon API 的 IAM 角色。此功能使用 Amazon ECS IAM 角色执行任务。有关更多信息,请参阅 Amazon Elastic Container Service 开发人员指南中的任务的 IAM 角色

      注意

      此处仅显示具有 Amazon Elastic Container Service Task Role 信任关系的角色。有关为 Amazon Batch 作业创建 IAM 角色的更多信息,请参阅 Amazon Elastic Container Service 开发人员指南中的为任务创建 IAM 角色和策略

  16. 对于参数,选择添加参数以添加参数替换占位符作为和可选对。

  17. 环境配置部分:

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

    2. 对于内存,输入容器可用的内存限制。如果您的容器尝试使用超出您在此处指定的内存量,该容器将会被终止。此参数将映射到 Docker Remote API创建容器部分中的 Memory 以及 docker run--memory 选项。您必须为作业指定至少 4 MiB 内存。

      注意

      要最大限度地提高资源利用率,请为特定实例类型的作业确定内存优先级。有关更多信息,请参阅计算资源内存管理

    3. GPU 数量中,选择要为容器预留的 GPU 数量。

    4. (可选)对于环境变量,选择添加环境变量以名称-值对的形式添加环境变量。这些变量传递给容器。

    5. (可选)对于密钥,选择添加密钥,将密钥添加为名称-值对。这些密钥暴露在容器中。有关更多信息,请参阅 的 Job 定义参数 ContainerProperties 中的 secretOptions

  18. 选择下一页

  19. Linux 配置部分中:

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

    2. (可选)要授予作业容器对主机实例(类似于 root 用户)的更高权限,请向右拖动权限滑块。此参数将映射到 Docker Remote API创建容器部分中的 Privileged 以及 docker run--privileged 选项。

    3. (可选)开启启用 Init 处理以在容器内运行 init 进程。该进程转发信号和获得进程。

  20. (可选)在文件系统配置部分:

    1. 开启启用只读文件系统以移除对卷的写入权限。

    2. 共享内存大小中,输入 /dev/shm 卷的大小(以 MiB 为单位)。

    3. 最大交换大小中,输入容器可使用的总交换内存量(以 MiB 为单位)。

    4. Swappiness 中输入一个介于 0 和 100 之间的值,以指示容器的 swappiness 行为。如果不指定值且启用了交换,则值默认值为 60。有关更多信息,请参阅 的 Job 定义参数 ContainerProperties 中的 swappiness

    5. (可选)展开其他配置

    6. (可选)对于 Tmpfs,请选择添加 tmpfs 以添加 tmpfs 挂载。

    7. (可选)对于设备,选择添加设备以添加设备:

      1. 对于容器路径,指定容器实例中的路径以公开映射到主机实例的设备。如果将其留空,则在容器中使用主机路径。

      2. 对于主机路径,指定主机实例中设备的路径。

      3. 对于权限,选择要应用于设备的一个或多个权限。可用权限包括读取写入MKNOD

    8. (可选)对于卷配置,请选择添加卷以创建要传递到容器的卷列表。输入卷的名称源路径,然后选择添加卷。您也可以选择开启启用 EFS

    9. (可选)对于挂载点,请选择添加挂载点配置以添加数据卷的挂载点。您必须指定源卷和容器路径。这些挂载点会传递到容器实例上的 Docker daemon。您也可以选择将卷设为只读

    10. (可选)对于 Ulimits 配置,请选择添加 ulimit 为容器添加一个 ulimits 值。输入名称软限制硬限制值,然后选择添加 ulimit

  21. (可选)在日志记录配置部分:

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

      注意

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

    2. 选项中,选择添加选项以添加选项。输入名称-值对,然后选择添加选项

    3. 对于密钥,选择添加密钥。输入名称-值对,然后选择添加密钥以添加密钥。

      提示

      有关更多信息,请参阅 的 Job 定义参数 ContainerProperties 中的 secretOptions

  22. 选择下一页

  23. 对于作业定义查看,请查看配置步骤。如果需要进行更改,请选择 Edit(编辑)。完成后,选择 创建作业定义