Cloud Endpoints OpenAPI für Knative serving mit ESPv2 einrichten
Auf dieser Seite erfahren Sie, wie Sie Cloud Endpoints für Knative serving einrichten. Endpoints verwendet Extensible Service Proxy V2 (ESPv2) als API Gateway. Zur Bereitstellung der API-Verwaltung für Knative Serving stellen Sie den vordefinierten ESPv2-Container für Knative Serving bereit, der in einem GKE-Cluster ausgeführt wird.
So eingerichtet überwacht ESPv2 alle Anfragen an Ihre Dienste und führt vor dem Aufrufen des Dienstes die erforderlichen Prüfungen (z. B. Authentifizierung) durch. Wenn der Dienst antwortet, sammelt und meldet der ESPv2 Telemetriedaten.
Eine Übersicht über Cloud Endpoints finden Sie in den Abschnitten Über Cloud Endpoints und Architekturübersicht zu Cloud Endpoints.
Aufgabenliste
Verwenden Sie beim Durcharbeiten der Anleitung die folgende Aufgabenliste. Alle Aufgaben müssen ausgeführt werden, damit diese Anleitung abgeschlossen werden kann.
Erstellen Sie ein Google Cloud-Projekt. Wenn Sie Knative Serving nicht selbst bereitgestellt haben, stellen Sie einen Beispieldienst bereit. Siehe Vorbereitung.
Erstellen Sie einen GKE-Cluster mit aktiviertem Knative serving.
Erstellen Sie ein OpenAPI-Dokument, in dem Ihre Endpoints API beschrieben wird, und konfigurieren Sie die Routen zu Ihrem Knative serving-Dienst. Siehe Endpoints konfigurieren.
Stellen Sie das OpenAPI-Dokument bereit, um einen verwalteten Dienst zu erstellen. Siehe Endpoints-Konfiguration bereitstellen.
Erstellen Sie ein neues ESPv2-Docker-Image mit Ihrer Endpoints-Dienstkonfiguration. Siehe Neues ESPv2-Image erstellen.
Stellen Sie das neue ESPv2 Knative serving-Image bereit. Siehe ESPv2-Image für Cloud Run bereitstellen.
Erstellen Sie eine Domainzuordnung zum ESPv2 Knative Serving-Dienst.
Testen Sie Ihre Konfiguration durch das Senden einer Anfrage an die API.
Überwachen Sie die Aktivitäten der Dienste. Siehe API-Aktivitäten verfolgen.
Kosten
In diesem Dokument verwenden Sie die folgenden kostenpflichtigen Komponenten von Google Cloud:
Mit dem Preisrechner können Sie eine Kostenschätzung für Ihre voraussichtliche Nutzung vornehmen.
Nach Abschluss der in diesem Dokument beschriebenen Aufgaben können Sie weitere Kosten vermeiden, indem Sie die erstellten Ressourcen löschen. Weitere Informationen finden Sie unter Bereinigen.
Hinweis
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.
- Notieren Sie die Projekt-ID für die nächsten Schritte. Nachstehend wird die Projekt-ID als ESP_PROJECT_ID bezeichnet.
- Laden Sie das Google Cloud SDK herunter und installieren Sie es.
- Installieren Sie cURL, wenn Sie eine Anfrage an den bereitgestellten Beispieldienst senden möchten.
gcloud-Befehlszeile einrichten
So richten Sie die gcloud CLI für Knative serving for Anthos ein:
Prüfen Sie, ob das Google Cloud SDK die Berechtigung für den Zugriff auf Ihre Daten und Dienste hat.
Melden Sie sich an.
gcloud auth login
Es wird ein neuer Browsertab geöffnet. Wählen Sie dort ein Konto aus, das für das Google Cloud-Projekt, das Sie zum Bereitstellen von ESPv2 für Knative-Dienste erstellt haben, die Rolle Bearbeiter oder Inhaber hat.
Aktualisieren Sie die installierten
gcloud
-Komponenten:gcloud components update
Legen Sie als Plattform
gke
und als Standardprojekteinstellung fürgcloud
die soeben erstellte fest:gcloud config set run/platform gke
gcloud config set project ESP_PROJECT_ID
Ersetzen Sie ESP_PROJECT_ID durch die Projekt-ID des von Ihnen erstellten Projekts.
Legen Sie die gewünschte Zone für den neuen Cluster fest. Sie können jede Zone verwenden, in der GKE unterstützt wird. Beispiel:
gcloud config set compute/zone ZONE
Ersetzen Sie ZONE durch Ihre Zone. Verwenden Sie zum Beispiel
us-central1-a
. Sie können jede von GKE unterstützte Zone verwenden.Aktivieren Sie die folgenden APIs für das Projekt. Diese sind zum Erstellen eines Clusters sowie zum Erstellen und Veröffentlichen eines Containers in Google Container Registry erforderlich:
gcloud services enable container.googleapis.com containerregistry.googleapis.com cloudbuild.googleapis.com
GKE-Cluster mit aktiviertem Knative-Dienst erstellen
So erstellen Sie einen Cluster und aktivieren ihn für Knative Serving in Google Cloud:
Erstellen Sie mit dem folgenden Befehl einen neuen Cluster:
gcloud container clusters create CLUSTER_NAME \ --addons=HttpLoadBalancing,CloudRun \ --machine-type=n1-standard-4 \ --num-nodes=3 \ --enable-stackdriver-kubernetes
Ersetzen Sie CLUSTER_NAME durch den gewünschten Clusternamen.
Diese Anweisungen ermöglichen zwar nicht das Cluster-Autoscaling für die Anpassung der Clustergröße an den Bedarf, Knative Serving auf Google Cloud skaliert die Instanzen innerhalb des Clusters jedoch automatisch.
Warten Sie, bis die Erstellung des Clusters abgeschlossen ist. Beim Erstellen sollten ähnliche Meldungen wie im folgenden Beispiel angezeigt werden:
Creating cluster CLUSTER_NAME...done. Created [https://container.googleapis.com/v1/projects/ESP_PROJECT_ID/zones/ZONE/clusters/CLUSTER_NAME].
Die Ausgabe zeigt auch die Clusterversion in der Spalte
NODE_VERSION
der Ausgabe. Beispiel:1.15.11-gke.1
oder1.14.10-gke.27
Notieren Sie sich die Clusterversion, da sie später in diesem Dokument benötigt wird.Legen Sie die
gcloud
-Standardeinstellungen so fest, dass Ihr neuer Cluster und der neue Clusterstandort verwendet werden, damit Sie diese nicht über die gcloud CLI angeben müssen:gcloud config set run/cluster CLUSTER_NAME
gcloud config set run/cluster_location ZONE
Verwenden Sie den folgenden Befehl, um Details zum neuen Cluster einzusehen:
gcloud container clusters describe CLUSTER_NAME
Verwenden Sie den folgenden Befehl, um Anmeldedaten für Ihren Cluster abzurufen:
gcloud container clusters get-credentials CLUSTER_NAME
Beispiel-Knative-Serving-Container bereitstellen
Um „hello“ bereitzustellen Knative serving-Beispielcontainer für den soeben erstellten Cluster:
Klicken Sie auf Dienst erstellen.
Wählen Sie Knative Serving als Entwicklungsplattform aus.
Wählen Sie im Drop-down-Menü mit den verfügbaren Clustern den gerade erstellten Cluster aus.
Verwenden Sie den Namen hello als Dienstnamen. Sie können auch einen anderen Namen verwenden, dieser muss dann aber später ebenfalls verwendet werden. In dieser Anleitung wird davon ausgegangen, dass Sie hello verwenden.
Wählen Sie unter Connectivity Intern aus, damit der Dienst nicht extern zugänglich ist.
Klicken Sie auf Weiter, um mit der zweiten Seite des Diensterstellungsformulars fortzufahren:
Geben Sie
gcr.io/cloudrun/hello
als Container-Image-URL an.Klicken Sie auf Erstellen, um das Image für Knative serving bereitzustellen. Warten Sie, bis die Bereitstellung abgeschlossen ist.
Wenn Sie fertig sind, wird der Bildschirm Überarbeitungen angezeigt. Die URL des bereitgestellten Dienstes lautet:
http://hello.default.svc.cluster.local
Wenn Sie einen internen Dienst erstellen, erstellt GKE einen DNS-Namen, der nur für Anfragen aufgelöst werden kann, die aus dem Cluster selbst stammen, nicht für externe Anfragen. Sie können nicht extern vom Cluster aus auf diesen Link zugreifen. Weitere Informationen finden Sie unter Cloud Run-Dienste.
Richten Sie einen Tunnel von Ihrem Desktop zum Cluster ein, um zu prüfen, ob Ihr Dienst mit cURL ordnungsgemäß funktioniert. Klicken Sie auf das Symbol rechts neben der URL auf dem Bildschirm Überarbeitungen, um diese Anleitung aufzurufen:
Ein Steuerfeld wird geöffnet, in dem die beiden Befehle angezeigt werden, mit denen Sie auf den internen Dienst zugreifen. Sie müssen diese Befehle in zwei separaten Terminalfenstern ausführen, da mit dem ersten Befehl die Portweiterleitung eingerichtet wird, die vom zweiten Befehl verwendet wird.
Wenn Sie den cURL-Befehl ausführen, sollten Sie die Ausgabe Ihres Dienstes im folgenden Format sehen:
<!doctype html> <html lang=en> <head> <meta charset=utf-8> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Congratulations | Cloud Run</title> ...
Endpoints konfigurieren
Sie benötigen ein OpenAPI-Dokument, das auf der OpenAPI-Spezifikation Version 2.0 basiert und die Oberfläche Ihres Back-End-Dienstes sowie etwaige Authentifizierungsanforderungen beschreibt. Außerdem müssen Sie ein Google-spezifisches Feld hinzufügen, das die URL für jeden Dienst enthält, damit ESPv2 die zum Aufrufen eines Dienstes erforderlichen Informationen zur Verfügung stehen. Falls Sie mit OpenAPI noch nicht vertraut sind, stehen unter OpenAPI weitere Informationen bereit.
Festlegen des Hostfelds der OpenAPI-Spezifikation
Geben Sie im Feld host
der OpenAPI-Spezifikation den Namen des Endpoints-Dienstes an, der für den Zugriff auf Ihren Knative Serving-Dienst verwendet wird. Der Endpoints-Dienstname hat das Format eines Domainnamens:
API_NAME.endpoints.ESP_PROJECT_ID.cloud.goog
Da der Endpoints-Dienstname einem Domainnamen entspricht, muss der Name diesen Regeln folgen:
- Er darf nur Kleinbuchstaben, Zahlen, Punkte oder Bindestriche enthalten.
- Er darf nicht mit einem Bindestrich beginnen.
- Er darf keinen Unterstrich enthalten.
Beispiel:
hello-api.endpoints.ESP_PROJECT_ID.cloud.goog
OpenAPI-Spezifikation erstellen
Erstellen Sie eine Textdatei namens
openapi-run-anthos.yaml
.Ihr Back-End-Dienst von Knative serving wird oben in der Datei
openapi-run-anthos.yaml
in einerx-google-backend
-Definition definiert. Beispiel:swagger: '2.0' info: title: Cloud Endpoints + Cloud Run description: Sample API on Cloud Endpoints with a Cloud Run backend version: 1.0.0 host: API_NAME.endpoints.ESP_PROJECT_ID.cloud.goog x-google-endpoints: - name: API_NAME.endpoints.ESP_PROJECT_ID.cloud.goog target: "INGRESS-IP" schemes: - https produces: - application/json x-google-backend: address: http://hello.default.svc.cluster.local disable_auth: true paths: /hello: get: summary: Greet a user operationId: hello responses: '200': description: A successful response schema: type: string
Die Einrückung ist für das YAML-Format wichtig. Das Feld
host
muss beispielsweise auf derselben Ebene wieinfo
sein.Geben Sie im Feld
host
den Domainnamen der Endpoints API für den Zugriff auf Ihren Knative-Dienst in folgendem Format ein:API_NAME.endpoints.ESP_PROJECT_ID.cloud.goog
Beispiel:
hello-api.endpoints.ESP_PROJECT_ID.cloud.goog
Die
x-google-endpoints
-Erweiterung registriert einen DNS-Eintrag für Ihren Endpoints-Dienst in der Domaincloud.goog
im Format:x-google-endpoints: - name: "API_NAME.endpoints.ESP_PROJECT_ID.cloud.goog" target: "IP_ADDRESS"
Die IP_ADDRESS ist die IP-Adresse des Dienstes
istio-ingress
für Ihren Cluster. So ermitteln Sie die IP-Adresse:Rufen Sie in der Google Cloud Console die Seite Google Kubernetes Engine auf:
Klicken Sie im linken Navigationsbereich auf Dienste & Ingress, um eine Liste der Dienste aufzurufen.
Wenn Ihre Clusterversion
1.15.3-gke.19
oder höher,1.14.3-gke.12
oder höher oder1.13.10-gke.8
oder höher ist, scrollen Sie nach unten zumistio-ingress
-Dienst. Für alle anderen Clusterversionen scrollen Sie nach unten zum Dienstistio-ingressgateway
.Kopieren Sie die externe IP-Adresse, die neben dem Load-Balancer angezeigt wird, ohne die PORT-Einstellung, falls vorhanden. Wenn die IP-Adresse beispielsweise
XX.XXX.XX.XXX:15020
lautet, lassen Sie:15020
weg. Ignorieren Sie die anderen aufgeführten IP-Adressen.
Geben Sie im Abschnitt
x-google-backend
im Feldaddress
den internen DNS-Namen des Back-Ends von Knative serving an, also „hello“. und die Authentifizierung bei diesem Dienst deaktivieren. Das ist erforderlich, da der Aufruf von ESPv2 an den Knative-Dienst als interner Aufruf innerhalb des Clusters erfolgt und daher keine Authentifizierung erforderlich ist.Beachten Sie den Wert des Attributs
title
in der Dateiopenapi-run-anthos.yaml
:title: Cloud Endpoints + Cloud Run
Der Wert des Attributs
title
wird nach Bereitstellung der Konfiguration zum Namen des Endpoints-Dienstes.Speichern Sie das OpenAPI-Dokument.
Weitere Informationen zu den Feldern im für Endpoints erforderlichen OpenAPI-Dokument finden Sie unter Endpoints konfigurieren.
Endpoints-Konfiguration bereitstellen
Die Endpoints-Konfiguration wird mit dem Befehl gcloud endpoints services deploy bereitgestellt. Dieser Befehl erstellt mithilfe von Service Management einen verwalteten Dienst.
So stellen Sie die Endpoints-Konfiguration bereit:
Achten Sie darauf, dass Sie sich in dem Verzeichnis befinden, das Ihr OpenAPI-Dokument enthält.
Laden Sie die Konfiguration hoch und erstellen Sie einen verwalteten Dienst.
gcloud endpoints services deploy openapi-run-anthos.yaml \ --project ESP_PROJECT_ID
Dadurch wird ein neuer Endpoints-Dienst mit dem Namen erstellt, den Sie in der Datei
openapi-run-anthos.yaml
im Feldhost
angegeben haben. Der Endpoints-Dienst wird dem OpenAPI-Dokument entsprechend konfiguriert.Beim Erstellen und Konfigurieren des Endpoints-Diensts gibt Service Management Informationen an das Terminal aus. Nach Abschluss der Bereitstellung erhalten Sie eine Meldung, die in etwa so aussieht:
Service Configuration [CONFIG_ID] uploaded for service [API_NAME.endpoints.ESP_PROJECT_ID.cloud.goog]
CONFIG_ID ist die eindeutige Endpoints-Dienstkonfigurations-ID, die von der Bereitstellung erstellt wird. Beispiel:
Service Configuration [2019-02-01r0] uploaded for service [hello-api.endpoints.ESP_PROJECT_ID.cloud.goog]
Die Dienstkonfigurations-ID besteht aus einem Datumsstempel, gefolgt von einer Überarbeitungsnummer. Wenn Sie
openapi-run-anthos.yaml
am selben Tag noch einmal bereitstellen, wird die Überarbeitungsnummer in der Dienstkonfigurations-ID erhöht. In der Google Cloud Console auf der Seite Endpoints > Dienste können Sie die Dienstkonfiguration und den Bereitstellungsverlauf einsehen.Wenn Sie eine Fehlermeldung erhalten, lesen Sie Fehlerbehebung bei der Bereitstellung von Endpoints-Konfigurationen.
Erforderliche Dienste prüfen
Für Endpoints und ESP müssen mindestens die folgenden Google-Dienste aktiviert sein:Name | Titel |
---|---|
servicemanagement.googleapis.com |
Service Management API |
servicecontrol.googleapis.com |
Service Control API |
endpoints.googleapis.com |
Google Cloud Endpoints |
In der Regel werden die erforderlichen Dienste mit dem Befehl gcloud endpoints services deploy
aktiviert. Unter folgenden Umständen kann es vorkommen, dass der Befehl gcloud
erfolgreich ausgeführt wird, die erforderlichen Dienste jedoch nicht aktiviert werden:
Wenn Sie eine Drittanbieteranwendung wie Terraform verwendet haben und Sie diese Dienste nicht hinzufügen.
Wenn Sie die Endpoints-Konfiguration für ein vorhandenes Google Cloud-Projekt bereitgestellt haben, in dem diese Dienste explizit deaktiviert wurden.
Prüfen Sie mit dem folgenden Befehl, ob die erforderlichen Dienste aktiviert sind:
gcloud services list
Wenn die erforderlichen Dienste nicht aufgeführt sind, müssen Sie sie aktivieren:
gcloud services enable servicemanagement.googleapis.comgcloud services enable servicecontrol.googleapis.com
gcloud services enable endpoints.googleapis.com
Aktivieren Sie auch Ihren Endpoints-Dienst:
gcloud services enable ENDPOINTS_SERVICE_NAME
Zum Ermitteln des ENDPOINTS_SERVICE_NAME haben Sie folgende Möglichkeiten:
Rufen Sie nach der Bereitstellung der Endpoints-Konfiguration die Seite Endpoints in der Cloud Console auf. Die Liste der möglichen ENDPOINTS_SERVICE_NAME wird in der Spalte Dienstname angezeigt.
Bei OpenAPI ist ENDPOINTS_SERVICE_NAME der Wert, den Sie im Feld
host
Ihrer OpenAPI-Spezifikation angegeben haben. Bei gRPC ist der ENDPOINTS_SERVICE_NAME das, was Sie im Feldname
Ihrer gRPC-Endpoints-Konfiguration angegeben haben.
Weitere Informationen zu den gcloud
-Befehlen finden Sie unter gcloud
-Dienste.
Neues ESPv2-Knative-Serving-Image erstellen
Erstellen Sie die Endpoints-Dienstkonfiguration in einem neuen Docker-Image für ESPv2. Nachdem Sie dieses Image erstellt haben, können Sie es in Ihrem Cluster bereitstellen.
So integrieren Sie die Dienstkonfiguration in ein neues ESPv2-Docker-Image:
Laden Sie dieses Skript auf Ihren lokalen Computer herunter, auf dem die gcloud CLI installiert ist, und führen Sie es so aus:
chmod +x gcloud_build_image
./gcloud_build_image -s API_NAME.endpoints.ESP_PROJECT_ID.cloud.goog \ -c CONFIG_ID -p ESP_PROJECT_ID
Das Skript verwendet den
gcloud
-Befehl, um die Dienstkonfiguration herunterzuladen, die Dienstkonfiguration in ein neues ESPv2-Image einzubinden und das neue Image in Ihre Projekt-Container Registry hochzuladen. Das Skript verwendet automatisch den neuesten Release von ESPv2, der durch ESP_VERSION im Ausgabe-Image-Namen angegeben ist. Das Ausgabebild wird hochgeladen in:gcr.io/ESP_PROJECT_ID/endpoints-runtime-serverless:ESP_VERSION-API_NAME.endpoints.ESP_PROJECT_ID.cloud.goog-CONFIG_ID
ESPv2 Knative serving-Image bereitstellen
Stellen Sie das Dienst-Image für ESPv2 Knative Serving in Ihrem Cluster bereit:
Stellen Sie den ESPv2 Knative serving-Dienst mit dem neuen Image bereit:
gcloud run deploy ESP_V2_SERVICE_NAME \ --image="gcr.io/ESP_PROJECT_ID/endpoints-runtime-serverless:ESP_VERSION-API_NAME.endpoints.ESP_PROJECT_ID.cloud.goog-CONFIG_ID" \ --platform gke \ --project=ESP_PROJECT_ID
Geben Sie unter ESP_PROJECT_ID den Namen an, den Sie für den ESPv2-Dienst verwenden möchten. Legen Sie in diesem Beispiel für ESP_V2_SERVICE_NAME
espv2
fest.Wenn Sie Endpoints so konfigurieren möchten, dass zusätzliche ESPv2-Startoptionen wie das Aktivieren von CORS verwendet werden, können Sie die Argumente in der Umgebungsvariablen
ESPv2_ARGS
übergeben:gcloud run deploy ESP_V2_SERVICE_NAME \ --image="gcr.io/ESP_PROJECT_ID/endpoints-runtime-serverless:ESP_VERSION-API_NAME.endpoints.ESP_PROJECT_ID.cloud.goog-CONFIG_ID" \ --set-env-vars=ESPv2_ARGS=--cors_preset=basic \ --platform gke \ --project ESP_PROJECT_ID
Weitere Informationen und Beispiele zum Festlegen der Umgebungsvariablen ESPv2_ARGS, einschließlich der Liste der verfügbaren Optionen und Informationen zur Angabe mehrerer Optionen, finden Sie unter Flags in Extensible Service Proxy V2.
Der ESPv2-Dienst wird als externer Dienst bereitgestellt. Sie können also mit einem cURL-Befehl im folgenden Format darauf zugreifen:
curl -H "Host: espv2.default.example.com" http://IP_ADDRESS
Dabei ist IP_ADDRESS die IP-Adresse des istio-ingress
-Dienstes für Ihren Cluster.
Klicken Sie auf das IMAGE-Symbol rechts neben der ESPv2-URL auf dem Bildschirm Überarbeitungen des bereitgestellten ESPv2 Knative-Dienstes, um diesen cURL-Befehl aufzurufen.
Sie können jetzt über den ESPv2-Dienst API-Aufrufe an Ihren Endpoints-Dienst senden. Wenn Sie beispielsweise eine Anfrage an einen Endpoints-Dienst mit dem Pfad /hello
senden möchten, können Sie eine Anfrage im folgenden Format senden:
curl -H "Host: espv2.default.example.com" http://IP_ADDRESS/hello
Die Angabe eines host
-Headers bei jeder Anfrage an Ihren Endpoints-Dienst ist jedoch nicht benutzerfreundlich. Im nächsten Abschnitt richten Sie eine Domainzuordnung ein, um das Aufrufen Ihres Endpoint-Dienstes über ESPv2 zu erleichtern.
Domainzuordnung für den ESPv2 Knative Serving-Dienst erstellen
Fügen Sie eine Domainzuordnung für den ESPv2-Dienst hinzu, um den Header host
bei einer Anfrage wegzulassen:
Wählen Sie Benutzerdefinierte Domains verwalten aus.
Wählen Sie Zuordnung hinzufügen aus.
Wählen Sie im Drop-down-Menü Dienstdomainzuordnung hinzufügen aus.
Wählen Sie im Feld Dienst auswählen, dem Domain zugeordnet werden soll im Pop-up Zuordnung hinzufügen Ihren ESPv2-Dienst aus.
Geben Sie im Feld Domainnamen eingeben den Domainnamen an, den Sie für den Zugriff auf Ihren Knative-Dienst über Endpoints verwenden möchten. Geben Sie beispielsweise Folgendes an:
API_NAME.endpoints.ESP_PROJECT_ID.cloud.goog
Dabei ist API_NAME der Name Ihrer Endpoints API. In diesem Beispiel können Sie "hello-api" verwenden:
hello-api.endpoints.ESP_PROJECT_ID.cloud.goog
Klicken Sie auf Weiter. Eine Zusammenfassung der Zuordnung wird angezeigt.
Wählen Sie Fertig aus, um die Zuordnung zu speichern.
Anfrage an die API senden
Verwenden Sie cURL, um eine HTTP-Anfrage an Ihre API zu senden:
curl -X GET "http://hello-api.endpoints.ESP_PROJECT_ID.cloud.goog/hello"
Wenn Sie als Antwort einen Fehler erhalten haben, lesen Sie die Informationen unter Fehlerbehebung bei Antwortfehlern.
Endpoints API für die Verwendung von HTTPS konfigurieren
Die automatische TLS-Unterstützung ist für Knative serving in Google Cloud standardmäßig deaktiviert. Wenn Sie in diesem Beispiel über ESPv2 auf Ihre Endpoints API zugreifen, nehmen Sie daher den Aufruf über HTTP vor.
Sie können ESPv2 so konfigurieren, dass Anfragen über HTTPS unterstützt werden. Beachten Sie, dass Sie die HTTPS-Unterstützung für ESPv2, den externen Dienst, und nicht für „hello“, den internen Back-End-Dienst, konfigurieren.
Zur Unterstützung von HTTPS mit ESPv2 müssen Sie Folgendes tun:
Inhaber einer Domain sein. Wenn Sie keine Domain haben, können Sie eine von Cloud Domains oder von einem anderen Domainanbieter erwerben.
Eine Domainzuordnung für Ihren ESPv2-Dienst erstellen und den DNS-Eintrag entsprechend der Anleitung auf der Seite zur Domainzuordnung aktualisieren.
Wenn Sie Ihre Domain von Cloud Domains erhalten haben, verwenden Sie Cloud DNS oder einen DNS-Server Ihrer Wahl. Am einfachsten ist es, eine Domain aus Cloud Domains zu verwenden.
In der OpenAPI-Spezifikation für Endpoints:
Stellen Sie das Feld
host
so ein, dass es auf Ihre Domain verweist und nicht auf*.cloud.goog
.Entfernen Sie das Tag
x-google-endpoints
und seine beiden untergeordneten Attribute.
Eine vollständige Anleitung finden Sie unter HTTPS- und automatische TLS-Zertifikate aktivieren.
API-Aktivität verfolgen
Sehen Sie sich in der Google Cloud Console auf der Seite Endpoints > Dienste die Aktivitätsgrafiken Ihrer API an.
Endpoints-Aktivitätsgrafiken ansehen
Es kann einen Moment dauern, bis die Anfrage in den Grafiken angezeigt wird.
Sehen Sie sich auf der Seite "Log Explorer" die Anfragelogs an. Endpoints-Anfragelogs ansehen
Entwicklerportal für die API erstellen
Sie können das Cloud Endpoints-Portal verwenden, um ein Entwicklerportal zu erstellen. Dabei handelt es sich um eine Website zur Interaktion mit der Beispiel-API. Weitere Informationen finden Sie unter Übersicht über das Cloud Endpoints-Portal.
Bereinigen
Mit den folgenden Schritten vermeiden Sie, dass Ihrem Google Cloud-Konto die in dieser Anleitung verwendeten Ressourcen in Rechnung gestellt werden:
Informationen zum Beenden der in dieser Anleitung verwendeten Dienste finden Sie unter API und API-Instanzen löschen.