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 のパスは、次のように変更されました。

  • すべてのパスで genomics.googleapis.com ではなく lifesciences.googleapis.com を使用するようになりました。
  • Cloud Life Sciences API を呼び出す場合は、すべてのパスで us-central1 などの Google Cloud のロケーションを指定することが必要になりました。

次に例を示します。

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 alpha genomics ではなく gcloud beta lifesciences を使用するようになりました。次に例を示します。

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 は、Cloud Genomics v2alpha1 によって使用される genomics 名前空間の代わりに、lifesciences 名前空間の次の Identity and Access Management(IAM) 役割と権限を使用します。名前空間の変更に加えて、ロール roles/lifesciences.workflowsRunnerroles/genomics.pipelinesRunner に、権限 lifesciences.workflows.rungenomics.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 オブジェクトのフィールドになりました。次の例は、ignoreExitStatus フラグを Action に設定している場合に、リクエストを移行する方法を示しています。

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 フィールドを取得しなくなりました。代わりに、オペレーションがリクエスト URL から Google Cloud のプロジェクト ID を検出します。

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

operations.getoperations.list のレスポンス

v2alpha1 で、projects.locations.operations.get メソッドと projects.locations.operations.list メソッドがオペレーション名に Google Cloud プロジェクト ID を含むレスポンスを返しました。v2beta では、レスポンスのオペレーション名にプロジェクト ID ではなく Google Cloud プロジェクト番号が含まれています。 プロジェクト 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 またはプロジェクト番号を使用できます。ただし、レスポンスには常にプロジェクト番号が含まれます。