在 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

Endpoints 和 API Gateway 都支持使用 OpenAPI 规范(OpenAPI 2.0OpenAPI 3.x)描述的 API。如果您已使用 OpenAPI 定义 Endpoints API,这意味着您也可以在 API Gateway 上部署 Endpoints API。

在 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 functions 上部署的后端服务:

OpenAPI 2.0

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: HOST
schemes:
  - https
  ...

OpenAPI 3.x

openapi: 3.0.4
info:
  title: Cloud Endpoints + GCF
  description: Sample API on Cloud Endpoints with a Google Cloud Functions backend
  version: 1.0.0
servers:
- url: https://HOST
  x-google-endpoint: {}
...

使用 Endpoints 部署 API 时,您需要:

  1. 部署 Vertex AI Search 或 ESPv2 Beta 版,以创建网址,然后用于访问已部署的 API。例如:

    https://gateway-12345-uc.a.run.app
  2. 修改 OpenAPI 规范,将 host(在 OpenAPI 2.0 中)或 servers.url(在 OpenAPI 3.x 中)属性设置为 Vertex AI Search 或 ESPv2 Beta 版网址的域名。例如

    host: gateway-12345-uc.a.run.app
  3. 将 OpenAPI 定义部署到 Vertex AI Search 或 ESPv2 Beta 版。

  4. 使用 Vertex AI Search 或 ESPv2 Beta 版网址访问您的 API。在上述 OpenAPI 定义中,paths 元素设置为 /hello,因此您可以使用以下网址访问此 API:

    https://gateway-12345-uc.a.run.app/hello

如需使用同一 API 定义为 API Gateway 创建 API 配置,您可以完全删除 hostservers.url 属性,也可以将其保留在文件中。API Gateway 不会强制执行 host 属性的值。

部署网关的网址(即您的客户端用于访问 API 的网址)是在您创建网关时定义的,格式如下:

https://GATEWAY_ID-HASH.REGION_CODE.gateway.dev

其中,GATEWAY_ID 是网关的名称,HASH 是部署 API 时生成的唯一哈希代码,REGION_CODE 是部署网关的Google Cloud 区域的代码。

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

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

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

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

后续步骤