API auf einem Gateway bereitstellen
Vorbereitung
Bevor Sie eine API-Konfiguration in API Gateway bereitstellen können, müssen folgende Voraussetzungen erfüllt sein:
Bereiten Sie die Entwicklungsumgebung wie unter Entwicklungsumgebung konfigurieren beschrieben vor.
Sie haben eine API-Konfiguration aus Ihrer API-Definition erstellt.
Anforderungen an die Gateway-ID
Bei vielen der unten aufgeführten gcloud
-Befehle müssen Sie die ID des Gateways im folgenden Format angeben: GATEWAY_ID.
In API Gateway gelten folgende Anforderungen für die Gateway-ID:
- Darf maximal 49 Zeichen lang sein.
- Darf nur Kleinbuchstaben, Ziffern oder Bindestriche enthalten.
- Er darf nicht mit einem Bindestrich beginnen.
- Er darf keinen Unterstrich enthalten.
Endpunkt der bereitgestellten API-Konfiguration definieren
Wenn Sie eine API-Konfiguration für ein Gateway bereitstellen, erstellt API Gateway eine eindeutige URL für das Gateway in der Domain gateway.dev
. Ihre API-Clients verwenden dann eine URL im folgenden Format, um auf die bereitgestellte API-Konfiguration zuzugreifen:
https://GATEWAY_ID-HASH.REGION_CODE.gateway.dev
Dabei ist GATEWAY_ID der Name des Gateways, HASH der eindeutige Hash-Code, der beim Bereitstellen der API generiert wurde, und REGION_CODE der Code für die GCP-Region, in der Sie das Gateway bereitgestellt haben.
Beispiel:
https://my-gateway-a12bcd345e67f89g0h.uc.gateway.dev
API-Konfiguration für ein Gateway bereitstellen
Verwenden Sie die Google Cloud CLI, um eine API-Konfiguration in einem Gateway bereitzustellen. Wenn Sie die API-Konfiguration bereitstellen, müssen Sie den Namen der API angeben. Wenn das Gateway für die API noch nicht vorhanden ist, wird es mit diesem Befehl ebenfalls erstellt.
So stellen Sie eine API-Konfiguration für ein Gateway bereit:
Überprüfen Sie anhand der Projekt-ID, die vom folgenden Befehl zurückgegeben wurde, ob das Gateway im richtigen Projekt erstellt wird.
gcloud config list project
Wenn Sie das Standardprojekt ändern müssen, führen Sie den folgenden Befehl aus und ersetzen Sie PROJECT_ID durch die ID des Google Cloud-Projekts, in dem Sie den Dienst erstellen möchten:
gcloud config set project PROJECT_ID
Hier erhalten Sie Hilfe zum Befehl
gateway create
:gcloud api-gateway gateways create --help
Führen Sie den folgenden Befehl aus, um die API-Konfiguration im Gateway bereitzustellen:
gcloud api-gateway gateways create GATEWAY_ID \ --api=API_ID --api-config=CONFIG_ID \ --location=GCP_REGION --project=PROJECT_ID
wobei
- GATEWAY_ID die ID des neuen Gateways angibt. Wenn das Gateway noch nicht vorhanden ist, wird es mit diesem Befehl erstellt.
- API_ID die ID der API Gateway API angibt, die mit diesem Gateway verknüpft ist.
- CONFIG_ID die ID der im Gateway bereitgestellten API-Konfiguration angibt. Sie müssen beim Erstellen eines Gateways eine API-Konfiguration angeben.
GCP_REGION gibt die GCP-Region für das bereitgestellte Gateway an.
PROJECT_ID die Google Cloud-Projekt-ID angibt.
Beim Erstellen des Gateways gibt
gcloud
Informationen an das Terminal aus.Nach erfolgreichem Abschluss können Sie den folgenden Befehl verwenden, um Details zum Gateway anzuzeigen:
gcloud api-gateway gateways describe GATEWAY_ID \ --location=GCP_REGION --project=PROJECT_ID
Dieser Befehl gibt Folgendes zurück:
apiConfig: projects/PROJECT_ID/locations/global/apis/API_ID/configs/CONFIG_ID createTime: '2020-02-05T13:44:12.997862831Z' defaultHostname: my-gateway-a12bcd345e67f89g0h.uc.gateway.dev displayName: GATEWAY_ID name: projects/PROJECT_ID/locations/GCP_REGION/gateways/GATEWAY_ID serviceAccount: email: gateway-111111@222222-tp.iam.gserviceaccount.com state: ACTIVE updateTime: '2020-02-05T13:45:00.844705087Z'
Beachten Sie den Wert des Attributs
defaultHostname
. Dies ist der Hostnamen-Teil der Gateway-URL. Um auf eine in diesem Gateway bereitgestellte API-Konfiguration zuzugreifen, verwenden Sie eine URL in folgendem Format:https://my-gateway-a12bcd345e67f89g0h.uc.gateway.dev
Die Google Cloud CLI hat viele Optionen, einschließlich der in der gcloud-Referenz beschriebenen. Darüber hinaus können Sie für API Gateway beim Erstellen eines Gateways die folgenden Optionen festlegen:
--async
: Gibt die Steuerung sofort an das Terminal zurück, ohne auf den Abschluss des Vorgangs zu warten.--display-name=NAME
: Gibt den Anzeigenamen des Gateways an, d. h. den in der Benutzeroberfläche angezeigten Namen. Verwenden Sie keine Leerzeichen im Namen. Verwenden Sie stattdessen Bindestriche und Unterstriche. Der Standardwert ist GATEWAY_ID.--labels=KEY1=VALUE1,KEY2=VALUE2,...
: Gibt Labels an, die mit dem Gateway verknüpft sind.
Gateways auflisten
So listen Sie Gateways für ein bestimmtes Projekt auf:
gcloud api-gateway gateways list --project=PROJECT_ID
Dieser Befehl gibt die Ausgabe in folgender Form zurück:
GATEWAY_ID LOCATION DISPLAY_NAME STATE CREATE_TIME UPDATE_TIME my-gateway us-central1 my-gateway ACTIVE 2021-01-07T00:04:19 2022-05-21T00:33:46
So listen Sie Gateways für ein bestimmtes Projekt und eine bestimmte Region auf:
gcloud api-gateway gateways list --location=GCP_REGION --project=PROJECT_ID
Verwenden Sie einen filter
-Ausdruck, um die mit einer bestimmten API verknüpften Gateways aufzulisten:
gcloud api-gateway gateways list \ --filter="apiConfig:projects/PROJECT_ID/locations/global/apis/API_ID/*" \ --project=PROJECT_ID
Mit diesem filter
können Sie auch Gateways für eine bestimmte API-Konfiguration auflisten:
gcloud api-gateway gateways list \ --filter="apiConfig:projects/PROJECT_ID/locations/global/apis/API_ID/configs/CONFIG_ID" \ --project=PROJECT_ID
Verwenden Sie die Projekt-, Regions- und Gateway-IDs, um detaillierte Informationen zum Gateway zu erhalten, einschließlich der Identität der im Gateway bereitgestellten API-Konfiguration:
gcloud api-gateway gateways describe GATEWAY_ID \ --location=GCP_REGION --project=PROJECT_ID
Gateway aktualisieren
Gateway auf Folgendes aktualisieren:
- Eine andere API-Konfiguration für das Gateway bereitstellen
- Anzeigenamen aktualisieren
- Aktualisieren Sie die Labels
Verwenden Sie den folgenden gcloud
-Befehl, um ein vorhandenes Gateway zu aktualisieren. Dabei wird UPDATE_OPTIONS durch das Flag und den Wert der Gateway-Option ersetzt, die Sie aktualisieren möchten:
gcloud api-gateway gateways update GATEWAY_ID \ UPDATE_OPTIONS --api=API_ID --location=GCP_REGION --project=PROJECT_ID
So aktualisieren Sie beispielsweise die im Gateway bereitgestellte API-Konfiguration:
gcloud api-gateway gateways update GATEWAY_ID \ --api-config=NEW_CONFIG_ID --api=API_ID --location=GCP_REGION --project=PROJECT_ID
wobei NEW_CONFIG_ID die neue API-Konfiguration angibt, die im Gateway bereitgestellt werden soll.
Eine vollständige Liste der verfügbaren Update-Flags und ‑Argumente finden Sie in der Referenz gcloud api-gateway gateways update. Mit dem folgenden Befehl können Sie alle Updateoptionen aufrufen:
gcloud api-gateway gateways update --help
Gateway löschen
Verwenden Sie den folgenden gcloud
-Befehl, um ein vorhandenes Gateway zu löschen:
gcloud api-gateway gateways delete GATEWAY_ID \ --location=GCP_REGION --project=PROJECT_ID