Cloud Endpoints APIs in API Gateway bereitstellen
Cloud Endpoints ist ein API-Verwaltungssystem, mit dem Sie Ihre APIs schützen, überwachen, analysieren und Kontingente dafür festlegen können. Endpoints verwendet den Extensible Service Proxy (ESP) oder Extensible Service Proxy V2 Beta (ESPv2 Beta) zum Hosten Ihrer APIs.
Wenn Sie Endpoints verwenden, haben Sie drei Möglichkeiten, Ihre API zu definieren:
- Cloud Endpoints für OpenAPI
- Cloud Endpoints for gRPC
- Cloud Endpoints Frameworks für die App Engine-Standardumgebung
APIs mit API Gateway entwickeln
Sowohl Endpoints als auch API Gateway unterstützen APIs, die mit der OpenAPI-Spezifikation OpenAPI 2.0 oder OpenAPI 3.x beschrieben werden. Wenn Sie OpenAPI zum Definieren Ihrer Endpoints-APIs verwendet haben, können Sie Ihre Endpoints-APIs auch in API Gateway bereitstellen.
OpenAPI-Spezifikationen für Endpoints in API Gateway bereitstellen
API Gateway unterstützt dasselbe OpenAPI-Spezifikationsdefinitionsformat und dieselben Optionen wie Cloud Endpoints for OpenAPI. Das bedeutet, dass Sie dieselben Sicherheits-, Kontingent- und anderen Definitionen aus Ihren Endpoints-OpenAPI-Spezifikationen verwenden können, um eine API in API Gateway zu definieren.
Der einzige Unterschied zwischen Endpoints und API Gateway besteht darin, wie die host-Eigenschaft in der OpenAPI-Spezifikationsdefinition verarbeitet wird:
- Legen Sie in Endpoints die Eigenschaft
hostauf den Hostnamen-Teil der URL fest, die beim Bereitstellen von ESP erstellt wurde. ESP ist der Dienst, der zum Hosten Ihrer Endpoints API verwendet wird. - In API Gateway: Lassen Sie
hostweg oder legen Sie den DNS-Namen der bereitgestellten API fest. API-Anbieter legen sie häufig auf den DNS-Namen fest, wenn sie die OpenAPI-Spezifikation für ihre API-Nutzer freigeben. API Gateway erzwingt jedoch nicht den Wert der Eigenschafthost.
Das Folgende ist beispielsweise ein Teil einer OpenAPI-Definition, die von Endpoints verwendet wird, um eine API für den Zugriff auf einen Backend-Dienst zu definieren, der in Cloud Run-Funktionen bereitgestellt wird:
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: {} ...
Wenn Sie Endpoints zum Bereitstellen von APIs verwenden,
Stellen Sie Vertex AI Search oder ESPv2 Beta bereit. Dadurch wird die URL erstellt, mit der Sie dann auf bereitgestellte APIs zugreifen. Beispiel:
https://gateway-12345-uc.a.run.app
Bearbeiten Sie die OpenAPI-Spezifikation, um die Eigenschaft
host(in OpenAPI 2.0) oderservers.url(in OpenAPI 3.x) auf den Domainnamen der Vertex AI Search- oder ESPv2 Beta-URL festzulegen. Beispiel:host: gateway-12345-uc.a.run.app
Stellen Sie die OpenAPI-Definition in Vertex AI Search oder ESPv2 Beta bereit.
Greifen Sie über die Vertex AI Search- oder ESPv2 Beta-URL auf Ihre API zu. In den vorherigen OpenAPI-Definitionen ist das
paths-Element auf/hellofestgelegt, sodass Sie über die folgende URL auf diese API zugreifen können:https://gateway-12345-uc.a.run.app/hello
Wenn Sie dieselbe API-Definition verwenden möchten, um eine API-Konfiguration für API Gateway zu erstellen, können Sie die Eigenschaft host oder servers.url entweder vollständig löschen oder in der Datei belassen.
API Gateway erzwingt den Wert der Eigenschaft host nicht.
Die URL des bereitgestellten Gateways und damit die URL, die Ihre Clients für den Zugriff auf Ihre API verwenden, wird beim Erstellen des Gateways im folgenden Format definiert:
https://GATEWAY_ID-HASH.REGION_CODE.gateway.dev
Dabei ist GATEWAY_ID der Name des Gateways, HASH der eindeutige Hashcode, der beim Bereitstellen der API generiert wurde, und REGION_CODE der Code für die Google Cloud -Region, in der Sie das Gateway bereitgestellt haben.
Nachdem Sie eine API für eine Gateway-Instanz bereitgestellt haben, lautet die URL für den Zugriff auf /hello:
https://my-gateway-a12bcd345e67f89g0h.uc.gateway.dev/hello
Weitere Informationen zum Bereitstellen von APIs finden Sie unter API-Gateway-Bereitstellungsmodell.
Weitere Informationen zum Erstellen der OpenAPI-Spezifikation für Ihre API-Definition finden Sie unter OpenAPI-Übersicht.