API auf einem Gateway bereitstellen

Vorbereitung

Bevor Sie eine API-Konfiguration in API Gateway bereitstellen können, benötigen Sie Folgendes:

Anforderungen an Gateway-IDs

Bei vielen der unten aufgeführten gcloud-Befehle müssen Sie die ID des Gateways im Format GATEWAY_ID angeben. API Gateway erzwingt die folgenden 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 Hashcode, der beim Bereitstellen der API generiert wurde, und REGION_CODE der Code für die GCP-Region ist. wo Sie das Gateway bereitgestellt haben.

Beispiel:

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

API-Konfiguration für ein Gateway bereitstellen

Stellen Sie mit dem gcloud-Befehlszeilentool eine API-Konfiguration für ein Gateway bereit. Wenn Sie die API-Konfiguration bereitstellen, müssen Sie den Namen der API angeben. Wenn das Gateway nicht bereits für die API vorhanden ist, wird es mit diesem Befehl auch erstellt.

So stellen Sie eine API-Konfiguration für ein Gateway bereit:

  1. Ü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
  2. Hier erhalten Sie Hilfe zum Befehl gateway create:

    gcloud api-gateway gateways create --help
  3. Führen Sie den folgenden Befehl aus, um die API-Konfiguration für das 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 gibt die ID des neuen Gateways an. Wenn das Gateway noch nicht vorhanden ist, wird es mit diesem Befehl erstellt.
    • API_ID gibt die ID der API Gateway API an, die mit diesem Gateway verknüpft ist.
    • CONFIG_ID gibt die ID der im Gateway bereitgestellten API-Konfiguration an. 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 gibt die Google Cloud-Projekt-ID an.

    Beim Erstellen des Gateways gibt gcloud Informationen an das Terminal aus.

  4. 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 Hostname in der Gateway-URL. Für den Zugriff auf eine auf diesem Gateway bereitgestellte API-Konfiguration verwenden Sie eine URL im folgenden Format:

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

Das gcloud-Befehlszeilentool 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. Dies ist der in der UI angezeigte Name. 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 dem Gateway zugeordnet 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 im folgenden Format zurück:

NAME                                                          DISPLAY_NAME  STATE
projects/PROJECT_ID/locations/GCP_REGION/gateways/GATEWAY_ID  GATEWAY_ID    ACTIVE

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 Gateways aufzulisten, die einer bestimmten API zugeordnet sind:

gcloud api-gateway gateways list \
  --filter="apiConfig:projects/PROJECT_ID/locations/global/apis/API_ID/*" \
  --project=PROJECT_ID

Alternativ können Sie filter verwenden, um Gateways für eine bestimmte API-Konfiguration aufzulisten:

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-, Region- und Gateway-IDs, um detaillierte Informationen zum Gateway abzurufen, einschließlich der Identität der auf dem Gateway bereitgestellten API-Konfiguration:

gcloud api-gateway gateways describe GATEWAY_ID \
  --location=GCP_REGION --project=PROJECT_ID

Gateway aktualisieren

Gateway aktualisieren für:

  • Andere API-Konfiguration für das Gateway bereitstellen
  • Anzeigenamen aktualisieren
  • Aktualisieren Sie die Labels

Verwenden Sie den folgenden Befehl gcloud, um ein vorhandenes Gateway zu aktualisieren:

gcloud api-gateway gateways update GATEWAY_ID \
  UPDATE_OPTIONS --api=API_ID --location=GCP_REGION --project=PROJECT_ID  

So aktualisieren Sie beispielsweise die auf dem 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 

Dabei gibt NEW_CONFIG_ID die neue API-Konfiguration an, die auf dem Gateway bereitgestellt werden soll.

Verwenden Sie die Option --display-name, um den Anzeigenamen zu aktualisieren. So aktualisieren Sie die Labels:

  • --update-labels=KEY=VALUE,...
  • --clear-labels
  • --remove-labels=KEY,...

Verwenden Sie den folgenden Befehl, um alle Aktualisierungsoptionen aufzurufen:

gcloud api-gateway gateways update --help

Gateway löschen

Verwenden Sie den folgenden Befehl gcloud, um ein vorhandenes Gateway zu löschen:

gcloud api-gateway gateways delete GATEWAY_ID \
  --location=GCP_REGION --project=PROJECT_ID

Nächste Schritte