在 API Gateway 上部署 Cloud Endpoints API

Cloud Endpoints 是一個 API 管理系統,可協助您保護、監控、分析 API,以及設定 API 配額。Endpoints 會使用可擴充服務 Proxy (ESP)可擴充服務 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 規格定義格式和選項,與 Cloud Endpoints for OpenAPI 支援的格式和選項相同。 也就是說,您可以使用 Endpoints OpenAPI 規格中的相同安全性、配額和其他定義,在 API Gateway 中定義 API。

Endpoints 和 API Gateway 的唯一差異在於處理 OpenAPI 規格定義中的 host 屬性方式:

  • 在 Endpoints 中,將 host 屬性設為部署 ESP 時建立的網址主機名稱部分,其中 ESP 是用來代管 Endpoints API 的服務。
  • 在 API Gateway 中,省略 host 或將其設為已部署 API 的 DNS 名稱。API 供應商與 API 使用者共用 OpenAPI 規格時,通常會將其設為 DNS 名稱。不過,API Gateway 不會強制執行 host 屬性的值。

舉例來說,以下是 Endpoints 用來定義 API 的 OpenAPI 定義部分內容,可存取部署在 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 閘道部署模型」。

如要進一步瞭解如何為 API 定義建立 OpenAPI 規格,請參閱 OpenAPI 總覽

後續步驟