<!-- AI_TASK_START: AI标题翻译 -->
[新产品/新功能] 通过Service Extensions插件为Cloud CDN在边缘运行自定义代码
<!-- AI_TASK_END: AI标题翻译 -->
<!-- AI_TASK_START: AI竞争分析 -->
# 产品功能分析
## 新功能/新产品概述
Service Extensions plugins for Cloud CDN 是一种允许用户在边缘运行自定义代码的功能,核心定义是为 Cloud CDN 提供灵活的边缘计算扩展,目标是优化全球 web 和 API 内容的性能。技术原理基于 **WebAssembly (Wasm)**,通过轻量级计算模块在请求路径中执行自定义逻辑,例如在边缘扩展(edge extension)或流量扩展(traffic extension)中运行插件。
产品背景源于 Google Cloud 对高性能边缘缓存的持续增强,旨在解决组织对灵活边缘计算的需求。目标用户群包括需要自定义行为的企业和开发人员,如内容交付网络优化者;市场定位是为 Cloud CDN 和 Application Load Balancer 添加可管理、延迟优化的扩展功能。
## 关键客户价值
- **自定义流量导向**:通过操纵请求头影响后端服务选择,实现精准流量路由,提升资源利用效率。该价值点与竞品(如 AWS CloudFront 的 Lambda@Edge)的差异在于,Google 的实现基于完全托管环境,提供更低的延迟和无缝集成,优势机制是通过 **Wasm** 沙箱执行自定义代码,避免了传统函数计算的冷启动问题。在高流量场景中,用户可根据业务需求动态调整路由,减少不必要的数据传输。
- **缓存优化**:影响内容从 Cloud CDN 缓存服务,优化缓存键(如基于设备类型和内容类型),这与竞品的静态缓存策略不同,差异化优势在于插件的实时计算能力,实现机制通过解析 HTTP 头信息动态调整缓存行为。在多设备访问场景中,确保内容针对性交付,提高用户体验和带宽效率。
- **异常处理**:重定向客户端到自定义错误页,对于特定响应类别,提供更个性化的错误管理。与竞品(如 Azure Front Door)的预设规则相比,Google 的插件允许代码级自定义,优势机制在于边缘执行的快速响应,适用于突发故障场景,减少用户流失。
- **自定义日志记录**:记录用户定义的头或自定义数据到 Cloud Logging,与竞品日志系统的被动收集不同,差异化优势是插件的主动数据提取,实现机制通过 **Wasm** 模块实时捕获信息,便于在安全审计或分析场景中快速洞察用户行为。
- **头添加和操纵**:创建新头或重写现有头,满足应用特定需求。该功能与竞品的通用头处理相比,优势在于灵活的代码注入机制,通过插件在请求路径中直接操作,提升了后端应用的适应性,尤其在多租户或个性化服务场景中。
- **安全策略**:基于客户端请求编写自定义安全政策,并在插件中执行。该价值点突出 Google 的沙箱环境,与竞品(如 Cloudflare Workers)的安全模块不同,优势机制是结合 **Proxy-Wasm** 的标准化 API,提供更强的隔离和快速决策,在 DDoS 防护或访问控制场景中增强防护效果。
## 关键技术洞察
- Service Extensions plugins 的技术独特性基于 **WebAssembly (Wasm)** 算法,支持轻量级边缘计算,工作原理是通过 **Proxy-Wasm** API 使 Wasm 模块与网络代理交互,实现毫秒级启动和近原生执行速度。具体而言,插件在请求路径中运行自定义代码,处理输入/输出数据,同时利用沙箱环境隔离执行逻辑。
- 技术创新点包括跨平台便携性和多语言支持(如 Rust、C++ 和 Go),这对性能的影响是显著降低延迟和提升吞吐量;对安全性的影响在于沙箱执行防止代码注入;对可用性的影响是支持自动扩展,减少单点故障。创新点还体现在与 Cloud CDN 的无缝集成,允许插件在不同路径(如边缘或后缓存)选择执行位置。
- 技术实现的挑战包括 Wasm 模块的兼容性和资源管理,解决方式是通过 Google 支持的开源 **Proxy-Wasm** 项目标准化接口,确保插件在各种部署中高效运行,同时通过沙箱机制缓解安全风险。
<!-- AI_TASK_END: AI竞争分析 -->
<!-- AI_TASK_START: AI全文翻译 -->
# 使用 Service Extensions 插件在边缘运行您自己的代码
**原始链接:** [https://cloud.google.com/blog/products/networking/run-service-extensions-plugins-with-cloud-cdn](https://cloud.google.com/blog/products/networking/run-service-extensions-plugins-with-cloud-cdn)
**发布时间:** 2025-06-25
**厂商:** GCP
**类型:** BLOG
---
Networking
#
使用 Service Extensions 插件在边缘运行您自己的代码
2025 年 6 月 25 日
##### Arman Rye
产品经理
##### Martijn Stevenson
工程主管
##### 试用 Gemini 2.5
我们最智能的模型现已在 Vertex AI 上可用
[试用](https://console.cloud.google.com/vertex-ai/studio/freeform)
在 Google Cloud,我们致力于为全球的网页和 API 内容提供最佳性能。Cloud CDN (Cloud Content Delivery Network) 是一种高性能边缘缓存解决方案,运行在超过 200 个存在点上,我们持续为其添加更多功能和能力。最近,我们推出了缓存标签无效化、设备特征化、0-RTT 早期数据以及地理定位。这些强大的内置功能解决了诸多用例,但组织告诉我们,他们还需要一个更灵活、更轻量化的边缘计算解决方案。
我们很高兴宣布,您现在可以使用 Service Extensions 插件与 Cloud CDN 结合,在完全托管的 Google 环境中以最优延迟直接在请求路径中运行您自己的自定义代码。这让您能够自定义 Cloud CDN 和 Application Load Balancer (应用负载均衡器) 的行为,以满足业务需求。
Service Extensions 插件与 Cloud CDN 支持以下用例:
* **自定义流量导向:** 操作请求头以影响后端服务选择。
* **缓存优化:** 影响从 Cloud CDN 缓存中提供的内容。
* **异常处理:** 对于某些响应类别,将客户端重定向到自定义错误页面。
* **自定义日志记录:** 将用户定义的头或自定义数据记录到 Cloud Logging。
* **添加头:** 为您的应用或特定客户创建新头。
* **头操作:** 重写现有请求头或覆盖客户端头以发送到后端。
* **安全:** 根据客户端请求编写自定义安全策略,并在插件中做出执行决策。
### **运行代码的位置**
Service Extensions 插件在请求和响应处理路径中的多个位置运行。在本次发布中,您可以使用边缘扩展 (edge extension) 在请求到达 Cloud CDN 之前运行插件。在[之前的发布](https://cloud.google.com/blog/products/networking/service-extensions-plugins-for-application-load-balancers?e=48754805)中,我们添加了在 Cloud CDN 缓存后运行插件的能力,通过流量扩展 (traffic extension) 使其更接近源。现在,支持边缘扩展和流量扩展后,您可以选择代码在处理路径中执行的位置。

### **Service Extensions 深入探讨**
Service Extensions 插件专为作为 Application Load Balancer 请求路径一部分的轻量计算操作而设计。插件基于 WebAssembly (Wasm) 构建,这提供了多项优势:
1. 接近原生执行速度,以及单毫秒级启动时间
2. 支持多种编程语言,例如 Rust、C++,以及最近的[Go](https://cloud.google.com/blog/products/application-development/go-1-24-expands-support-for-wasm?e=48754805)
3. 跨平台可移植性,因此您可以在各种部署中运行相同的插件,或在本地用于测试
4. 安全保护,例如在沙箱化环境 (sandboxed environment) 中执行插件逻辑
Service Extensions 插件利用 [Proxy-Wasm](https://github.com/proxy-wasm),这是一个 Google 支持的开源项目,提供 Wasm 模块与网络代理交互的标准 API。
### **使用 Cloudinary 的图像和视频优化解决方案**
我们很高兴宣布我们的最新合作伙伴将其产品与 Service Extensions 和 Cloud CDN 集成。Cloudinary 提供先进的图像和视频优化解决方案,并已将其与 Service Extensions 插件集成,以部署给 Cloud CDN 客户。
作为 Wasm 插件打包,Cloudinary 的插件从客户端请求中获取指令,例如 User-Agent 信息,以及通过 HTTP Accept 头表达的内容类型 (MIME types),以确定为最终用户提供的最优媒体类型。该插件还处理缓存键归一化 (Cache Key normalization),确保图像和视频根据设备类型和内容类型正确缓存。
*“ Cloudinary 的图像和视频解决方案帮助客户大规模管理并优化其视觉媒体资产,同时确保它们针对最佳格式、设备、渠道和查看上下文进行了优化。我们很高兴与 Google 团队合作,通过 Service Extensions 向 Cloud CDN 客户提供 Cloudinary 的图像和视频优化解决方案。”* - Gary Ballabio,云inary战略技术合作伙伴副总裁
有关 Cloudinary 解决方案的更多信息,请查看[此指南](https://cloudinary.com/integrations/google-cloud-cdn)。
### **下一步**
要开始使用 Service Extensions 插件,请查看我们的增长样本[仓库](https://github.com/GoogleCloudPlatform/service-extensions/tree/main/plugins#getting-started),其中包含本地测试工具,并按照文档中的[快速入门指南](https://cloud.google.com/service-extensions/docs/prepare-plugin-code)。
Posted in
* [Networking](https://cloud.google.com/blog/products/networking)
<!-- AI_TASK_END: AI全文翻译 -->