Google Cloud Workbench Notebooks 扩展把本地 VS Code 与 Google Cloud 上的托管 Jupyter Notebook 环境连接起来。它解决的核心问题很直接:开发者可以继续使用熟悉的本地编辑器,同时把 Notebook 代码放到云端托管环境中执行,不必在浏览器界面和本地工程之间频繁切换。
本地编辑体验,云端执行环境
这类连接方式把 Notebook 工作流拆成两个部分:VS Code 负责编辑、导航和项目管理,Google Cloud 的托管 Notebook 环境提供 Python 内核及相应计算资源。
对开发者而言,变化不只是“换一个界面”。真正有价值的是让 .ipynb 文件更自然地进入日常工程流程:
- 在 VS Code 中同时维护 Notebook、Python 模块、SQL 和配置文件。
- 使用本地 IDE 已有的搜索、代码补全和版本控制能力。
- 将计算放在托管 Jupyter 环境中,减少本地 Python 环境与云端环境来回切换。
- 让探索性分析逐步演化为可测试、可复用的工程代码。
需要注意,扩展连接的是远端环境。Notebook 中看到的文件系统、环境变量、Python 包和硬件资源,通常属于 Google Cloud 上的实例,而不是开发者的笔记本电脑。
连接前要确认的三件事
来源摘要没有给出具体的认证方式、支持区域或实例类型,因此实际操作时应以扩展界面和组织的 Google Cloud 配置为准。可以按下面的顺序检查:
- 在 VS Code 扩展市场中搜索并安装 Google Cloud Workbench Notebooks 扩展。
- 使用有权访问目标 Google Cloud 项目和 Notebook 实例的账号完成认证。
- 在扩展提供的资源列表或连接入口中选择托管 Notebook 环境,再为
.ipynb文件选择对应的远端内核。
企业项目还可能受到 IAM、VPC、防火墙、代理和组织策略的限制。能够在 Cloud Console 中看到实例,并不必然意味着本地 VS Code 可以建立连接;排查时应分别验证资源查看权限、实例使用权限和网络路径。
可以这样验证代码究竟运行在哪里
连接成功后,不要立即执行长时间训练任务。可以先在 Notebook 中运行下面这段 Python,确认主机、解释器和工作目录。代码只依赖 Python 标准库,可以直接复制到一个单元格中执行:
import json
import os
import platform
import socket
import sys
from pathlib import Path
runtime = {
"hostname": socket.gethostname(),
"python": sys.version.split()[0],
"executable": sys.executable,
"platform": platform.platform(),
"working_directory": str(Path.cwd()),
"has_google_cloud_project": bool(os.getenv("GOOGLE_CLOUD_PROJECT")),
}
print(json.dumps(runtime, indent=2))
重点检查 hostname、executable 和 working_directory。如果它们指向远端实例,说明当前单元格使用的是云端内核。GOOGLE_CLOUD_PROJECT 是否存在取决于实例配置,不能把它当作连接成功的唯一判断条件。
接着可以验证项目依赖。假设仓库中有以下 requirements.txt:
pandas==2.2.3
scikit-learn==1.5.2
在 Notebook 单元格中安装时,应明确使用当前内核对应的解释器:
import subprocess
import sys
subprocess.check_call([
sys.executable,
"-m",
"pip",
"install",
"-r",
"requirements.txt",
])
这种写法比直接调用 pip 更稳妥,因为 sys.executable -m pip 能减少“包装到了另一个 Python 环境”的风险。生产项目仍应使用锁定文件、预构建镜像或团队统一的环境管理方式,避免每次启动 Notebook 都临时安装依赖。
从实验文件走向可维护工程
远端 Notebook 接入 VS Code 后,可以这样实践:把数据探索留在 .ipynb,把稳定逻辑下沉到普通 Python 模块。例如建立一个最小目录:
notebook-project/
├── notebooks/
│ └── exploration.ipynb
├── src/
│ └── features.py
├── requirements.txt
└── tests/
└── test_features.py
src/features.py 可以包含可测试的数据处理函数:
from collections.abc import Iterable
def normalize(values: Iterable[float]) -> list[float]:
items = list(values)
if not items:
return []
low = min(items)
high = max(items)
if high == low:
return [0.0 for _ in items]
return [(value - low) / (high - low) for value in items]
Notebook 只负责调用和展示结果:
from src.features import normalize
scores = [12.0, 18.0, 30.0]
print(normalize(scores))
这样既保留 Notebook 的交互性,也能让核心逻辑接受单元测试和代码审查。团队还应避免把访问令牌、服务账号密钥或包含敏感数据的输出提交到 Git。
采用时的检查清单
Google Cloud Workbench Notebooks 扩展适合已经使用 VS Code,同时需要 Google Cloud 托管 Jupyter 计算环境的团队。正式推广前,建议完成以下检查:
- 确认 IAM 权限遵循最小授权原则。
- 确认远端实例的启动、空闲关闭和费用回收策略。
- 固定关键 Python 依赖,记录内核和解释器版本。
- 验证 VS Code 断线、实例停止和内核重启后的恢复流程。
- 将稳定代码移出 Notebook,并纳入测试和代码审查。
- 清理 Notebook 输出,防止敏感数据进入版本库。
这项扩展的意义不在于替代 Jupyter,而在于把托管 Notebook 纳入开发者已经熟悉的 IDE 工作流。连接只是起点;权限、依赖、成本和代码组织方式,才决定它能否从个人实验工具变成可靠的团队开发环境。