AWS Batch
用户指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

AWS Batch 入门

通过在 AWS Batch 控制台中创建任务定义、计算环境和任务队列来开始使用 AWS Batch。

AWS Batch 首次运行向导为您提供了创建计算环境和作业队列并提交示例 hello world 作业的选项。如果您具有要在 AWS Batch 中启动的 Docker 镜像,则可以使用此映像创建作业定义并改为将此定义提交到您的队列。

重要

在开始之前,请确保您已完成AWS Batch 的设置中的步骤,并确保您的 AWS 用户具有所需的权限 (管理员用户无需担心权限问题)。有关更多信息,请参阅 IAM 用户指南 中的创建您的第一个 IAM 管理员用户和组

步骤 1:定义作业

在此部分,您选择定义您的作业定义或在没有作业定义的情况下继续创建计算环境和作业队列。

配置作业选项

  1. https://console.amazonaws.cn/batch/home#/wizard 中打开 AWS Batch 控制台首次运行向导。

  2. 要创建 AWS Batch 任务定义、计算环境和任务队列,然后提交您的任务,请选择使用 Amazon EC2。要仅创建计算环境和作业队列而不提交作业,请选择 No job submission

  3. 如果您选择创建作业定义,请完成首次运行向导下面的四个部分:Job run-timeEnvironmentParametersEnvironment variables,然后选择 Next。如果您不创建作业定义,请选择 Next 并转到步骤 2:配置计算环境和作业队列

指定作业运行时间

  1. 如果您要创建新的作业定义,对于 Job definition name,请指定作业定义的名称。

  2. (可选)对于任务角色,您可以指定一个 IAM 角色,该角色为任务中的容器提供使用 AWS API 的权限。此功能使用 Amazon ECS IAM 角色来执行任务功能。有关此功能的更多信息(包括配置先决条件),请参阅 Amazon Elastic Container Service Developer Guide 中的适用于任务的 IAM 角色

    注意

    此处仅显示具有 Amazon Elastic Container Service 任务角色信任关系的角色。有关为 AWS Batch 任务创建 IAM 角色的更多信息,请参阅 Amazon Elastic Container Service Developer Guide 中的为任务创建 IAM 角色和策略

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

    注意

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

    • 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)进行进一步限定。

为环境指定资源

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

    注意

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

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

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

  4. 对于 Job attempts,指定尝试作业的最大次数 (在尝试失败的情况下)。有关更多信息,请参阅自动作业重试

参数

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

  1. 对于 Key,指定参数的键。

  2. 对于 Value,指定参数的值。

指定环境变量

您可以选择性地指定要传递到您的作业容器的环境变量。此参数将映射到 Docker Remote API创建容器部分中的 Env 以及 docker run--env 选项。

重要

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

  1. 对于 Key,指定环境变量的键。

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

步骤 2:配置计算环境和作业队列

计算环境是一种引用计算资源(Amazon EC2 实例)的方式:告知 AWS Batch 如何配置和自动启动实例的设置和限制。您将作业提交到一个作业队列,该队列将一直存储作业,直至 AWS Batch 计划程序在计算环境中的计算资源上运行作业。

注意

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

配置您的计算环境类型

  1. 对于 Compute environment name,为您的计算环境指定唯一名称。

  2. 对于服务角色,选择创建新角色或使用现有角色,后者允许 AWS Batch 服务代表您调用所需的 AWS API。有关更多信息,请参阅AWS Batch 服务 IAM 角色。如果您选择创建新角色,则将为您创建所需的角色 (AWSBatchServiceRole)。

  3. 对于 EC2 实例角色,选择创建新角色或使用现有角色;通过角色,为计算环境创建的 Amazon ECS 容器实例可代表您调用所需的 AWS API。有关更多信息,请参阅Amazon ECS 实例角色。如果您选择创建新角色,则将为您创建所需的角色 (ecsInstanceRole)。

配置实例

  1. 对于预配置模型,选择按需以启动 Amazon EC2 按需实例,或选择 Spot 以使用 Amazon EC2 Spot 实例。

  2. 在选择使用 Amazon EC2 Spot 实例的情况下:

    1. 对于 Maximum bid price,选择在启动实例之前与该实例类型的按需价格进行比较时 Spot 实例价格必须达到的最大百分比。例如,如果出价百分比为 20%,则 Spot 价格必须低于该 EC2 实例的当前按需价格的 20%。您始终支付最低 (市场) 价格,并且绝不会高于您的最大百分比。

    2. 对于 Spot 队组角色,选择创建新角色或使用要应用于您的 Spot 计算环境的现有 Amazon EC2 Spot 队组 IAM 角色。如果您选择创建新角色,则将为您创建所需的角色 (aws-ec2-spot-fleet-role)。有关更多信息,请参阅Amazon EC2 Spot 队列角色

  3. 对于允许的实例类型,选择可启动的 Amazon EC2 实例类型。您可以指定实例系列以启动这些系列中的任何实例类型(例如,c5c5np3),也可以指定系列中的特定大小(例如,c5.8xlarge)。请注意,裸机实例类型不包括在实例系列中(例如,c5 不包括 c5.metal)。 您也可以选择 optimal 以(从最新的 C、M 和 R 实例系列中)动态选取符合作业队列要求的实例类型。

    注意

    在创建一个计算环境时,为该计算环境选择的实例类型必须共享同一架构。例如,您不能在同一个计算环境中混用 x86 和 ARM 实例。

  4. 对于 Minimum vCPUs (最小 vCPU 数),选择您的计算环境应保留的 EC2 vCPU 的最小数目,而无论作业队列需求如何。

  5. 对于 Desired vCPUs,请选择您的计算环境在启动时应使用的 EC2 vCPU 数量。当任务队列需求增大时,AWS Batch 会增加计算环境中所需的 vCPU 数并添加 EC2 实例(最多可达最大 vCPU 数);当需求减少时,AWS Batch 会减少计算环境中所需的 vCPU 数并删除实例(减少至最小 vCPU 数)。

  6. 对于 Maximum vCPUs,选择您的计算环境可以向外扩展到的 EC2 vCPU 的最大数目,而无论作业队列需求如何。

设置您的网络

计算资源将在您在此处指定的 VPC 和子网中启动。这使您能够控制 AWS Batch 计算资源的网络隔离。

重要

need access to communicate with the Amazon ECS service endpoint. This can be through an interface VPC endpoint or through your having public IP addresses.

For more information about interface VPC endpoints, see .

If you do not have an interface VPC endpoint configured and your do not have public IP addresses, then they must use network address translation (NAT) to provide this access. For more information, see NAT Gateways in the Amazon VPC 用户指南. For more information, see Tutorial: Creating a VPC with Public and Private Subnets for Your .

  1. 对于 VPC Id,选择在其中启动实例的 VPC。

  2. 对于 Subnets,选择选定 VPC 中应托管实例的子网。默认情况下,将选择选定 VPC 中的所有子网。

  3. 对于 Security groups,选择要附加到实例的安全组。默认情况下,将选择您的 VPC 的默认安全组。

为您的实例添加标签

您可以选择将键/值对标签应用于计算环境中启动的实例。例如,您可以指定 "Name": "AWS Batch Instance - C4OnDemand" 作为标签,以便计算环境中的每个实例均具有此名称(这对于在 Amazon EC2 控制台中识别您的 AWS Batch 实例很有用)。默认情况下,计算环境名称用于为您的实例添加标签。

  1. 对于 Key,指定标签的键。

  2. 对于 Value,指定标签的值。

设置作业队列

您将作业提交到一个作业队列,该队列将一直存储作业,直至 AWS Batch 计划程序在计算环境中的计算资源上运行作业。

  • 对于 Job queue name,请为您的作业队列选择唯一的名称。

查看和创建

Connected compute environments for this job queue 部分显示您的新计算环境与您的新作业队列关联及其顺序。稍后,您可以将其他计算环境与作业队列关联。作业计划程序使用计算环境顺序来确定哪些计算环境应执行给定作业。计算环境必须先处于 VALID 状态,然后您才能将其与作业队列关联。您最多可以将三个计算环境与一个作业队列关联。

  • 检查计算环境和作业队列配置,并选择 Create 以创建计算环境。