Batch 使用入门

本页面介绍了如何开始使用 Batch for Google Cloud。

概览

Batch 是一项全代管式服务,可用于对 Google Cloud 资源进行批处理工作负载的调度、排队和执行。Batch 可代表您预配资源和管理容量,从而支持批量工作负载。

使用 Batch 时,您无需依次配置和管理第三方作业调度程序,预配和取消预配资源,也不必逐一请求资源。如需运行作业,您需要为工作负载指定资源,然后 Batch 获取资源并将作业加入队列以供执行。Batch 提供与其他 Google Cloud 服务的原生集成,可帮助您安排、执行、存储和分析批量作业,以便您专注于提交作业和使用结果。

Batch 包含以下组件:

  • 作业:一个调度程序,用于运行一组任务并在没有用户交互的情况下完成,通常用于计算工作负载。例如,作业可以是单个 Shell 脚本,也可以是复杂的多部分计算。

    作业通过一项或多项称为“任务”的专用操作来执行。每个 Batch 作业都由一个或多个任务数组组成,所有任务都运行相同的可运行,即作业的可执行脚本和容器。作业的任务可以在作业的资源上并行运行或依序运行。

  • 任务:作为作业的一部分定义并在作业运行时执行的程序化操作。每个任务都是作业的任务组的一部分。作业的可运行作业由作业中的每个任务运行。

  • 资源:运行作业所需的基础架构。每个批量作业都会根据作业的指定要求和位置,在 Compute Engine 虚拟机 (VM) 实例的区域代管式实例组 (MIG) 上运行。如果指定,则作业还可能使用其他计算资源(如 GPU)或额外的读/写存储资源(如本地 SSD 或 Cloud Storage 存储桶)。决定为作业预配的虚拟机数量的一些因素包括每项任务所需的计算资源和作业的并行性:您是希望任务在一个虚拟机上依序运行,还是同时在多个虚拟机上运行。

总而言之,借助 Batch,您可以创建和运行每个作业,这些作业会自动预配并利用执行其任务所需的资源。

价格

使用 Batch 无需额外费用。您只需支付执行作业所需的底层资源的费用。

如需详细了解与 Batch 相关的费用,以及如何过滤 Cloud Billing 报告以查看 Batch 费用,请参阅价格

限制

Batch 存在以下限制:

  • 您不能超过项目的批量配额和限制
  • 每个作业只能指定一个机器类型,该机器类型可以是预定义的,也可以是自定义的。
  • 如需为您的作业使用特定的虚拟机映像,您必须使用实例模板创建作业
  • 您不能为每个作业指定多个任务组。所有作业只有一个名为 group0 的任务组。

前提条件

如需开始使用 Batch,请完成以下前提条件:

  1. 如果您的项目以前没有使用过 Batch,请为您的项目启用 Batch
  2. 为每位新用户设置 Batch

为项目启用 Batch

如需开始对项目使用 Batch,请执行以下操作:

  1. 在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目

    转到“项目选择器”

  2. 确保您的 Google Cloud 项目已启用结算功能。了解如何检查项目是否已启用结算功能

  3. 确保您的项目已启用 Batch:

    1. 使用 Google Cloud 控制台或 Google Cloud CLI 启用 Batch API。

      控制台

      启用 Batch, Compute Engine, and Cloud Logging API。

      启用 API

      gcloud

      Enable the Batch, Compute Engine, and Cloud Logging APIs:

      gcloud services enable batch.googleapis.comcompute.googleapis.comlogging.googleapis.com

    2. 为了确保每个作业的服务帐号具有必要的权限,以允许 Batch 服务代理为作业创建和访问资源,请让您的管理员将以下 IAM 角色授予您的项目用于 Batch 作业的任何服务帐号。

      每个作业默认使用的服务帐号是 Compute Engine 默认服务帐号,但您也可以自定义作业使用的服务帐号

      • 项目的 Batch Agent (Reporter) (roles/batch.agentReporter)
      • 允许作业访问 Cloud Storage 存储桶:对该存储桶使用 Storage Admin (roles/storage.admin)
      • 让作业在 Cloud Logging 中生成日志:对项目写入日志 (roles/logging.logWriter)

      如需详细了解如何向服务帐号授予角色,请参阅限制服务帐号管理对服务帐号的访问权限

    3. (无需执行任何操作。)请注意,创建批量作业后,系统会自动为您的项目使用以下名称创建 Batch 服务代理(Google 代管式服务帐号):

      service-PROJECT_NUMBER@gcp-sa-cloudbatch.iam.gserviceaccount.com
      

      PROJECT_NUMBER 替换为您的项目的项目编号

      Batch 服务代理会自动被授予 Google Batch Service Agent (roles/batch.serviceAgent) IAM 角色。您的项目需要使用 此配置才能使用 Batch。

      如需了解详情,请参阅服务代理

为新用户设置 Batch

如需开始以用户身份使用 Batch,请执行以下操作:

  1. 如需获取使用 Batch 所需的权限,请让管理员授予您项目所需的 IAM 角色。请参阅每项任务的文档,了解其所需权限。

    例如,如果您想要通过创建基本作业来学习如何使用 Batch,请考虑为以下任务请求角色:

    • 如需创建作业,请执行以下操作:
    • 列出和描述作业:项目的批量作业编辑器 (roles/batch.jobsEditor) 或批量作业查看者 (roles/batch.jobsViewer)
    • 查看作业日志:项目的日志查看器 (roles/logging.viewer)
    • 删除作业:针对项目的批量作业编辑器 (roles/batch.jobsEditor)

    如需详细了解如何授予角色,请参阅管理访问权限

  2. 如果要使用 Batch 的命令行示例,请执行以下操作来设置 Google Cloud CLI。详细了解 Google Cloud CLI 的身份验证

    1. 安装 Google Cloud CLI,然后通过运行以下命令初始化 Google Cloud CLI:

      gcloud init

    2. 建议:使用 gcloud config set project 命令设置默认项目:

      gcloud config set project PROJECT_ID
      

      PROJECT_ID 替换为您的项目的项目 ID

  3. 如果要使用 Batch 的 API 示例或客户端库示例,请参阅批量验证

获取支持

您可以在 Cloud 论坛中与社区讨论 Batch。

如果您在使用 Batch 时遇到问题,请参阅问题排查文档。

如需获得 Batch 支持或提供反馈,请使用以下资源:

  • 对于 Google Cloud 的结算问题,请联系结算支持团队

  • 如果您有付费支持套餐,请直接与 Google Cloud 支持团队联系以解决 Batch 相关问题。

    Google Cloud 提供多种支持套餐以满足不同的需要,例如全天候支持、电话支持以及技术支持经理对接。如需了解详情,请参阅 Google Cloud 支持

  • 如需为 Batch 提供任何反馈或功能请求,或者要报告 Batch 的问题(不含付费支持套餐),请点击 Send feedback 按钮(位于每个 Batch 文档页面的开头和结尾)。 然后选择以下其中一项:

    • 对于与 Batch 文档相关的反馈,请选择“文档反馈”。
    • 对于与 Batch 相关的所有其他反馈,请选择“产品反馈”。

后续步骤