迁移到 Cloud Life Sciences v2beta

Google Genomics 现已更名为 Cloud Life Sciences。本页面介绍了如何从 v2alpha1 版 Google Genomics 迁移到 v2beta 版 Cloud Life Sciences。

Cloud Life Sciences 区域化服务

Google Genomics 是一项全球性服务,无法在特定的 Google Cloud 位置运行。Cloud Life Sciences API 是一项区域化服务,可让您满足数据的本地化需求。 如果您选择了运行 Cloud Life Sciences API 的位置,您运行的操作的元数据会存储在该位置。

如需了解如何向 Cloud Life Sciences API 发出请求以及如何指定位置,请参阅 REST 和 RPC 路径

REST 和 RPC 路径

我们对 Cloud Life Sciences API 的 REST 和 RPC 路径进行了以下更改:

  • 现在,所有路径都使用 lifesciences.googleapis.com 而不是 genomics.googleapis.com
  • 现在,所有路径都要求您在调用 Cloud Life Sciences API 时指定 Google Cloud 位置,例如 us-central1

例如:

v2alpha1 Google Genomics

GET https://genomics.googleapis.com/v2alpha1/projects/PROJECT_ID/operations/OPERATION_ID

v2beta Cloud Life Sciences API:

GET https://lifesciences.googleapis.com/v2beta/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID

批量请求必须发送到区域端点:

POST https://LOCATION-lifesciences.googleapis.com/batch

Google Cloud CLI 更改

Cloud Life Sciences gcloud CLI 命令现在使用 gcloud beta lifesciences 代替了 gcloud alpha genomics。例如:

v2alpha1 Google Genomics

gcloud alpha genomics operations describe OPERATION_ID

v2beta Cloud Life Sciences API:

gcloud beta lifesciences operations describe OPERATION_ID

--cpu--memory 标志已经移除。请改用 --machine-type 标志。当您选择机器类型时,您可以指定内存容量和 CPU 核心数。

IAM 更改

Cloud Life Sciences 在 lifesciences 命名空间,而不是 Cloud Genomics v2alpha1 使用的 genomics 命名空间中使用以下 Identity and Access Management(IAM)角色和权限。除了命名空间更改之外,角色 roles/lifesciences.workflowsRunner 还替换了 roles/genomics.pipelinesRunner,权限 lifesciences.workflows.run 替换了 genomics.pipelines.run

v2alpha1 Google Genomics

角色 权限
roles/genomics.admin
  • genomics.*
roles/genomics.editor
  • genomics.datasets.create
  • genomics.datasets.delete
  • genomics.datasets.get
  • genomics.datasets.list
  • genomics.datasets.update
  • genomics.operations.*
roles/genomics.viewer
  • genomics.datasets.get
  • genomics.datasets.list
  • genomics.operations.get
  • genomics.operations.list
流水线角色 权限
roles/genomics.pipelinesRunner
  • pipelines.run
  • projects.operations.cancel
  • projects.operations.get
  • projects.operations.list

v2beta Cloud Life Sciences API:

角色 权限
roles/lifesciences.admin
  • lifesciences.*
roles/lifesciences.editor
  • lifesciences.workflows.run
  • lifesciences.operations.cancel
  • lifesciences.operations.get
  • lifesciences.operations.list
roles/lifesciences.viewer
  • lifesciences.operations.get
  • lifesciences.operations.list
工作流角色 权限
roles/lifesciences.workflowsRunner
  • lifesciences.workflows.run
  • lifesciences.operations.cancel
  • lifesciences.operations.get
  • lifesciences.operations.list

迁移请求和响应

将 Google Genomics v2alpha1 请求转换为 Cloud Life Sciences API v2beta 请求主要涉及两个环节:替换字段名称,以及更改请求和响应中的字段结构。

以下每个部分均介绍了一个 Cloud Life Sciences API 对象以及该对象在 Google Genomics v2alpha1 和 Cloud Life Sciences API v2beta 之间有何不同。

Action

name 字段已更改为 containerName

Google Genomics v2alpha1Cloud Life Sciences v2beta
{
  "name": string
  ...
}
{
  "containerName": string
  ...
}

以前,flags 字段是一个枚举,可让您在 Flag 对象中指定值。这些值现在是 Action 对象中的字段。以下示例显示了在 Action 中设置 ignoreExitStatus 标志时如何迁移请求:

Google Genomics v2alpha1Cloud Life Sciences v2beta
{
  ...
  "flags": [
    "ignoreExitStatus"
  ]
  ...
}
{
  ...
  "ignoreExitStatus": true
  ...
}

Event

机器可读的事件详情现在作为特定消息类型存储在类型为 oneof(而非 protobuf.Any)。基础消息类型没有发生变化。

以下示例展示了如何通过配置 DelayedEvent 来转换请求:

Google Genomics v2alpha1Cloud Life Sciences v2beta
{
  "timestamp": string,
  "description": string,
  "details": {
    "@type": string,
    field1: delayed
  }
}
{
  "timestamp": string,
  "description": string,
  "delayed": {
    "cause": string,
    "metrics": [
      string
    ]
  }
}

Network

name 字段已更改为 network

Google Genomics v2alpha1Cloud Life Sciences v2beta
{
  "network": {
    "name": string
  }
}
{
  "network": {
    "network": string
  }
}

Resources

Resources 对象不再占用 projectId 字段;该操作会检测请求网址中的 Google Cloud 项目 ID。

Google Genomics v2alpha1Cloud Life Sciences v2beta
{
  "projectId": string,
  "regions": [
    string
  ],
  ...
}
{
  "regions": [
    string
  ],
  ...
  "defaultContainerRegistryUri": string
}

operations.getoperations.list 响应

在 v2alpha1 中,projects.locations.operations.getprojects.locations.operations.list 方法返回一个在操作名称中包含 Google Cloud 项目 ID 的响应。在 v2beta 中,响应中的操作名称包含 Google Cloud 项目编号,而不包含项目 ID。如需了解项目 ID 和项目编号之间的区别,请参阅创建和管理项目

Google Genomics v2alpha1Cloud Life Sciences v2beta

projects/PROJECT_ID/operations/OPERATION_ID

projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID

向 Cloud Life Sciences API 提交请求时,使用项目 ID 或项目编号均可。但是,响应始终包含项目编号。