在 API Gateway 上部署 Cloud Endpoints API
Cloud Endpoints 是一个 API 管理系统,可帮助您保护、监控、分析和设置 API 配额。Endpoints 使用 Extensible Service Proxy (ESP) 或 Extensible Service Proxy V2 Beta 版(ESPv2 Beta 版)托管您的 API。
使用 Endpoints 时,您可以通过以下三种方式定义 API:
- 适用于 OpenAPI 的 Cloud Endpoints
- 适用于 gRPC 的 Cloud Endpoints
- 适用于 App Engine 标准环境的 Cloud Endpoints Frameworks
使用 API Gateway 开发 API
API Gateway 支持使用 OpenAPI 规范 2.0 版描述的 API。这意味着您可以从 API Gateway 上的 Endpoints 部署 OpenAPI 规范。
在 API Gateway 上部署 Endpoints OpenAPI 规范
API Gateway 支持的 OpenAPI 规范定义格式和选项与适用于 OpenAPI 的 Cloud Endpoints 支持的相同。 这意味着您可以使用 Endpoints OpenAPI 规范中的安全性、配额和其他定义来定义 API Gateway 中的 API。
Endpoints 和 API Gateway 之间的唯一区别是它们如何处理 OpenAPI 规范定义中的 host
属性:
- 在 Endpoints 中,将
host
属性设置为部署 ESP 时创建的网址的主机名部分,其中 ESP 是用于托管 Endpoints API 的服务。 在 API Gateway 中,省略
host
或将其设置为已部署 API 的 DNS 名称。与 API 使用方共享 OpenAPI 规范时,API 提供商通常会将其设置为 DNS 名称。但是,API Gateway 不会强制执行host
属性的值。
例如,下面是 OpenAPI 规范的一部分,Endpoints 使用它来定义 API 以访问在 Cloud Run 函数上部署的后端服务:
swagger: '2.0' info: title: Cloud Endpoints + GCF description: Sample API on Cloud Endpoints with a Google Cloud Functions backend version: 1.0.0 host: ESP_HOST schemes: - https produces: - application/json paths: /hello: ...
对于 Endpoints,您需要执行以下操作:
部署 ESP,以创建网址,然后用于访问部署到 ESP 的 API。例如:
https://gateway-12345-uc.a.run.app
修改 OpenAPI 规范,将
host
属性设置为 ESP 网址的域名。例如,host: gateway-12345-uc.a.run.app
将 OpenAPI 规范部署到 ESP。
使用 ESP 网址访问您的 API。在上面的 OpenAPI 规范中,
paths
元素设置为/hello
,因此您可以使用以下网址访问此 API:https://gateway-12345-uc.a.run.app/hello
如您所见,对于 Endpoints,您必须先部署 ESP,然后才能设置 host
属性的值。
如需使用此 API 定义为 API Gateway 创建 API 配置,您可以完全删除 host
属性,也可以将其保留在文件中。API Gateway 不会强制执行 host
属性的值。
部署网关的网址(即您的客户端用于访问 API 的网址)是在您创建网关时定义的,格式如下:
https://GATEWAY_ID-HASH.REGION_CODE.gateway.dev
其中,GATEWAY_ID 是网关的名称,HASH 是部署 API 时生成的唯一哈希代码,REGION_CODE 是 GCP 区域的代码部署网关的位置。
将 API 部署到网关实例后,用于访问 /hello
的网址如下:
https://my-gateway-a12bcd345e67f89g0h.uc.gateway.dev/hello
如需详细了解如何部署 API,请参阅 API Gateway 部署模型。
如需详细了解如何为 API 定义创建 OpenAPI 规范,请参阅 OpenAPI 概览。