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:
Sie haben ein Google Cloud-Projekt erstellt, in dem Sie die Rolle Bearbeiter oder Inhaber haben. 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
- Make sure you are in the directory where the
api_descriptor.pb
andapi_config.yaml
files are located. - Confirm that the default project that the
gcloud
command-line tool is currently using is the Google Cloud project that you want to deploy the Endpoints configuration to. Validate the project ID returned from the following command to make sure that the service doesn't get created in the wrong project.gcloud config list project
If you need to change the default project, run the following command:
gcloud config set project YOUR_PROJECT_ID
- Deploy the
proto descriptor
file and the configuration file by using the Google Cloud CLI:gcloud endpoints services deploy api_descriptor.pb api_config.yaml
As it is creating and configuring the service, Service Management outputs information to the terminal. When the deployment completes, a message similar to the following is displayed:
Service Configuration [CONFIG_ID] uploaded for service [bookstore.endpoints.example-project.cloud.goog]
CONFIG_ID is the unique Endpoints service configuration ID created by the deployment. For example:
Service Configuration [2017-02-13r0] uploaded for service [bookstore.endpoints.example-project.cloud.goog]
In the previous example,
2017-02-13r0
is the service configuration ID andbookstore.endpoints.example-project.cloud.goog
is the service name. The service configuration ID consists of a date stamp followed by a revision number. If you deploy the Endpoints configuration again on the same day, the revision number is incremented in the service configuration 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. Mit der Option rollout=managed
legen Sie fest, dass der ESP die zuletzt bereitgestellte Dienstkonfiguration verwendet. 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