如何通过编程方式执行GCP Vertex AI Workbench中的托管笔记本?
程序化执行Vertex AI Workbench笔记本的解决方案
目前Vertex AI SDK确实没有原生支持直接调用Workbench实例执行笔记本的API,你没有遗漏官方文档——Workbench定位是交互式开发环境,官方暂未提供这类程序化调用的直接接口,但可以通过以下替代方案实现你的流水线集成需求:
方案1:SSH远程执行+Papermill
Workbench实例本质是GCE虚拟机,可通过程序化SSH连接结合papermill工具运行笔记本:
- 先通过Compute Engine API确保实例处于运行状态
- 使用
paramiko库建立SSH连接,执行papermill命令运行指定笔记本
示例代码片段:import paramiko # 配置SSH连接参数 ssh_client = paramiko.SSHClient() ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh_client.connect( hostname="<workbench实例公网IP>", username="jupyter", key_filename="<本地私钥文件路径>" ) # 执行papermill命令运行笔记本 exec_cmd = "papermill /home/jupyter/notebooks/your_notebook.ipynb /home/jupyter/output/result.ipynb" stdin, stdout, stderr = ssh_client.exec_command(exec_cmd) # 处理执行输出 print("执行输出:", stdout.read().decode()) print("错误信息:", stderr.read().decode()) ssh_client.close() - 前提:需提前在Workbench实例中安装
papermill,并配置好SSH密钥访问权限
方案2:转为Vertex AI Pipeline组件
如果目标是整合进数据流水线,更推荐将笔记本逻辑封装为Pipeline组件:
- 用
papermill将笔记本转为可执行Python脚本 - 使用
kfp(Kubeflow Pipelines SDK)将脚本封装为Vertex AI Pipeline组件,直接在流水线中调度执行
方案3:自定义容器作业执行
将笔记本上传至GCS,通过Vertex AI自定义作业运行:
- 构建包含
papermill及依赖的Docker镜像,推送到GCR - 调用Vertex AI Jobs API提交自定义作业,指定镜像及执行命令来运行GCS上的笔记本
内容的提问来源于stack exchange,提问作者Soliman
相关产品推荐
相关产品推荐

