安排筆記本執行作業
本頁面說明如何在 Colab Enterprise 中排定執行筆記本的時間。
總覽
您可以安排 Notebook 立即執行一次,或按週期性時間表執行。
排定筆記本執行作業時,請選取執行階段範本。Colab Enterprise 會使用這個執行階段範本,建立用於執行筆記本的執行階段。
執行階段需要特定權限,才能執行 Notebook 程式碼,以及存取 Google Cloud 服務和 API。
如果執行階段範本設定已啟用使用者憑證,執行階段就會使用與使用者憑證相關聯的權限。
如果未啟用使用者憑證,您必須在排定筆記本執行時間時指定服務帳戶。Colab Enterprise 會使用這個服務帳戶的憑證執行筆記本。
詳情請參閱「執行 Notebook 所需的角色」。
Colab Enterprise 完成筆記本執行作業後,結果會儲存在可共用的 Cloud Storage 值區中。
限制
Colab Enterprise 執行階段會使用 Compute Engine 配額。請參閱 Compute Engine 配額分配頁面。
事前準備
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Vertex AI, Dataform, and Compute Engine APIs.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Vertex AI, Dataform, and Compute Engine APIs.
-
Colab Enterprise 使用者 (
roles/aiplatform.colabEnterpriseUser
) -
儲存空間管理員 (
roles/storage.admin
) -
筆記本上的程式碼檢視器 (
roles/dataform.codeViewer
) -
專案中的 Logs Writer (
roles/logging.logWriter
) -
專案中的 Monitoring 指標寫入者 (
roles/monitoring.metricWriter
) -
在 Notebook 中使用 Storage 舊版值區寫入者 (
roles/storage.legacyBucketWriter
) -
輸出值區的 Storage 舊版物件讀取器 (
roles/storage.legacyObjectReader
) -
dataform.locations.list
在筆記本上 -
dataform.repositories.computeAccessTokenStatus
在筆記本上 -
dataform.repositories.fetchHistory
在筆記本上 -
dataform.repositories.fetchRemoteBranches
在筆記本上 -
dataform.repositories.get
在筆記本上 -
dataform.repositories.getIamPolicy
在筆記本上 -
dataform.repositories.list
在筆記本上 -
dataform.repositories.queryDirectoryContents
在筆記本上 -
dataform.repositories.readFile
在筆記本上 -
logging.logEntries.create
專案 -
logging.logEntries.route
專案 -
monitoring.metricDescriptors.create
專案 -
monitoring.metricDescriptors.get
專案 -
monitoring.metricDescriptors.list
專案 -
monitoring.monitoredResourceDescriptors.get
專案 -
monitoring.monitoredResourceDescriptors.list
專案 -
monitoring.timeSeries.create
專案 -
resourcemanager.projects.get
專案 -
resourcemanager.projects.list
專案 -
storage.buckets.get
在筆記本上 -
storage.managedFolders.create
在筆記本上 -
storage.managedFolders.delete
在筆記本上 -
storage.managedFolders.get
在筆記本上 -
storage.managedFolders.list
在筆記本上 -
storage.multipartUploads.abort
在筆記本上 -
storage.multipartUploads.create
在筆記本上 -
storage.multipartUploads.list
在筆記本上 -
storage.multipartUploads.listParts
在筆記本上 -
storage.objects.create
在筆記本上 -
storage.objects.delete
在筆記本上 -
storage.objects.get
在筆記本上 -
storage.objects.list
在筆記本上 -
storage.objects.restore
在筆記本上 -
storage.objects.setRetention
在筆記本上 -
在 Google Cloud 控制台中,前往 Colab Enterprise 的「My notebooks」頁面。
-
在「Region」選單中,選取含有筆記本的區域。
-
在筆記本旁邊,按一下
「筆記本動作」選單,然後選取「排定時間」。 -
在「排程名稱」欄位中,輸入排程名稱。
-
按一下「執行階段範本」清單,然後選取所需執行階段範本。執行階段範本會決定執行 Notebook 的執行階段規格。
-
在「執行排程」下方,選取「一次性」,即可在提交筆記本執行作業後立即執行筆記本。
-
在「Cloud Storage output location」(Cloud Storage 輸出位置) 欄位旁,按一下「Browse」(瀏覽),開啟「Select folder」(選取資料夾) 對話方塊。
-
選取 Cloud Storage 值區。如要建立值區,請按一下
「Create new bucket」(建立新值區),然後完成對話方塊。 -
如果您選取的執行階段範本未啟用使用者憑證,對話方塊就會包含「Service account」欄位。在「Service account」欄位中輸入服務帳戶的電子郵件地址。
-
按一下「提交」。
筆記本會立即開始執行。
DISPLAY_NAME
:執行 Notebook 的顯示名稱。NOTEBOOK_RUNTIME_TEMPLATE
:指定執行階段運算設定的 Notebook 執行階段範本。NOTEBOOK_URI
:要執行的筆記本的 Cloud Storage URI。OUTPUT_URI
:您要儲存結果的 Cloud Storage 位置。USER_EMAIL
:指定 Notebook 執行作業可存取哪些 Google Cloud 資源的使用者帳戶電子郵件地址。PROJECT_ID
:您的專案 ID。REGION
:筆記本執行的區域。-
在 Google Cloud 控制台中,前往 Colab Enterprise 的「My notebooks」頁面。
-
在「Region」選單中,選取含有筆記本的區域。
-
在筆記本旁邊,按一下
「筆記本動作」選單,然後選取「排定時間」。 -
在「排程名稱」欄位中,輸入排程名稱。
-
按一下「執行階段範本」清單,然後選取所需執行階段範本。執行階段範本會決定執行 Notebook 的執行階段規格。
-
在「執行時間表」下方,選取「週期性」,即可安排筆記本在特定時間間隔執行。
-
完成排程對話方塊。
-
在「Cloud Storage output location」(Cloud Storage 輸出位置) 欄位旁,按一下「Browse」(瀏覽),開啟「Select folder」(選取資料夾) 對話方塊。
-
選取 Cloud Storage 值區。如要建立值區,請按一下
「Create new bucket」(建立新值區),然後完成對話方塊。 -
如果您選取的執行階段範本未啟用使用者憑證,對話方塊就會包含「Service account」欄位。在「Service account」欄位中輸入服務帳戶的電子郵件地址。
-
按一下「提交」。
系統會依照您設定的時間表自動開始執行排定的筆記本。
DISPLAY_NAME
:時間表的顯示名稱。CRON_SCHEDULE
:您設定的排程,格式為 Unix-Cron 格式。舉例來說,00 19 * * MON
表示每週星期一 19:00 格林威治標準時間 (GMT)。NOTEBOOK_RUN_NAME
:這個排程產生的 Notebook 執行作業的顯示名稱。NOTEBOOK_RUNTIME_TEMPLATE
:指定執行階段運算設定的 Notebook 執行階段範本。NOTEBOOK_URI
:要執行的筆記本的 Cloud Storage URI。OUTPUT_URI
:您要儲存結果的 Cloud Storage 位置。USER_EMAIL
:指定 Notebook 執行作業可存取哪些 Google Cloud 資源的使用者帳戶電子郵件地址。PROJECT_ID
:您的專案 ID。REGION
:排程執行的區域。-
在 Google Cloud 控制台中,前往 Colab Enterprise 的「Executions」頁面。
-
在要查看結果的筆記本執行作業旁,點選「查看結果」。
Colab Enterprise 會在新分頁中開啟筆記本執行結果。
-
如要查看結果,請按一下分頁標籤。
PROJECT_ID
:您的專案 ID。REGION
:筆記本執行結果所在的區域。SCHEDULE_NAME
:要查看結果的時間表名稱。如要查看所有時間表的結果,請省略--filter
標記。-
在 Google Cloud 控制台中,前往 Colab Enterprise 的「Executions」頁面。
-
選取要刪除結果的 Notebook 執行作業。
-
按一下「Delete」(刪除) 圖示
。 -
如要確認刪除,請按一下「確認」。
NOTEBOOK_RUN_ID
:要刪除的筆記本執行作業 ID。PROJECT_ID
:您的專案 ID。REGION
:筆記本執行所在的區域。任何有權存取儲存體的使用者都能查看筆記本檔案的程式碼,以及筆記本執行結果。
凡是可以變更儲存桶內容的使用者,都能變更 Notebook 檔案的內容。
- 排程儲存結果的 Cloud Storage 值區。
- 開始和結束時間。
- 頻率。
-
在 Google Cloud 控制台中,前往 Colab Enterprise 的「Schedules」頁面。
-
按一下時程名稱。
「排程詳細資料」頁面隨即開啟。
-
如要返回「時間表」頁面,請按一下
「返回上一個頁面」。 SCHEDULE
:您的時間表 ID。PROJECT_ID
:您的專案 ID。REGION
:行程所在的區域。-
在 Google Cloud 控制台中,前往 Colab Enterprise 的「Schedules」頁面。
-
選取時間表。
-
按一下「暫停」圖示
、「繼續」圖示 或「刪除」圖示 。 ACTION
:pause
、resume
或delete
之一。SCHEDULE_ID
:您的時間表 ID。PROJECT_ID
:您的專案 ID。REGION
:行程所在的區域。PAUSED
:暫停排程ACTIVE
可繼續排程如要尋找可協助您快速啟動專案的筆記本,請參閱筆記本庫。
進一步瞭解執行階段和執行階段範本。
瞭解如何建立執行階段範本。
進一步瞭解如何在筆記本中存取 Google Cloud 服務和 API。
安排筆記本執行時間所需的角色
如要取得在 Colab Enterprise 中排定筆記本執行作業所需的權限,請要求管理員為您授予專案的下列 IAM 角色:
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。
執行筆記本所需的角色
執行筆記本的主體需要特定權限。主體可以是您的使用者帳戶,也可以是您指定的服務帳戶,如總覽一文所述。
如要取得在 Colab Enterprise 中執行筆記本所需的權限,請要求管理員授予您下列 IAM 角色:
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。
這些預先定義的角色包含在 Colab Enterprise 中執行筆記本所需的權限。如要查看確切的必要權限,請展開「必要權限」部分:
所需權限
如要在 Colab Enterprise 中執行筆記本,您必須具備下列權限:
執行筆記本一次
如要執行筆記本一次,您可以使用 Google Cloud 控制台、Google Cloud CLI、Vertex AI Python 用戶端程式庫或 Terraform。
控制台
gcloud
使用下列任何指令資料之前,請先替換以下項目:
執行下列指令:
Linux、macOS 或 Cloud Shell
gcloud colab executions create --display-name="DISPLAY_NAME" \ --notebook-runtime-template=NOTEBOOK_RUNTIME_TEMPLATE \ --gcs-notebook-uri=NOTEBOOK_URI \ --gcs-output-uri=OUTPUT_URI \ --user-email=USER_EMAIL \ --project=PROJECT_ID \ --region=REGION
Windows (PowerShell)
gcloud colab executions create --display-name="DISPLAY_NAME" ` --notebook-runtime-template=NOTEBOOK_RUNTIME_TEMPLATE ` --gcs-notebook-uri=NOTEBOOK_URI ` --gcs-output-uri=OUTPUT_URI ` --user-email=USER_EMAIL ` --project=PROJECT_ID ` --region=REGION
Windows (cmd.exe)
gcloud colab executions create --display-name="DISPLAY_NAME" ^ --notebook-runtime-template=NOTEBOOK_RUNTIME_TEMPLATE ^ --gcs-notebook-uri=NOTEBOOK_URI ^ --gcs-output-uri=OUTPUT_URI ^ --user-email=USER_EMAIL ^ --project=PROJECT_ID ^ --region=REGION
如要進一步瞭解如何透過指令列管理 Colab Enterprise 程式記錄本執行作業,請參閱 gcloud CLI 說明文件。
Python
在試用這個範例之前,請先安裝 Vertex AI SDK for Python。安裝 Vertex AI SDK for Python 時,系統會一併安裝 Vertex AI Python 用戶端程式庫。詳情請參閱 Vertex AI SDK for Python API 參考說明文件。
如要執行下列程式碼範例,您需要筆記本的 Dataform 存放區 ID。如要取得筆記本的存放區 ID,您可以使用 Dataform 的 list_repositories 方法。
from google.cloud import aiplatform_v1 PROJECT_ID = "my-project" LOCATION = "us-central1" REPOSITORY_ID = "b223577f-a3fb-482c-a22c-0658c6602598" TEMPLATE_ID = "6524523989455339520" API_ENDPOINT = f"{LOCATION}-aiplatform.googleapis.com" PARENT = f"projects/{PROJECT_ID}/locations/{LOCATION}" notebook_service_client = aiplatform_v1.NotebookServiceClient(client_options = { "api_endpoint": API_ENDPOINT, }) operation = notebook_service_client.create_notebook_execution_job(parent=PARENT, notebook_execution_job={ "display_name": "my-execution-job", # Specify a NotebookRuntimeTemplate to source compute configuration from "notebook_runtime_template_resource_name": f"projects/{PROJECT_ID}/locations/{LOCATION}/notebookRuntimeTemplates/{TEMPLATE_ID}", # Specify a Colab Enterprise notebook to run "dataform_repository_source": { "dataform_repository_resource_name": f"projects/{PROJECT_ID}/locations/{LOCATION}/repositories/{REPOSITORY_ID}", }, # Specify a Cloud Storage bucket to store output artifacts "gcs_output_uri": "gs://my-bucket/", # Specify the identity that runs the notebook "execution_user": "{EMAIL}", # Run as the service account instead # "service_account": "my-service-account", }) print("Waiting for operation to complete...") result = operation.result()
Terraform
如要瞭解如何套用或移除 Terraform 設定,請參閱「基本 Terraform 指令」。 詳情請參閱 Terraform 供應器參考說明文件。
以下範例使用 google_colab_notebook_execution
Terraform 資源來執行 Colab Enterprise 筆記本。
您可以在「執行作業」頁面中,查看已完成的筆記本執行作業結果。
安排筆記本執行作業
如要排定筆記本執行作業,您可以使用 Google Cloud 控制台、gcloud CLI、Vertex AI Python 用戶端程式庫或 Terraform。
控制台
gcloud
使用下列任何指令資料之前,請先替換以下項目:
執行下列指令:
Linux、macOS 或 Cloud Shell
gcloud colab schedules create --display-name="DISPLAY_NAME" \ --cron-schedule=CRON_SCHEDULE \ --execution-display-name=NOTEBOOK_RUN_NAME \ --notebook-runtime-template=NOTEBOOK_RUNTIME_TEMPLATE \ --gcs-notebook-uri=NOTEBOOK_URI \ --gcs-output-uri=OUTPUT_URI \ --user-email=USER_EMAIL \ --project=PROJECT_ID \ --region=REGION
Windows (PowerShell)
gcloud colab schedules create --display-name="DISPLAY_NAME" ` --cron-schedule=CRON_SCHEDULE ` --execution-display-name=NOTEBOOK_RUN_NAME ` --notebook-runtime-template=NOTEBOOK_RUNTIME_TEMPLATE ` --gcs-notebook-uri=NOTEBOOK_URI ` --gcs-output-uri=OUTPUT_URI ` --user-email=USER_EMAIL ` --project=PROJECT_ID ` --region=REGION
Windows (cmd.exe)
gcloud colab schedules create --display-name="DISPLAY_NAME" ^ --cron-schedule=CRON_SCHEDULE ^ --execution-display-name=NOTEBOOK_RUN_NAME ^ --notebook-runtime-template=NOTEBOOK_RUNTIME_TEMPLATE ^ --gcs-notebook-uri=NOTEBOOK_URI ^ --gcs-output-uri=OUTPUT_URI ^ --user-email=USER_EMAIL ^ --project=PROJECT_ID ^ --region=REGION
如要進一步瞭解如何透過指令列建立 Colab Enterprise 程式本時間表,請參閱 gcloud CLI 說明文件。
Python
在試用這個範例之前,請先安裝 Vertex AI SDK for Python。安裝 Vertex AI SDK for Python 時,系統會一併安裝 Vertex AI Python 用戶端程式庫。詳情請參閱 Vertex AI SDK for Python API 參考說明文件。
如要執行下列程式碼範例,您需要筆記本的 Dataform 存放區 ID。如要取得筆記本的存放區 ID,您可以使用 Dataform 的 list_repositories 方法。
from google.cloud import aiplatform_v1 PROJECT_ID = "my-project" LOCATION = "us-central1" REPOSITORY_ID = "b223577f-a3fb-482c-a22c-0658c6602598" TEMPLATE_ID = "6524523989455339520" API_ENDPOINT = f"{LOCATION}-aiplatform.googleapis.com" PARENT = f"projects/{PROJECT_ID}/locations/{LOCATION}" schedules_service_client = aiplatform_v1.ScheduleServiceClient(client_options = { "api_endpoint": API_ENDPOINT, }) schedule = schedules_service_client.create_schedule(parent=PARENT, schedule={ "display_name": "my-notebook-schedule", # Time specification. TZ is optional. # cron = "* * * * *" to run it in the next minute. "cron": "TZ=America/Los_Angeles * * * * *", # How many runs the schedule will trigger before it becomes COMPLETED. # A Schedule in COMPLETED state will not trigger any more runs. "max_run_count": 1, "max_concurrent_run_count": 1, "create_notebook_execution_job_request": { "parent": PARENT, "notebook_execution_job": { "display_name": "my-execution-job", # Specify a NotebookRuntimeTemplate to source compute configuration from "notebook_runtime_template_resource_name": f"projects/{PROJECT_ID}/locations/{LOCATION}/notebookRuntimeTemplates/{TEMPLATE_ID}", # Specify a Colab Enterprise notebook to run "dataform_repository_source": { "dataform_repository_resource_name": f"projects/{PROJECT_ID}/locations/{LOCATION}/repositories/{REPOSITORY_ID}", }, # Specify a Cloud Storage bucket to store output artifacts "gcs_output_uri": "gs://my-bucket/", # Specify the identity that runs the notebook "execution_user": "{EMAIL}", # Run as the service account instead # "service_account": "my-service-account", } } })
Terraform
如要瞭解如何套用或移除 Terraform 設定,請參閱「基本 Terraform 指令」。 詳情請參閱 Terraform 供應器參考說明文件。
下列範例使用 google_colab_schedule
Terraform 資源,安排 Colab Enterprise 筆記本執行作業。
在 Google Cloud 控制台中,您可以在「時間表」頁面查看時間表。您可以在「執行作業」頁面中,查看已完成的筆記本執行作業結果。
查看結果
如要查看筆記本執行結果,您可以使用 Google Cloud 控制台、gcloud CLI 或 Vertex AI Python 用戶端程式庫。
控制台
gcloud
使用下列任何指令資料之前,請先替換以下項目:
執行下列指令:
Linux、macOS 或 Cloud Shell
gcloud colab executions list --project=PROJECT_ID \ --region=REGION \ --filter="scheduleResourceName:SCHEDULE_NAME"
Windows (PowerShell)
gcloud colab executions list --project=PROJECT_ID ` --region=REGION ` --filter="scheduleResourceName:SCHEDULE_NAME"
Windows (cmd.exe)
gcloud colab executions list --project=PROJECT_ID ^ --region=REGION ^ --filter="scheduleResourceName:SCHEDULE_NAME"
如要進一步瞭解如何透過指令列列出 Colab Enterprise 程式本執行作業,請參閱 gcloud CLI 說明文件。
Python
在試用這個範例之前,請先安裝 Vertex AI SDK for Python。安裝 Vertex AI SDK for Python 時,系統會一併安裝 Vertex AI Python 用戶端程式庫。詳情請參閱 Vertex AI SDK for Python API 參考說明文件。
如要執行下列程式碼範例,您需要筆記本的 Dataform 存放區 ID。如要取得筆記本的存放區 ID,您可以使用 Dataform 的 list_repositories 方法。
from google.cloud import aiplatform_v1 PROJECT_ID = "my-project" LOCATION = "us-central1" API_ENDPOINT = f"{LOCATION}-aiplatform.googleapis.com" PARENT = f"projects/{PROJECT_ID}/locations/{LOCATION}" notebook_service_client = aiplatform_v1.NotebookServiceClient(client_options = { "api_endpoint": API_ENDPOINT, }) notebook_execution_jobs = notebook_service_client.list_notebook_execution_jobs(parent=PARENT) notebook_execution_jobs
刪除結果
如要刪除某個筆記本執行作業的結果,您可以使用 Google Cloud 控制台或 gcloud CLI。
控制台
gcloud
使用下列任何指令資料之前,請先替換以下項目:
執行下列指令:
Linux、macOS 或 Cloud Shell
gcloud colab executions delete NOTEBOOK_RUN_ID \ --project=PROJECT_ID \ --region=REGION
Windows (PowerShell)
gcloud colab executions delete NOTEBOOK_RUN_ID ` --project=PROJECT_ID ` --region=REGION
Windows (cmd.exe)
gcloud colab executions delete NOTEBOOK_RUN_ID ^ --project=PROJECT_ID ^ --region=REGION
如要進一步瞭解如何透過指令列刪除 Colab Enterprise 程式本執行作業,請參閱 gcloud CLI 說明文件。
分享筆記本執行結果
您可以提供包含 Notebook 執行作業的 Cloud Storage 值區存取權,藉此分享 Notebook 執行結果。提供這項存取權也會授予使用者存取同一 Cloud Storage 值區中任何其他資源的權限 (請參閱安全性考量)。
詳情請參閱 Cloud Storage 的共用和協作頁面。
安全性考量
筆記本執行結果會儲存為筆記本 (IPYNB) 檔案,存放在 Cloud Storage 值區中。授予此儲存桶存取權時,請考量下列事項:
如果排程已設定為使用個人憑證,只有指定的使用者才能修改排程或觸發排程。
當排程設定為使用服務帳戶時,只有具備服務帳戶 iam.serviceAccounts.actAs
權限的使用者才能修改排程或觸發排程。
查看排程詳細資料
您可以查看排程資訊,包括:
如要查看排程詳細資料,您可以使用 Google Cloud 控制台或 gcloud CLI。
控制台
gcloud
使用下列任何指令資料之前,請先替換以下項目:
執行下列指令:
Linux、macOS 或 Cloud Shell
gcloud colab schedules describe SCHEDULE \ --project=PROJECT_ID \ --region=REGION
Windows (PowerShell)
gcloud colab schedules describe SCHEDULE ` --project=PROJECT_ID ` --region=REGION
Windows (cmd.exe)
gcloud colab schedules describe SCHEDULE ^ --project=PROJECT_ID ^ --region=REGION
如要進一步瞭解如何透過指令列查看 Colab Enterprise 排程,請參閱 gcloud CLI 說明文件。
暫停、繼續或刪除排程
如要暫停、恢復或刪除排程,您可以使用 Google Cloud 主控台、gcloud CLI 或 Terraform。
控制台
gcloud
使用下列任何指令資料之前,請先替換以下項目:
執行下列指令:
Linux、macOS 或 Cloud Shell
gcloud colab schedules ACTION SCHEDULE_ID \ --project=PROJECT_ID \ --region=REGION
Windows (PowerShell)
gcloud colab schedules ACTION SCHEDULE_ID ` --project=PROJECT_ID ` --region=REGION
Windows (cmd.exe)
gcloud colab schedules ACTION SCHEDULE_ID ^ --project=PROJECT_ID ^ --region=REGION
如要進一步瞭解如何透過指令列管理 Colab Enterprise 排程,請參閱 gcloud CLI 說明文件。
Terraform
如要瞭解如何套用或移除 Terraform 設定,請參閱「基本 Terraform 指令」。 詳情請參閱 Terraform 供應器參考說明文件。
以下範例使用 google_colab_schedule
Terraform 資源來暫停或繼續執行排程。
如要使用這個範例,請按照下列方式變更 desired_state
的值: