本页面介绍了如何从 Cloud Life Sciences 迁移到 Batch。
2023 年 7 月 17 日,Google Cloud 宣布将弃用之前处于 Beta 版阶段的 Cloud Life Sciences。2025 年 7 月 8 日之后,该服务在 Google Cloud 上将不再可用。不过,Batch 已正式发布,是一个全面的继任产品,支持 Cloud Life Sciences 的所有用例。
详细了解 Batch、Cloud Life Sciences 和产品发布阶段。
Cloud Life Sciences 与 Batch
从 Cloud Life Sciences 迁移到 Batch 主要涉及了解如何将 Batch 用于当前通过运行 Cloud Life Sciences 流水线来执行的工作负载。
如需了解如何在 Batch 上执行 Cloud Life Sciences 工作负载,请参阅以下所有部分:
概览
Cloud Life Sciences 流水线描述了要执行的一系列操作(容器)以及用于执行容器的环境。
批量作业描述了包含一个或多个任务的数组以及执行这些任务的环境。您可以将作业的工作负载定义为要执行的一个或多个可运行对象(容器和/或脚本)的一个序列。作业的每个任务表示其可运行对象序列的一次执行。
Cloud Life Sciences 流水线可以表示为单任务批处理作业。
例如,以下示例描述了简单的 Cloud Life Sciences 流水线及其等效的批量作业:
Cloud Life Sciences 流水线 | 批量作业 |
---|---|
{ "actions": [ { "imageUri": "bash", "commands": [ "-c", "echo Hello, world!" ] } ] } |
{ "taskGroups" : [{ "taskSpec" : { "runnables" : [{ "container":{ "imageUri": "bash", "commands": [ "-c", "echo Hello, world!" ] } }] } }] } |
多任务批处理作业类似于复制的 Cloud Life Sciences 流水线。
与 Cloud Life Sciences 不同,Batch 允许您自动安排工作负载的多次执行。您可以通过定义任务数量来指示要为作业执行可运行对象序列的次数。当一个作业具有多个任务时,您可以通过在可运行对象中引用任务的索引来指定每个执行项的变化方式。此外,您还可以为作业的任务配置相对时间表,例如,是允许多个任务并行运行,还是要求任务按顺序运行,一次一个任务。Batch 管理作业任务的调度:当一个任务完成时,作业会自动启动下一个任务(如果有)。
有关示例,请参阅以下批量作业。此示例作业包含 100 个任务,这些任务在 10 个 Compute Engine 虚拟机 (VM) 实例上执行,因此在任何给定时间大约有 10 个任务并行运行。此示例作业中的每个任务仅执行一个可运行任务:一个脚本,用于输出一条消息和任务的索引(由预定义环境变量 BATCH_TASK_INDEX
定义)。
{
"taskGroups" : [{
"taskSpec" : {
"runnables" : [{
"script":{
"text": "echo Hello world! This is task ${BATCH_TASK_INDEX}."
}
}]
},
"taskCount": 100,
"parallelism": 10
}]
}
有时,您可以利用 Batch 的内置调度功能来简化涉及创建和监控多个类似 Cloud Life Sciences 流水线的 Workflows。
基本操作
本部分介绍了 Cloud Life Sciences 与 Batch 中的基本操作。
下表总结了 Cloud Life Sciences 和 Batch 的基本操作选项。
基本操作 | Cloud Life Sciences 选项 | 批处理选项 |
---|---|---|
执行工作负载。 |
|
|
查看您的所有工作负载。 |
|
|
查看工作负载的详细信息和状态。 |
|
|
停止和移除工作负载。 |
|
|
Cloud Life Sciences 和 Batch 的基本操作有几个关键区别。
首先,长时间运行的操作资源在 Batch 中的作用不同于在 Cloud Life Sciences 中。
Cloud Life Sciences 中的长时间运行的操作资源 (LRO) 是用于列出和查看流水线的主要资源。但是,Batch 和其他 Google Cloud API 中长时间运行的操作资源仅用于监控需要很长时间才能完成的请求的状态。具体而言,在 Batch 中,唯一会返回长时间运行的操作资源的请求是删除作业。
如需详细了解 Batch 的长时间运行的操作资源,请参阅 projects.locations.operations
REST 资源的 Batch API 参考文档。Batch 并不使用长时间运行的操作资源,而是可供您查看和删除工作负载的作业资源。
其次,以 Batch 形式查看工作负载的详细信息涉及的操作与 Cloud Life Sciences 不同。您可以查看作业,以了解其详细信息和状态。但是,每个作业的任务也有自己的详细信息和状态,您可以通过查看作业的任务列表和任务的详细信息来查看这些状态。
为了帮助您进一步了解 Cloud Life Sciences 与 Batch 的基本操作,以下部分提供了 Google Cloud CLI 命令示例和其中一些基本操作的 API 请求路径。
gcloud CLI 命令示例
对于 gcloud CLI,Cloud Life Sciences 命令以 gcloud beta lifesciences
开头,Batch 命令以 gcloud batch
开头。
如需查看示例,请参阅以下 gcloud CLI 命令。
Cloud Life Sciences 示例 gcloud CLI 命令:
运行流水线:
gcloud beta lifesciences pipelines run \ --project=PROJECT_ID \ --regions=LOCATION \ --pipeline-file=JSON_CONFIGURATION_FILE
获取长时间运行的操作的详细信息:
gcloud beta lifesciences operations describe OPERATION_ID
替换以下内容:
PROJECT_ID
:您的项目 ID。LOCATION
:流水线的位置。JSON_CONFIGURATION_FILE
:流水线的 JSON 配置文件。OPERATION_ID
:长时间运行的操作的标识符,由运行流水线的请求返回。
批量 gcloud CLI 命令示例:
创建和运行作业:
gcloud batch jobs submit JOB_NAME \ --project=PROJECT_ID \ --location=LOCATION \ --config=JSON_CONFIGURATION_FILE
查看任务详情:
gcloud batch jobs describe JOB_NAME \ --project=PROJECT_ID \ --location=LOCATION \
查看作业的任务列表:
gcloud batch tasks list \ --project=PROJECT_ID \ --location=LOCATION \ --job=JOB_NAME
查看任务的详细信息:
gcloud batch tasks describe TASK_INDEX \ --project=PROJECT_ID \ --location=LOCATION \ --job=JOB_NAME \ --task_group=TASK_GROUP
删除(和取消)作业:
gcloud batch jobs delete JOB_NAME \ --project=PROJECT_ID \ --location=LOCATION
替换以下内容:
API 请求路径示例
对于 API,Cloud Life Sciences 使用 lifesciences.googleapis.com
请求路径,Batch 使用 batch.googleapis.com
请求路径。
例如,请参阅以下 API 请求路径。与 Cloud Life Sciences 不同,Batch 没有 RPC API,只有一个 REST API。
Cloud Life Sciences 示例 API 请求路径:
运行流水线:
POST https://lifesciences.googleapis.com/v2beta/projects/PROJECT_ID/locations/LOCATION/pipelines:run
获取长时间运行的操作的详细信息:
GET https://lifesciences.googleapis.com/v2beta/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID
替换以下内容:
PROJECT_ID
:您的项目 ID。LOCATION
:流水线的位置。OPERATION_ID
:长时间运行的操作的标识符,由运行流水线的请求返回。
批处理示例 API 请求路径:
创建和运行作业:
POST https://batch.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/jobs?job_id=JOB_NAME
查看任务详情:
GET https://batch.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/jobs/JOB_NAME
查看作业的任务列表:
GET https://batch.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/jobs/JOB_NAME/taskGroups/TASK_GROUP/tasks
删除作业
DELETE https://batch.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/jobs/JOB_NAME
检查作业删除请求的状态:
GET https://batch.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID
替换以下内容:
IAM 角色和权限
本部分总结了 Cloud Life Sciences 和 Batch 的 Identity and Access Management 角色和权限之间的差异。如需详细了解任何角色及其权限,请参阅 IAM 基本和预定义角色参考文档。
下表介绍了 Cloud Life Sciences 用户所需的预定义角色及其权限。
Cloud Life Sciences 角色 | 权限 |
---|---|
以下任意一项:
|
|
项目的 Cloud Life Sciences Viewer (roles/lifesciences.viewer ) |
|
下表介绍了 Batch 的一些预定义角色及其权限。与 Cloud Life Sciences 不同,Batch 要求您向用户和作业服务帐号授予权限。如需详细了解 IAM 要求,请参阅 Batch 的前提条件。
用户的批处理角色 | 权限 |
---|---|
项目的 Batch Job Editor (roles/batch.jobsEditor ) |
|
项目的 Batch Job Viewer (roles/batch.jobsViewer ) |
|
作业服务帐号的 Service Account User (roles/iam.serviceAccountUser ) |
|
服务账号的批处理角色 | 权限 |
项目的 Batch Agent Reporter (roles/batch.agentReporter ) |
|
对应的特征
下表介绍了 Cloud Life Sciences 的功能、Batch 的等效功能,以及它们之间的差异的详细信息。
每个特征均由描述及其 JSON 语法表示。通过 API 访问 Batch 或通过 Google Cloud CLI 指定 JSON 配置文件时,您可以使用 JSON 语法。 但请注意,您还可以通过其他方法使用 Batch 功能,例如通过 Google Cloud 控制台字段、标志 gcloud CLI 和客户端库(具体说明请参阅 Batch 文档)。
如需详细了解各项功能及其 JSON 语法,请参阅以下内容:
对于 Cloud Life Sciences,请参阅有关
projects.locations.pipelines
REST 资源的 Cloud Life Sciences API 参考文档。对于 Batch,请参阅有关
projects.locations.jobs
REST 资源的 Batch API 参考文档。
Cloud Life Sciences 特性 | 批量特征 | 详细信息 |
---|---|---|
流水线 (pipeline ) |
作业 (job ) 及其任务 (taskGroups[] ) |
批量作业由包含一个或多个任务的数组组成,每个任务都会执行所有相同的可运行对象。 Cloud Life Sciences 流水线类似于包含一个任务的批处理作业。 但是,Cloud Life Sciences 没有关于任务(包含多个作业的作业)的等效概念,任务在某种程度上类似于流水线的重复。 如需详细了解作业和任务,请参阅 Batch 概览。 |
流水线的操作 (actions[] ) |
作业任务的可运行对象 (runnables[] ) |
Cloud Life Sciences 操作描述的是容器,但 Batch 可运行对象可以包含容器或脚本。 |
操作的凭据 (credentials ) |
表示容器可运行 |
在 Cloud Life Sciences 中,操作的凭据必须是包含用户名和密码键值对的 Cloud Key Management Service 加密字典。 在 Batch 中,可运行的容器的用户名和密码位于单独的字段中。这两个字段可以使用纯文本或 Secret Manager Secret 的名称指定。 |
操作:
|
环境:
可能的环境:
|
借助 Cloud Life Sciences,您可以为一项采用纯文本或加密字典格式的操作指定环境变量。
在 Batch 中,这类似于为可运行对象( 但是,Batch 还有更多用于指定环境变量的选项:
如需了解详情,请参阅使用环境变量。 |
用于运行流水线的请求的标签(请求正文中的 labels ) |
作业的标签(作业资源中的 labels ) |
与 Cloud Life Sciences 不同,Batch 不在创建新作业的请求中添加标签字段。对于 Batch,最接近的方式是使用仅与作业关联的标签。 Batch 具有多种类型的标签( |
流水线资源 (resources ) 的区域 (regions[] ) 和可用区 (zones[] ) |
为作业的资源位置政策 (locationPolicy ) 允许的位置 (allowedLocations ) |
在 Cloud Life Sciences 中,流水线在单个虚拟机上执行,您可以为该虚拟机指定所需的区域和/或可用区。 在 Batch 中,等效选项是作业允许的位置,您可以将其定义为一个或多个区域或可用区,并指定可以在哪些位置创建作业的虚拟机。 单个批处理作业的所有虚拟机都属于特定区域中存在的单个代管式实例组 (MIG);但是,各个虚拟机可能位于该区域的不同可用区。 值得注意的是,为作业指定允许的位置字段是可选操作,因为它与作业的位置是分开的。与作业的位置不同,允许的位置不会影响用于创建批量作业和存储作业元数据的位置。如需了解详情,请参阅批量位置。 |
获取流水线资源 (
|
查看作业的资源政策 (
|
在 Cloud Life Sciences 中,您可以配置用来运行流水线的(一个)虚拟机。 在 Batch 中,作业的资源分配政策 (
|
操作:
|
对于可运行对象:
|
Cloud Life Sciences 提供的这些便捷标志在 Batch 中是等效的,不过,这些标志是为每个可运行对象(可以包含脚本或容器)指定的,而不是为每个操作(容器)指定的。 |
操作:
|
选项 (options ),确保容器可运行 |
对于容器,可通过选项字段 ( |
操作:
|
无对应项 |
Batch 根据作业的日志政策 ( |
用于为某项操作屏蔽外部网络 (blockExternalNetwork ) 的选项 |
用于阻止容器可运行的外部网络 (blockExternalNetwork ) 的选项 |
用于为某项操作屏蔽外部网络的 Cloud Life Sciences 选项类似于用于为容器屏蔽外部网络的 Batch 选项。 Batch 还有许多其他网络选项,例如为作业的所有虚拟机屏蔽外部网络。如需了解详情,请参阅批量网络概览。 |
为操作装载 (mounts[] ) |
所有可运行对象的卷(taskSpec 中的 volumes[] )和容器的卷选项(container 中的 volumes[] ) |
在 Batch 中,您可以使用 此外,Batch 支持对容器可运行对象使用显式卷选项,方法是使用 如需详细了解如何将存储卷与 Batch 搭配使用,请参阅创建和运行使用存储卷的作业。 |
用于为操作启用 Cloud Storage FUSE (enableFuse ) 的选项 |
无对应项 |
Batch 负责装载您为作业指定的任何存储卷(例如 Cloud Storage 存储桶)。
因此,您无法启用任何装载工具(例如 Cloud Storage FUSE for Batch);不过,您可以根据需要使用 如需详细了解如何将 Cloud Storage 存储分区与 Batch 搭配使用,请参阅创建和运行使用存储卷的作业。 |
用于请求运行流水线的 Pub/Sub 主题 (pubSubTopic ) |
对于作业的通知配置 (
|
与 Cloud Life Sciences 相比,Batch 能够更自如地自定义状态更新。例如,当单个任务更改状态或仅当整个作业更改状态时,Batch 用户才能在 Pub/Sub 主题上收到通知。 |
工作流服务
如果您将工作流服务与 Cloud Life Sciences 搭配使用,则迁移过程还涉及配置工作流服务以便与 Batch 搭配使用。本部分总结了可与 Batch 搭配使用的工作流服务。除了本部分列出的工作流服务之外,Batch 还计划逐步支持更多的工作流服务。
Batch 支持 Workflows,这是 Google Cloud 提供的工作流服务。如果要将 Workflows 与 Batch 搭配使用,请参阅使用 Workflows 运行批处理作业。除此之外,下表介绍了可用于 Cloud Life Sciences 的其他工作流服务,这些服务可与 Batch 搭配使用。下表列出了将每个工作流服务与 Batch(而不是 Cloud Life Sciences)搭配使用的主要区别,以及有关如何详细了解如何使用每个工作批次的详细信息。
工作流服务 | 主要差异 | 详细信息 |
---|---|---|
Nextflow |
如需将 Cloud Life Sciences 与 Batch 搭配使用的 Nextflow 配置文件,请进行以下更改:
|
如需详细了解如何将 Batch 与 Nextflow 搭配使用,请参阅 Batch 教程或 Nextflow 教程。如需详细了解配置选项,请参阅 Nextflow 文档。 |
克伦威尔 |
如需将 Cromwell 配置文件与 Batch API 一起使用 v2beta Cloud Life Sciences API,请进行以下更改:
|
如需详细了解如何将 Batch 与 Cromwell 搭配使用,请参阅适用于 Batch 的 Cromwell 文档和适用于 Batch 的 Cromwell 教程。 |
dSub |
如需将 Cloud Life Sciences API 中的 dsub 流水线与 Batch 搭配使用,请进行以下更改:
|
如需详细了解如何将 Batch 与 dsub 搭配使用,请参阅适用于 Batch 的 dsub 文档。 |