利用 Service Extensions, Google Cloud 产品(例如 Cloud Load Balancing 和 Media CDN)的用户可以直接将自定义代码插入数据路径。这有助于您自定义这些产品的行为,以满足您的业务需求。本页面简要介绍了服务扩展。
扩展类型
Cloud Load Balancing 和 Media CDN 等网络产品中的数据路径可以直观地表示为数据处理阶段的流水线。借助 Service Extensions,您可以将自定义逻辑插入到上述一个或多个阶段。
Service Extensions 提供了两种插入自定义逻辑的方式:插件和标注。
插件
借助插件,您可以将自定义代码内嵌到网络数据路径中。您可以使用 WebAssembly (Wasm) 和 Proxy-Wasm ABI 构建这些插件。
插件在 Google 管理的沙盒基础架构上以 Wasm 模块的形式运行,类似于无服务器基础架构。插件在 Google 管理的计算资源上运行。它们的功能受限,并且有严格的运行时要求。 它们靠近数据平面运行,并且会对延迟优化进行管理。 下图展示了插件的工作原理。
如需详细了解插件,请参阅插件概览。
标注
借助调出,您可以在数据处理期间使用 Cloud Load Balancing 对 Google 服务和用户自管服务进行 Envoy gRPC 调用。
标注在用户管理的计算虚拟机上、GKE Multi-Cloud 上的 Google Kubernetes Engine (GKE) Pod 上或本地环境中作为通用 gRPC 服务器运行。下图展示了对服务的标注是如何运作的。
标注没有运行时限制,并且可以根据需要重复使用现有软件。借助标示,您可以享受到全代管式服务的优势,同时还可以根据特定工作负载的独特需求进行自定义。 您只需确认您的公告服务的可伸缩性和可用性。
如需详细了解标注,请参阅 Cloud Load Balancing 标注概览。
Cloud Load Balancing 扩展程序
借助 Cloud Load Balancing 的 Service Extensions,用户可以为受支持的应用负载平衡器的负载均衡请求和响应处理路径添加丰富的自定义功能。
如需了解详情,请参阅 Cloud Load Balancing 扩展程序概览。
插件
借助 Service Extensions,您可以通过在 Cloud Load Balancing 处理路径中添加预发布的插件,来满足您的自定义需求。
在以下示例场景中,将插件与 Cloud Load Balancing 搭配使用:
- 异常处理
- 将客户端重定向到自定义错误页面以处理某些响应类。
- 自定义日志记录
- 将用户定义的标头或自定义数据记录到 Cloud Logging 中。
- 标头添加
- 创建与您的应用或特定客户相关的新标头。
- 为请求和响应插入新标头。
- 标头处理
- 重写现有请求和响应标头,或在客户端标头发送到后端的过程中或在响应客户端时替换客户端标头。
- 安全性
- 根据客户端请求或响应标头编写自定义安全政策,并在插件中做出强制执行决策。
- 脚本注入
- 重写来自来源的 HTML,以实现 Google reCAPTCHA 集成或 Google Analytics 代码植入。
- 影响 Cloud CDN
- 操纵 HTTP 请求特征,以影响自定义缓存动态,并确定从 Cloud CDN 缓存传送哪些内容。
- 转送
- 重写 HTTP 请求以影响后端服务选择,从而在边缘做出更高级的路由决策。
对用户管理的服务进行标注
借助 Service Extensions,受支持的应用负载平衡器可将调用从数据处理路径发送到用户管理的后端服务。
将 callout 与 Cloud Load Balancing 搭配使用,可实现以下目的:
- 当计算或存储量是任意值时
- 当您想要保持状态时
- 当您想使用外部服务(例如 BigQuery 或托管在任何位置的第三方应用)时
标注非常灵活,支持各种自定义设置。 以下是一些日常使用场景示例:
- 自定义路由和流量管理
- 执行 HTTP 或网址重定向。
- 根据应用特定的逻辑修改请求属性(例如标头或网址),以强制网址映射选择与请求最初的目标不同的后端服务。
- 在将流量转发到后端服务之前,根据复杂的应用专用逻辑添加、移除或修改标头或重写网址。
- 根据请求的特定属性实现自定义会话亲和性或粘性。
- 在预览中,实现动态转发,以通过编程方式将租户映射到端点。
- 安全和日志记录
- 将载荷或自定义标头中的自定义信息记录到 Logging 或自定义的日志记录解决方案中。
- 使用安全工具或服务,包括自定义用户身份验证和授权支持。
- 验证任意标头和查询参数,例如设备 ID。
- 将请求和响应记录到第三方日志记录解决方案中。
- 实现自定义用户身份验证和授权。
- 合作伙伴集成
- 集成安全产品,例如 API Gateway 安全、BOT 管理或 Web 应用防火墙 (WAF)。
- 授权
- 丰富授权决策流程,或进一步限制 Google 提供的内置授权引擎的授权决策。
- 混合来自多个授权系统的授权决策。
- 将 Google 授权引擎与更广泛的授权生态系统和基础设施(包括外部政策引擎)无缝集成。
如需了解详情,请参阅 Cloud Load Balancing 和 Cloud CDN 扩展程序概览。
对 Google 服务的调用
借助 Service Extensions,受支持的应用负载平衡器可将调用从数据处理路径发送到所选的 Google 服务。
您可以配置扩展程序来调用 Model Armor,以在应用负载平衡器(包括 GKE 推理网关)上统一强制执行推理流量的安全政策。
如需了解详情,请参阅与 Google 服务集成。
GKE 扩展程序
Google Kubernetes Engine (GKE) Gateway 支持使用扩展程序将自定义代码添加到负载均衡处理路径中。您可以使用这些扩展程序来自定义路由、修改请求或响应载荷,以及与外部服务集成。
如需了解详情,请参阅使用 Service Extensions 自定义 GKE Gateway 流量。
媒体 CDN 扩展服务
媒体 CDN 提供许多内置的核心功能,可满足内容分发网络 (CDN) 的最常见用例。服务扩展有助于您满足超出这些功能范围的多种需求。
如需了解详情,请参阅 Media CDN 扩展程序概览。
媒体 CDN 的插件
借助 Service Extensions,您可以将预发布的插件添加到媒体 CDN 处理路径中,以满足您的自定义需求。
以下是一些关键使用场景,您可以在这些场景中使用插件搭配媒体 CDN:
- 自定义
- 重写请求网址。
- 对标头值进行规范化处理,以提升缓存性能。
- 安全和日志记录
- 在直播活动期间,屏蔽使用盗版令牌的用户。
- 支持自定义用户身份验证和授权。
- 翻译并实现自定义网址签名。
- 自定义缓存键、应用专用标头或设备类型。
- 将自定义变量记录到 Cloud Logging。
- 定位和创收
- 通过 A/B 测试提高转化率。
- 实现自定义广告定位。
- 免费提供试用使用模式。
- 合作伙伴集成
- 实施视频水印。
- 优化视频和图片。