欢迎访问本站,持续更新中…

Cloud Run推出沙箱功能 AI生成的代码终于敢跑了

Cloud Run推出沙箱功能 AI生成的代码终于敢跑了

Cloud Run 沙箱概念图

Google Cloud 上周发了个大版本的更新汇总,翻了一遍,最有意思的其实是 Cloud Run 沙箱——一个看似不起眼的功能。说实话,这功能解决了一个过去很难处理的问题:AI 生成的代码,到底敢不敢直接跑?

过去几年,LLM 写代码的能力突飞猛进。开发者用 Copilot、Claude、Gemini 生成的代码越来越多,但一个尴尬的现实是——这些代码质量参差不齐,而且你根本不知道它会不会在环境里搞破坏。不是恶意的问题,是 LLM 生成的代码本身就不稳定,偶尔会调用一些奇怪的库,或者产生意外的副作用。

以前的做法是什么?跑个沙箱环境呗。Docker 容器隔离,或者临时 VM。但问题是,为了一句 AI 生成的 Python 计算脚本,去启动一个完整的容器,太重了。怎么说呢,杀鸡用牛刀,而且冷启动时间都够你手动写完代码了。

Cloud Run 这次的做法不太一样。

轻量沙箱,随用随开

Cloud Run 沙箱现在是公开预览阶段。它的思路是在已有的 Cloud Run 服务实例内部,创建一个轻量级的隔离执行边界。注意,是实例内部,不是独立启动一个容器。

看到这里愣了几秒。这个方案和传统的容器隔离思路不太一样。传统做法是"一个任务 = 一个容器",Cloud Run 的做法是"一个服务实例里可以开多个沙箱,每个沙箱跑一个任务"。

从实际使用来看,这种设计的优势很明显:

一个是启动速度。因为是实例内部的轻量隔离,沙箱几乎是瞬时创建的,不需要等待容器镜像拉取和初始化。如果你只是想跑一段 LLM 生成的 Python 代码来计算业务利润率,或者启动一个无头浏览器做网页研究,这个方案比 spinning up 一个新容器快得多。

另一个是资源利用。一个 Cloud Run 实例可以承载多个沙箱实例,每个沙箱共享底层的计算资源,但又互相隔离。这意味着你不用为每个 AI 生成的代码片段都付一份完整的容器费用。

但事情没有这么简单。

真正的问题是安全边界

云厂商的沙箱方案我一直有个担忧:隔离够彻底吗?

Cloud Run 沙箱文档里提到,它是基于 gVisor 实现的——Google 开源的沙箱内核。gVisor 本身在云原生社区已经用了好几年,安全边界是经过验证的。但这里容易被忽略的是:沙箱内部的代码虽然不能访问宿主机内核,但它能访问什么网络资源?能访问 Cloud Run 服务绑定的其他 Google Cloud 服务吗?

文档没说死,但从设计来看,沙箱继承 Cloud Run 服务的 IAM 权限。这意味着,如果你给 Cloud Run 服务绑定了访问 BigQuery 或 Cloud Storage 的权限,沙箱里的 AI 代码理论上也能访问这些资源。

我个人觉得这其实是个更合理的模型。你给 AI 代码授权,而不是一刀切全放开或全禁止。真正麻烦的是后面——如果 AI 代码在沙箱里搞了个死循环,或者内存泄漏,Cloud Run 实例自身的健康检查能感知到吗?

沙箱隔离架构示意图

对开发者的实际影响

翻了下原文,发现了一个有意思的细节:Cloud Run 沙箱不只是为 AI 代码准备的。

它解决的是更通用的场景——在 serverless 环境中运行不可信代码。AI 代码是其中一种,但还有很多场景:用户提交的脚本、第三方插件、动态加载的模块。这些以前在 serverless 架构里都不好处理,因为没有独立的沙箱层。

那问题来了,这个方案对现有 Cloud Run 用户意味着什么?

如果你已经在用 Cloud Run 跑服务,沙箱功能不需要迁移架构。它是在现有 Cloud Run 服务实例里通过 API 调用的,类似于给服务加了一个"安全执行模式"。调用方式也很直接,SDK 里指定一个 sandbox 参数就行。

从成本角度看,沙箱本身不额外计费(至少目前预览阶段没有说加价),你只付 Cloud Run 实例的计算费用。相比之前为了安全隔离单独起容器或者 VM,成本优势很明显。

不过,一个值得关注的问题是沙箱的资源上限。目前预览版对单个沙箱的内存和 CPU 使用有限制,跑大模型推理可能不够,跑小脚本和 agent 任务倒是绰绰有余。

还有几个没解决的问题

看完文档,发现几个现在还不好说的事:

第一,沙箱内的代码怎么调试?日志能不能透传到 Cloud Logging?如果沙箱里跑的任务失败了,怎么排查?Cloud Run 现有的日志体系能不能覆盖到沙箱内部?

第二,沙箱的并发上限是多少?一个 Cloud Run 实例能同时跑多少个沙箱?文档提到"轻量级",但没有给具体数字。

第三,沙箱内能不能访问 GPU?如果能,对 AI 推理场景就更有价值了。

这些问题等正式版出来再看看。但从预览版透露的信息来看,这个方向是对的——serverless 环境需要一种比容器更轻、比裸进程更安全的执行单元。AI agent 的爆发让这个需求变得更迫切,Cloud Run 沙箱算是第一个认真解决这个问题的方案。

关于维基框架

维基框架关注企业应用开发中的长期维护问题。在实际项目中,业务系统往往同时涉及权限、微服务、接口协议、部署环境等复杂因素,因此我们希望提供一套更容易扩展和维护的基础框架。