Nachdem Sie die .proto
-Datei und die gRPC API-Konfigurationsdatei eingerichtet haben, stellen Sie diese so bereit, dass Cloud Endpoints über die Informationen verfügt, die zum Verwalten der API erforderlich sind. Die Endpoints-Konfiguration wird mit dem Befehl gcloud
endpoints services deploy
bereitgestellt. Dieser Befehl verwendet Service Infrastructure, die grundlegende Dienstplattform von Google. Sie wird von Endpoints und anderen Diensten verwendet, um APIs und Dienste zu erstellen und zu verwalten. Auf dieser Seite wird beschrieben, wie Sie Konfigurationsdateien in Endpoints bereitstellen.
Vorbereitung
Sie sollten Folgendes bereits haben:
Ein Google Cloud-Projekt mit der Rolle Bearbeiter oder Inhaber. Nach der ersten Bereitstellung können Sie die restriktivere Rolle des Dienstkonfigurationsbearbeiters erteilen. Weitere Informationen finden Sie unter Zugriff auf die API gewähren und widerrufen.
Konfigurierte Endpunkte, darunter:
Falls Sie einen benutzerdefinierten Domainnamen verwenden (z. B.
example.com
), müssen Sie den Domainnamen prüfen, damit Sie die gRPC-Konfigurationsdateien bereitstellen können.
Google Cloud CLI für die Bereitstellung vorbereiten
Verwenden Sie das gcloud
-Befehlszeilentool, um die Konfiguration bereitzustellen. Weitere Informationen zu den Befehlen finden Sie in der gcloud-Referenz.
So bereiten Sie die Bereitstellung vor:
- Installieren und initialisieren Sie die gcloud CLI.
- Aktualisieren Sie die gcloud CLI:
gcloud components update
- Achten Sie darauf, dass die gcloud CLI zum Zugriff auf Ihre Daten und Dienste berechtigt ist:
gcloud auth login
Ein neuer Browsertab wird geöffnet und Sie werden aufgefordert, ein Konto auszuwählen.
- Legen Sie das Standardprojekt fest. Ersetzen Sie
[YOUR-PROJECT-ID]
durch Ihre GCP-Projekt-ID:gcloud config set project [YOUR-PROJECT-ID]
- Wenn Sie das API-Back-End in Kubernetes oder Kubernetes Engine bereitstellen, führen Sie den folgenden Befehl aus, um neue Nutzeranmeldedaten zur Verwendung als Standardanmeldedaten für Anwendungen abzurufen. Die Nutzeranmeldedaten sind für die Autorisierung von
kubectl
erforderlich. Ein neuer Browsertab wird geöffnet und Sie werden aufgefordert, ein Konto auszuwählen.gcloud auth application-default login
Konfigurationsdateien bereitstellen
- Sie müssen sich in dem Verzeichnis befinden, in dem die Dateien
api_descriptor.pb
undapi_config.yaml
liegen. - Vergewissern Sie sich, dass das aktuell vom
gcloud
-Befehlszeilentool verwendete Standardprojekt das Google Cloud-Projekt ist, für das Sie die Endpoints-Konfiguration bereitstellen möchten. Überprüfen Sie anhand der vom folgenden Befehl zurückgegebenen Projekt-ID, ob der Dienst im richtigen Projekt erstellt wird.gcloud config list project
Wenn Sie das Standardprojekt ändern müssen, führen Sie den folgenden Befehl aus:
gcloud config set project YOUR_PROJECT_ID
- Stellen Sie die Datei
proto descriptor
und die Konfigurationsdatei mithilfe der Google Cloud CLI bereit:gcloud endpoints services deploy api_descriptor.pb api_config.yaml
Beim Erstellen und Konfigurieren des Dienstes 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 [bookstore.endpoints.example-project.cloud.goog]
CONFIG_ID ist die eindeutige Endpoints-Dienstkonfigurations-ID, die von der Bereitstellung erstellt wird. Beispiel:
Service Configuration [2017-02-13r0] uploaded for service [bookstore.endpoints.example-project.cloud.goog]
Im obigen Beispiel ist
2017-02-13r0
die Dienstkonfigurations-ID undbookstore.endpoints.example-project.cloud.goog
der Dienstname. Die Dienstkonfigurations-ID besteht aus einem Datumsstempel und einer Überarbeitungsnummer. Wenn Sie die Endpoints-Konfiguration am selben Tag noch einmal bereitstellen, erhöht sich die Überarbeitungsnummer in der Dienstkonfigurations-ID.
Wenn die Konfiguration Ihres Diensts auf mehrere YAML-Dateien verteilt ist, können Sie alle Dateien an den Befehl deploy
übergeben. Die Hauptkonfiguration für Bookstore befindet sich beispielsweise in api_config.yaml
. Sie können jedoch die HTTP-Transcodierung für den Dienst aktivieren, indem Sie zusätzlich api_config_http.yaml
bereitstellen. Die Datei enthält zusätzliche Konfigurationen für dieses Feature:
gcloud endpoints services deploy api_descriptor.pb api_config.yaml api_config_http.yaml
Sollten Werte in den YAML-Dateien in Konflikt stehen, überschreiben die Werte in der letzten angegebenen Datei alle anderen Werte. Weitere Informationen dazu, wie in Cloud Endpoints mehrere YAML-Dateien zusammengeführt werden, finden Sie unter gRPC API-Dienst konfigurieren.
Wenn Sie eine Fehlermeldung erhalten, finden Sie unter Fehlerbehebung bei der Endpoints-Konfigurationsbereitstellung Information zur Fehlerbehebung.
Neu bereitstellen
Wenn Sie Änderungen an .proto
oder Ihrer YAML-Dienstkonfigurationsdatei vornehmen, müssen Sie die Dateien noch einmal bereitstellen, damit der Extensible Service Proxy (ESP) die neueste Version der API-Dienstkonfiguration hat. Wenn Sie bereits den ESP bereitgestellt und dabei die rollout
-Option auf managed
festgelegt haben, müssen Sie den ESP nicht noch einmal starten oder bereitstellen. Das rollout=managed
Option
konfiguriert den ESP so, dass die zuletzt bereitgestellte Dienstkonfiguration verwendet wird. Wenn Sie diese Option innerhalb von 5 Minuten nach der Bereitstellung einer neuen Dienstkonfiguration angeben, erkennt der ESP die Änderung und verwendet automatisch die neue Konfiguration. Wir empfehlen, diese Option anstelle einer konkreten Konfigurations-ID anzugeben, die vom ESP verwendet werden soll.
Nach der ersten Bereitstellung der Endpoints-Konfiguration können Sie einem Nutzer, einem Dienstkonto oder einer Gruppe eine Rolle zuweisen, die eine erneute Bereitstellung der Endpoints-Konfiguration zulässt. Weitere Informationen finden Sie unter Zugriff auf die API gewähren und widerrufen.
Weitere Informationen
- Erste Schritte mit dem Cloud Endpoints-Portal
- API-Backend bereitstellen
- ESP lokal oder auf einer anderen Plattform ausführen
- Dienstname und Konfigurations-ID abrufen