在 API Gateway 上部署 Cloud Endpoints API

Cloud Endpoints 是一个 API 管理系统,可帮助您保护、监控、分析和设置 API 配额。Endpoints 使用 Extensible Service Proxy (ESP)Extensible Service Proxy V2 Beta 版(ESPv2 Beta 版)托管您的 API。

使用 Endpoints 时,您可以通过以下三种方式定义 API:

使用 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,您需要执行以下操作:

  1. 部署 ESP,以创建网址,然后用于访问部署到 ESP 的 API。例如:

    https://gateway-12345-uc.a.run.app
  2. 修改 OpenAPI 规范,将 host 属性设置为 ESP 网址的域名。例如,

    host: gateway-12345-uc.a.run.app
  3. 将 OpenAPI 规范部署到 ESP。

  4. 使用 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_CODEGCP 区域的代码部署网关的位置。

将 API 部署到网关实例后,用于访问 /hello 的网址如下:

https://my-gateway-a12bcd345e67f89g0h.uc.gateway.dev/hello

如需详细了解如何部署 API,请参阅 API Gateway 部署模型

如需详细了解如何为 API 定义创建 OpenAPI 规范,请参阅 OpenAPI 概览

后续步骤