Fehlerbehebung bei der Bereitstellung von Cloud Endpoints-Konfigurationen

Auf dieser Seite wird beschrieben, wie Sie Fehler beheben können, die beim Bereitstellen einer Cloud Endpoints-Konfiguration auftreten können. Die angezeigten Fehlermeldungen enthalten Informationen, die speziell für Ihr Projekt gelten. Zum Beispiel kann eine Fehlermeldung angezeigt werden, die Ihre Projekt-ID enthält. Auf dieser Seite sehen Sie Platzhalterwerte wie YOUR_PROJECT_ID.

Führen Sie nach jedem Schritt den Befehl gcloud endpoints services deploy noch einmal aus, um zu sehen, ob der Fehler behoben wurde.

Konvertierung in Dienstkonfiguration nicht möglich

ERROR: (gcloud.endpoints.services.deploy) INVALID_ARGUMENT:
Cannot convert to service config. http: undefined field <unknown> on message <RequestType>

Prüfen Sie die .proto-Datei auf Felder, die in den Protokollpuffernachrichten und Transcodierungszuordnungen nicht übereinstimmen.

Beispiel: Folgendes in einer .proto-Datei erzeugt diesen Fehler. Die Zuordnungsoption für Unary gibt ein Feld namens undefined an, das sich nicht in der Definition der Nachricht Request befindet.

rpc Unary(Request) Response {
  option (google.api.http) { get : "/{undefined}" };
}

message Request {
  string defined = 1;
}

Abrufen von Projekteinstellungen unzulässig

ERROR: (gcloud.endpoints.services.deploy) PERMISSION_DENIED:
Not allowed to get project settings for project YOUR_PROJECT_ID

  1. Authentifizieren Sie sich noch einmal mit der gcloud CLI, um zu bestätigen, dass Sie sich mit einem Konto authentifiziert haben, das die Berechtigung für den Zugriff auf das in der Fehlermeldung angezeigte Projekt hat:
    gcloud auth login
    

    Ein neuer Browsertab wird geöffnet und Sie werden aufgefordert, ein Konto auszuwählen.

  2. Prüfen Sie, ob die in der Fehlermeldung angezeigte Projekt-ID dem Google Cloud-Projekt entspricht, für das Sie die Endpoints-Konfiguration bereitstellen möchten:
    gcloud projects list
    
  3. Prüfen Sie, ob in der gcloud CLI die richtige Projekt-ID als aktuelles Projekt festgelegt ist:
    gcloud config set project YOUR_PROJECT_ID
    

Aufrufender Nutzer hat keine Berechtigung

ERROR: (gcloud.endpoints.services.deploy) PERMISSION_DENIED:
Caller does not have permission 'servicemanagement.services.create' on project YOUR_PROJECT_ID

Wenn Sie die Endpoints-Konfiguration zum ersten Mal bereitstellen, erstellt Service Management einen verwalteten Dienst für Ihre API. Zum Erstellen eines verwalteten Dienstes müssen Sie mindestens die Rolle des Bearbeiters auf Projektebene haben. Nachdem Service Management den verwalteten Service erstellt hat, ist zum erneuten Bereitstellen der Endpoints-Konfiguration mindestens die Rolle Dienstkonfigurationsbearbeiter (roles/servicemanagement.configEditor) für den Dienst erforderlich. Weitere Informationen finden Sie unter Zugriff auf die API gewähren.

Eigentumsrechte für Domainnamen können nicht bestätigt werden

ERROR: (gcloud.endpoints.services.deploy) PERMISSION_DENIED:
Ownership for domain name YOUR_DOMAIN_NAME on project YOUR_PROJECT_ID cannot be verified

  • Falls Sie im Feld name Ihrer Datei api_config.yaml eine benutzerdefinierte Domain (z. B. example.com) konfiguriert haben, müssen Sie den Domainnamen prüfen, bevor Sie die Dienstkonfiguration bereitstellen können.
  • Wenn Sie die Domain cloud.goog verwenden, prüfen Sie, ob der Wert für das Feld name das folgende Format hat und die Projekt-ID korrekt ist:
    API_NAME.endpoints.YOUR_PROJECT_ID.cloud.goog
    

Fehlerbehebung bei anderen Fehlern

Wenn Sie einen Fehler erhalten, der hier nicht aufgeführt wird, oder wenn Ihr Problem mit diesen Informationen nicht gelöst werden konnte, führen Sie den Befehl gcloud noch einmal mit dem Flag aus, um sich Fehlerbehebungsinformationen anzeigen zu lassen:

gcloud --verbosity=debug endpoints services deploy api_descriptor.pb api_config.yaml api_config_http.yaml

Nächste Schritte