安排笔记本运行
本页介绍了如何在 Colab Enterprise 中安排笔记本运行。
概览
您可以安排笔记本立即运行一次,也可以安排笔记本按周期性时间表运行。
安排笔记本运行时,您需要选择一个运行时模板。Colab Enterprise 使用此运行时模板创建用于运行笔记本的运行时。
运行时需要特定权限才能运行笔记本的代码并访问 Google Cloud 服务和 API。
如果您的运行时模板配置启用了最终用户凭据,则运行时会使用与您的用户凭据关联的权限。
如果未启用最终用户凭据,则您在安排笔记本运行时必须指定服务账号。Colab Enterprise 会使用此服务账号的凭据运行您的笔记本。
如需了解详情,请参阅运行该笔记本所需的角色。
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 中安排笔记本运行所需的权限,请让您的管理员为您的用户账号授予项目的以下 IAM 角色:
-
Colab Enterprise User (
roles/aiplatform.colabEnterpriseUser
) -
Storage Admin (
roles/storage.admin
)
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
您的管理员还可以通过自定义角色或其他预定义角色向您的用户账号授予所需的权限。
运行笔记本所需的角色
运行笔记本的主账号需要具有特定权限。主账号是您的用户账号或您指定的服务账号,如概览中所述。
如需确保主账号拥有在 Colab Enterprise 中运行笔记本所需的权限,请让您的管理员为主账号授予以下 IAM 角色:
-
笔记本上的 Code Viewer (
roles/dataform.codeViewer
) -
项目的 Logs Writer (
roles/logging.logWriter
) -
项目的 Monitoring Metric Writer (
roles/monitoring.metricWriter
) -
针对记事本的 Storage Legacy Bucket Writer (
roles/storage.legacyBucketWriter
) -
针对输出存储分区的 Storage Legacy Object Reader (
roles/storage.legacyObjectReader
)
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
这些预定义角色包含在 Colab Enterprise 中运行笔记本所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
如需在 Colab Enterprise 中运行笔记本,您需要具备以下权限:
-
dataform.locations.list
on the notebook -
dataform.repositories.computeAccessTokenStatus
on the notebook -
dataform.repositories.fetchHistory
on the notebook -
dataform.repositories.fetchRemoteBranches
on the notebook -
dataform.repositories.get
on the notebook -
dataform.repositories.getIamPolicy
on the notebook -
dataform.repositories.list
on the notebook -
dataform.repositories.queryDirectoryContents
on the notebook -
dataform.repositories.readFile
on the notebook -
针对项目的
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
on the notebook -
storage.managedFolders.create
on the notebook -
storage.managedFolders.delete
on the notebook -
storage.managedFolders.get
on the notebook -
storage.managedFolders.list
on the notebook -
storage.multipartUploads.abort
on the notebook -
storage.multipartUploads.create
on the notebook -
storage.multipartUploads.list
on the notebook -
storage.multipartUploads.listParts
on the notebook -
storage.objects.create
on the notebook -
storage.objects.delete
on the notebook -
storage.objects.get
on the notebook -
storage.objects.list
on the notebook -
storage.objects.restore
on the notebook -
storage.objects.setRetention
on the notebook
您的管理员也可以使用自定义角色或其他预定义角色向主账号授予这些权限。
运行一次笔记本
如需单次运行一个笔记本,您可以使用 Google Cloud 控制台、Google Cloud CLI 或 Vertex AI Python 客户端库。
控制台
-
在 Google Cloud 控制台中,进入 Colab Enterprise Notebooks 页面。
-
在区域菜单中,选择包含您的笔记本的区域。
-
在某个笔记本旁边,点击
Notebook 操作菜单,然后选择安排。 -
在时间表名称字段中,输入时间表的名称。
-
点击运行时模板列表,然后选择一个运行时模板。运行时模板用于确定运行您的记事本的运行时的规范。
-
在运行时间表下,选择一次性,以便在您提交笔记本运行作业后立即运行笔记本。
-
在 Cloud Storage 输出位置字段旁边,点击浏览以打开选择文件夹对话框。
-
选择一个 Cloud Storage 存储分区。或者,如需创建存储分区,请点击 创建新存储分区,然后完成对话框。
-
如果您选择的运行时模板未启用最终用户凭据,对话框中会显示服务账号字段。在服务账号字段中,输入服务账号的电子邮件地址。
-
点击提交。
笔记本运行会立即开始。
gcloud
在使用下面的命令数据之前,请先进行以下替换:
DISPLAY_NAME
:笔记本运行的显示名称。NOTEBOOK_RUNTIME_TEMPLATE
:用于指定运行时的计算配置的记事本运行时模板。NOTEBOOK_URI
:要运行的记事本的 Cloud Storage URI。OUTPUT_URI
:您希望存储结果的 Cloud Storage 位置。USER_EMAIL
:用户账号电子邮件地址,用于指定笔记本运行对资源的访问权限。 Google CloudPROJECT_ID
:您的项目 ID。REGION
:您的记事本将在其中运行的区域。
执行以下命令:
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
在尝试此示例之前,请安装 Python 版 Vertex AI SDK。Vertex AI Python 客户端库会在您安装 Python 版 Vertex AI SDK 时安装。如需了解详情,请参阅 Python 版 Vertex AI SDK API 参考文档。
from google.cloud import aiplatform_v1beta1 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_v1beta1.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 "dataformRepositorySource": { "dataformRepositoryResourceName": 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()
您可以在“执行作业”标签页中查看已完成的笔记本运行的结果。
安排笔记本运行
如需安排笔记本运行,您可以使用 Google Cloud 控制台、gcloud CLI 或 Vertex AI Python 客户端库。
控制台
-
在 Google Cloud 控制台中,进入 Colab Enterprise Notebooks 页面。
-
在区域菜单中,选择包含您的笔记本的区域。
-
在某个笔记本旁边,点击
Notebook 操作菜单,然后选择安排。 -
在时间表名称字段中,输入时间表的名称。
-
点击运行时模板列表,然后选择一个运行时模板。运行时模板用于确定运行您的记事本的运行时的规范。
-
在运行时间表下,选择周期性,以安排在特定时间间隔运行笔记本。
-
填写时间安排对话框。
-
在 Cloud Storage 输出位置字段旁边,点击浏览以打开选择文件夹对话框。
-
选择一个 Cloud Storage 存储分区。或者,如需创建存储分区,请点击 创建新存储分区,然后完成对话框。
-
如果您选择的运行时模板未启用最终用户凭据,对话框中会显示服务账号字段。在服务账号字段中,输入服务账号的电子邮件地址。
-
点击提交。
安排的笔记本运行作业会按您设置的时间表自动开始。
gcloud
在使用下面的命令数据之前,请先进行以下替换:
DISPLAY_NAME
:时间表的显示名称。CRON_SCHEDULE
:您设置的时间表,采用 unix-cron 格式。 例如,00 19 * * MON
表示格林威治标准时间 (GMT) 每周一的 19:00。NOTEBOOK_RUN_NAME
:由此时间表生成的笔记本运行作业的显示名称。NOTEBOOK_RUNTIME_TEMPLATE
:用于指定运行时的计算配置的记事本运行时模板。NOTEBOOK_URI
:要运行的记事本的 Cloud Storage URI。OUTPUT_URI
:您希望存储结果的 Cloud Storage 位置。USER_EMAIL
:用户账号电子邮件地址,用于指定笔记本运行对资源的访问权限。 Google CloudPROJECT_ID
:您的项目 ID。REGION
:您的时间表将在其中运行的区域。
执行以下命令:
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
在尝试此示例之前,请安装 Python 版 Vertex AI SDK。Vertex AI Python 客户端库会在您安装 Python 版 Vertex AI SDK 时安装。如需了解详情,请参阅 Python 版 Vertex AI SDK API 参考文档。
from google.cloud import aiplatform_v1beta1 PROJECT_ID = "my-project" LOCATION = "us-central1" API_ENDPOINT = f"{LOCATION}-aiplatform.googleapis.com" PARENT = f"projects/{PROJECT_ID}/locations/{LOCATION}" schedules_service_client = aiplatform_v1beta1.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 "dataformRepositorySource": { "dataformRepositoryResourceName": 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", } } })
在 Google Cloud 控制台中,您可以在时间表标签页上查看时间表。您可以在“执行作业”标签页中查看已完成的笔记本运行的结果。
查看结果
如需查看笔记本运行结果,您可以使用 Google Cloud 控制台、gcloud CLI 或 Vertex AI Python 客户端库。
控制台
-
在 Google Cloud 控制台中,进入 Colab Enterprise 执行作业页面。
-
在要查看结果的笔记本运行作业旁边,点击查看结果。
系统会打开一个只读面板,其中显示了笔记本运行的结果。
-
如要关闭该面板,请点击关闭。
gcloud
在使用下面的命令数据之前,请先进行以下替换:
PROJECT_ID
:您的项目 ID。REGION
:笔记本运行结果所在的区域。SCHEDULE_NAME
:要查看结果的时间表的名称。 如需查看所有时间表的结果,请省略--filter
标志。
执行以下命令:
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
在尝试此示例之前,请安装 Python 版 Vertex AI SDK。Vertex AI Python 客户端库会在您安装 Python 版 Vertex AI SDK 时安装。如需了解详情,请参阅 Python 版 Vertex AI SDK API 参考文档。
from google.cloud import aiplatform_v1beta1 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_v1beta1.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。
控制台
-
在 Google Cloud 控制台中,进入 Colab Enterprise 执行作业页面。
-
选择要删除其结果的笔记本运行作业。
-
点击
删除。 -
点击确认以确认删除。
gcloud
在使用下面的命令数据之前,请先进行以下替换:
NOTEBOOK_RUN_ID
:要删除的笔记本运行作业的 ID。PROJECT_ID
:您的项目 ID。REGION
:您的笔记本运行所在的区域。
执行以下命令:
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 文档。
共享笔记本运行的结果
您可以通过提供对笔记本运行所在 Cloud Storage 存储桶的访问权限来共享笔记本运行结果。提供此访问权限也会授予用户对同一 Cloud Storage 存储分区中的其他所有资源的访问权限(请参阅安全注意事项)。
如需了解详情,请参阅 Cloud Storage 的“分享和协作”页面。
安全注意事项
您的笔记本运行结果会以笔记本 (IPYNB) 文件的形式存储在 Cloud Storage 存储桶中。授予对此存储桶的访问权限时,请考虑以下事项:
有权访问该存储分区的任何人都可以查看笔记本文件的代码和笔记本运行结果。
任何有权更改存储桶内容的用户都可以更改该记事本文件的内容。
如果您的时间表配置为使用个人凭据,则只有指定用户才能修改时间表或触发时间表。
将时间表配置为使用服务账号后,只有对服务账号拥有 iam.serviceAccounts.actAs
权限的用户才能修改时间表或触发时间表。
查看时间表详情
您可以查看与时间表相关的信息,包括:
- 时间表存储结果的 Cloud Storage 存储分区。
- 开始时间和结束时间。
- 频率。
如需查看时间表详情,您可以使用 Google Cloud 控制台或 gcloud CLI。
控制台
-
在 Google Cloud 控制台中,进入 Colab Enterprise 时间表页面。
-
点击时间表的名称。
时间表详情页面随即打开。
-
如需返回时间表页面,请点击
返回上一页。
gcloud
在使用下面的命令数据之前,请先进行以下替换:
SCHEDULE
:您的时间表 ID。PROJECT_ID
:您的项目 ID。REGION
:您的时间表所在的区域。
执行以下命令:
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。
控制台
-
在 Google Cloud 控制台中,进入 Colab Enterprise 时间表页面。
-
选择一个时间表。
-
点击
暂停、 继续或 删除。
gcloud
在使用下面的命令数据之前,请先进行以下替换:
ACTION
:pause
、resume
或delete
之一。SCHEDULE_ID
:您的时间表 ID。PROJECT_ID
:您的项目 ID。REGION
:您的时间表所在的区域。
执行以下命令:
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 文档。
后续步骤
详细了解运行时和运行时模板。
了解如何创建运行时模板。
详细了解如何在记事中访问 Google Cloud 服务和 API。