比较可扩展服务代理和 Cloud Endpoints Frameworks

本页介绍了适用于 App Engine 标准环境的 Endpoints Frameworks 与 Extensible Service Proxy (ESP) 之间的区别。Cloud Endpoints 中使用 Extensible Service Proxy (ESP) 来管理使用 OpenAPIgRPC 的 API。如需详细了解 Endpoints 选项,请参阅选择 Endpoints 选项

概览

Cloud Endpoints 是一个 API 管理系统,可帮助您使用 Google 用于其自身 API 的同一基础架构保护、监控和分析 API 并设置 API 配额。API 管理功能包括身份验证、API 密钥、监控、日志记录和跟踪功能,这些功能与用于实现 API 的技术无关。API 管理功能通过 ESP 或 Endpoints Frameworks 提供。

可扩展服务代理

在适用于 OpenAPI 和 gRPC 的 Endpoints 中,API 请求会通过 Extensible Service Proxy 中继,该代理会使用 Service Control API 验证密钥和身份验证令牌,并发送信号(指标和日志)。ESP 提供的分离意味着,您可以使用任何语言编写 REST 或 gRPC 后端代码,并且可以使用 gRPC 或任何支持使用 OpenAPI 进行 API 说明的框架。

  • 使用 OpenAPI 的 API:API 后端可以在 App Engine 柔性环境、Google Kubernetes Engine (GKE)、Compute Engine、Kubernetes 或本地部署中运行。

  • 使用 gRPC 的 API:API 后端可以在 GKE、Compute Engine、Kubernetes 或本地部署中运行。

ESP 架构

请求通过以下路径发送:

  1. 系统接收对您的代码的请求,并将请求发送给 ESP。
  2. ESP 向 Service Control 发送检查请求。
  3. 如果您已将自己的 API 配置为需要 API 密钥或身份验证,则 Service Control 会执行检查,以确认是否允许请求并将响应发送回 ESP。
  4. 如果不允许请求,则 ESP 会拒绝请求。如果允许请求,则会将其转发给后端代码。无论哪种情况,ESP 都会记录与请求有关的信息。

Endpoints API 管理的价格取决于每月的调用次数。

Endpoints Frameworks

对于在 App Engine 标准环境中运行的 API 后端,您可以使用 Endpoints Frameworks 来帮助开发者快速开始提供 API。Endpoints Frameworks 是一种网络框架,并且是 Python Flask 或 Java Jersey 的替代方案。Endpoints Frameworks 与 Service Control API 集成在一起,这意味着使用了 Endpoints Frameworks 的后端不需要在“可扩展服务代理”后面运行。

Endpoints Frameworks

如果您已启用 API 管理功能,则请求通过以下路径发送:

  1. 系统接收对您的代码的请求,并将请求发送给 Endpoints 管理模块。
  2. Endpoints 管理模块向 Service Control 发送检查请求。
  3. 如果您已将自己的 API 配置为需要 API 密钥或身份验证,则 Service Control 会执行检查,以确认是否允许请求并将响应发送回 Endpoints 管理模块。
  4. 如果不允许请求,则 Endpoints 管理模块会拒绝请求。如果允许请求,则会将其转发给 Endpoints Frameworks。无论哪种情况,Endpoints 管理模块都会记录与请求有关的信息。
  5. Endpoints Frameworks 将请求路由到后端代码。

可使用带有或不带 API 管理功能的 Endpoints Frameworks。不带 API 管理功能的 Endpoints Frameworks 可免费使用。API 管理功能按照 Cloud Endpoints 价格页面 的规定收费。

只有在 App Engine 标准环境中运行的服务支持 Endpoints Frameworks。在 Compute Engine、GKE、App Engine 柔性环境或其他环境中,您的服务必须在 ESP 后面运行。

如果服务在 ESP 后面运行,后端代码可以使用任何语言和框架编写,例如 Python Flask、Java Jersey、Node。在此类环境中,无需使用 Endpoints Frameworks 进行 API 管理。

后续步骤