本頁說明如何從 Cloud Life Sciences 遷移至 Batch。
Google Cloud 宣布 Cloud Life Sciences 已於 2023 年 7 月 17 日淘汰,並於 2025 年 7 月 8 日停用。不過,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 管道會說明要執行的動作 (容器) 序列,以及執行容器的環境。
Batch 工作會說明一或多個工作陣列,以及執行這些工作的環境。您可將工作的工作負載定義為一或多個要執行的可執行項目 (容器和/或指令碼) 序列。工作中的每個工作都代表可執行項目序列的一次執行作業。
Cloud Life Sciences 管道可以表示為單一工作 Batch 作業。
舉例來說,下列範例說明簡單的 Cloud Life Sciences 管道,以及對應的 Batch 工作:
Cloud Life Sciences 管道 | 批次工作 |
---|---|
{ "actions": [ { "imageUri": "bash", "commands": [ "-c", "echo Hello, world!" ] } ] } |
{ "taskGroups" : [{ "taskSpec" : { "runnables" : [{ "container":{ "imageUri": "bash", "commands": [ "-c", "echo Hello, world!" ] } }] } }] } |
多項工作的 Batch 工作與複製的 Cloud Life Sciences 管道類似。
與 Cloud Life Sciences 不同,Batch 可自動排定工作負載的多項執行作業。您可定義工作數,指出要執行工作可執行序列的次數。如果工作有多項任務,請在可執行項目中參照任務的索引,指定每次執行作業的差異。此外,您也可以設定工作任務的相對時間表,例如是否允許並行執行多項工作,或要求依序一次執行一項工作。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
}]
}
如果工作流程涉及建立及監控多個類似的 Cloud Life Sciences 管道,有時可利用 Batch 內建的排程功能簡化流程。
基本操作
本節說明 Cloud Life Sciences 與 Batch 的基本作業。
下表摘要說明 Cloud Life Sciences 和 Batch 的基本作業選項。
基本操作 | Cloud Life Sciences 選項 | 批次選項 |
---|---|---|
執行工作負載。 |
|
|
查看所有工作負載。 |
|
|
查看工作負載的詳細資料和狀態。 |
|
|
停止並移除工作負載。 |
|
|
Cloud Life Sciences 和 Batch 的基本作業有幾項主要差異。
首先,長時間執行的作業資源在 Batch 中的角色,與在 Cloud Life Sciences 中的角色不同。Cloud Life Sciences 中的長時間執行作業資源 (LRO) 是用於列出及查看管道的主要資源。不過,Batch 和其他 API 中的長期執行作業資源 Google Cloud ,僅用於監控需要長時間才能完成的要求狀態。具體來說,在 Batch 中,只有刪除作業的要求會傳回長時間執行的作業資源。如要進一步瞭解 Batch 的長時間執行作業資源,請參閱 Batch API 參考說明文件中的 projects.locations.operations
REST 資源。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
:長時間執行作業的 ID,這是要求執行管道時傳回的 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
:長時間執行作業的 ID,這是要求執行管道時傳回的 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 的身分與存取權管理角色和權限差異。如要進一步瞭解任何角色及其權限,請參閱 IAM 基本和預先定義的角色參考資料。
下表說明 Cloud Life Sciences 使用者需要的預先定義角色和權限。
Cloud Life Sciences 角色 | 權限 |
---|---|
下列任一項目:
|
|
專案的 Cloud Life Sciences 檢視者 (roles/lifesciences.viewer ) |
|
下表說明 Batch 的部分預先定義角色及其權限。與 Cloud Life Sciences 不同,Batch 會要求您授予使用者和服務帳戶作業權限。如要進一步瞭解 IAM 規定,請參閱「Batch 的必要條件」。
批次指派使用者角色 | 權限 |
---|---|
專案的「批次工作編輯者」 (roles/batch.jobsEditor ) |
|
專案的批次工作檢視者 (roles/batch.jobsViewer ) |
|
工作服務帳戶的服務帳戶使用者 (roles/iam.serviceAccountUser ) |
|
服務帳戶的批次角色 | 權限 |
專案的「批次工作代理程式回報者」 (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,請參閱 Cloud Life Sciences API 參考說明文件中的
projects.locations.pipelines
REST 資源。如要瞭解 Batch,請參閱 Batch API 參考說明文件,瞭解
projects.locations.jobs
REST 資源。
Cloud Life Sciences 功能 | 批次功能 | 詳細資料 |
---|---|---|
管道 (pipeline ) |
工作 (job ) 和工作中的任務 (taskGroups[] ) |
Batch 工作是由一或多個任務組成的陣列,每個任務都會執行所有相同的可執行檔。Cloud Life Sciences 管道類似於只有一項工作的 Batch 工作。不過,Cloud Life Sciences 沒有 (具有多項) 工作任務的對等概念,這有點類似管道的重複作業。 如要進一步瞭解工作和工作,請參閱 Batch 總覽。 |
管道的動作 (actions[] ) |
工作任務的可執行項目 (runnables[] ) |
Cloud Life Sciences 動作會說明容器,但 Batch 可執行檔可以包含容器或指令碼。 |
動作的憑證 (credentials ) |
可執行的容器: |
在 Cloud Life Sciences 中,動作的憑證必須是 Cloud Key Management Service 加密的字典,其中包含使用者名稱和密碼鍵/值組合。 在 Batch 中,容器可執行檔的使用者名稱和密碼位於不同欄位。這兩個欄位都可以指定純文字,或 Secret Manager 密鑰的名稱。 |
動作:
|
環境:
可能環境:
|
Cloud Life Sciences 可讓您指定動作的環境變數,格式為純文字或加密字典。在 Batch 中,這類似於讓可執行檔 ( 不過,Batch 也提供更多指定環境變數的選項:
詳情請參閱「使用環境變數」。 |
要求執行管道的標籤 (要求主體中的 labels ) |
工作的標籤 (工作資源中的 labels ) |
與 Cloud Life Sciences 不同,Batch 不會在建立新工作的要求中加入標籤欄位。如要使用類似 Batch 的功能,最接近的選項是使用僅與工作相關聯的標籤。 Batch 有多種標籤 ( |
管道資源的區域 (regions[] ) 和可用區 (zones[] ) (resources ) |
職缺資源位置政策 (locationPolicy ) 的允許位置 (allowedLocations ) |
在 Cloud Life Sciences 中,管道會在單一 VM 上執行,您可以指定所需的區域和/或可用區。 在 Batch 中,對應的選項是工作的允許位置,您可以將其定義為一或多個區域或可用區,並指定可建立工作 VM 的位置。單一 Batch 作業的所有 VM 都屬於特定區域中的單一代管執行個體群組 (MIG),但個別 VM 可能位於該區域的不同可用區。 請注意,職缺的允許地點欄位為選填,因為這與職缺地點不同。與工作位置不同,允許的位置不會影響用於建立 Batch 工作和儲存工作中繼資料的位置。詳情請參閱「批次位置」。 |
管道的資源 (
|
作業的資源政策 (
|
在 Cloud Life Sciences 中,您可以設定管道執行的 VM (一個)。 在 Batch 中,您可以在工作的資源分配政策 (
|
動作:
|
可執行項目:
|
Cloud Life Sciences 的各種便利旗標在 Batch 中都對應相同功能,但這些旗標是為每個可執行項目 (可包含指令碼或容器) 指定,而不是為每個動作 (容器) 指定。 |
動作:
|
可執行容器的選項 (options ) |
Batch 支援這些 Cloud Life Sciences 選項 (和其他選項),方法是透過容器可執行檔的選項欄位 ( |
動作:
|
沒有對應項目 |
Batch 會預先擷取映像檔,並根據工作記錄政策 ( |
禁止對外網路 (blockExternalNetwork ) 的動作 |
封鎖容器可執行檔的外部網路 (blockExternalNetwork ) 選項 |
Cloud Life Sciences 的選項可封鎖動作的外部網路,與 Batch 的選項類似,可封鎖容器的外部網路。 Batch 還有許多其他網路選項,例如封鎖所有工作 VM 的外部網路。詳情請參閱批次網路總覽。 |
掛接 (mounts[] ) 動作 |
所有可執行檔的磁碟區 (volumes[] in taskSpec ) 和容器的磁碟區選項 (volumes[] in container ) |
在 Batch 中,您可以使用 此外,Batch 支援在容器可執行檔上使用 如要進一步瞭解如何搭配 Batch 使用儲存空間磁碟區,請參閱「建立及執行使用儲存空間磁碟區的作業」。 |
啟用動作的 Cloud Storage FUSE (enableFuse ) 選項 |
沒有對應項目 |
Batch 會處理您為工作指定的任何儲存空間磁碟區 (例如 Cloud Storage bucket) 的掛接作業。因此,您不會為 Batch 啟用任何掛接工具 (例如 Cloud Storage FUSE),但可以使用 如要進一步瞭解如何搭配使用 Cloud Storage bucket 與 Batch,請參閱「建立及執行使用儲存空間磁碟區的作業」。 |
用於執行管道要求的 Pub/Sub 主題 (pubSubTopic ) |
工作的通知設定 (
|
與 Cloud Life Sciences 相比,Batch 可讓您更進一步自訂狀態更新。舉例來說,當個別工作變更狀態時,或只有在整體工作變更狀態時,Batch 使用者都可以在 Pub/Sub 主題上收到通知。 |
工作流程服務
如果您使用 Cloud Life Sciences 的工作流程服務,遷移程序也包括設定工作流程服務,使其能與 Batch 搭配運作。本節將摘要說明可搭配 Batch 使用的工作流程服務。
Batch 支援 Workflows,這是 Google Cloud的工作流程服務。如要搭配使用 Workflows 和 Batch,請參閱「使用 Workflows 執行 Batch 工作」。否則,下表說明您可能用於 Cloud Life Sciences 的其他工作流程服務,這些服務也適用於 Batch。下表列出使用 Batch 而非 Cloud Life Sciences 時,各工作流程服務的主要差異,以及如何進一步瞭解如何搭配使用各項服務與 Batch。
工作流程服務 | 主要差異 | 詳細資料 |
---|---|---|
Cromwell |
如要改用 Batch API,並搭配 v2beta 版 Cloud Life Sciences API 使用 Cromwell 設定檔,請進行下列變更:
|
如要進一步瞭解如何搭配使用 Batch 和 Cromwell,請參閱 Batch 適用的 Cromwell 說明文件和 Batch 適用的 Cromwell 教學課程。 |
dsub |
如要改用 Batch 執行 Cloud Life Sciences 的 dsub 管道,請進行下列變更:
|
如要進一步瞭解如何搭配使用 Batch 與 dsub,請參閱 Batch 的 dsub 說明文件。 |
Nextflow |
如要改用 Batch 的 Cloud Life Sciences Nextflow 設定檔,請進行下列變更:
|
如要進一步瞭解如何搭配使用 Batch 與 Nextflow,請參閱 Batch 教學課程或 Nextflow 教學課程。如要進一步瞭解設定選項,請參閱 Nextflow 說明文件。 |
Snakemake |
如要使用 Snakemake 管道搭配 Batch API,透過 v2beta 版 Cloud Life Sciences API 執行作業,請進行下列變更:
|
如要進一步瞭解如何搭配使用 Batch 和 Snakemake,請參閱 Batch 的 Snakemake 說明文件。 |