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: unknown location: http: In path template '[PATH]': unexpected end of input '/'.'

Diese Fehlermeldung wird angezeigt, wenn ein Pfad oder mehrere Pfade in Ihrem OpenAPI-Dokument einen abschließenden Schrägstrich (/) enthalten. Entfernen Sie den abschließenden Schrägstrich aus allen Pfaden, um dieses Problem zu beheben. Das folgende Snippet in einem OpenAPI-Dokument führt beispielsweise zu diesem Fehler:

paths:
  "/echo/":
    post:
      description: "Echo back a given message."

Entfernen Sie den abschließenden Schrägstrich bei /echo/, um das Problem zu beheben:

paths:
  "/echo":
    post:
      description: "Echo back a given message."

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 host Ihres OpenAPI-Dokuments eine benutzerdefinierte Domain (z. B. example.com) konfiguriert haben, müssen Sie den Domainnamen bestätigen, bevor Sie das OpenAPI-Dokument bereitstellen können.
  • Wenn Sie die Domain cloud.goog verwenden, prüfen Sie, ob der Wert für das Feld host das folgende Format hat und die Projekt-ID korrekt ist:
    API_NAME.endpoints.YOUR_PROJECT_ID.cloud.goog
    
  • Wenn Sie die Domain appspot.com verwenden (nur für App Engine unterstützt), prüfen Sie, ob das Feld host das folgende Format hat und die Projekt-ID korrekt ist:
    YOUR_PROJECT_ID.appspot.com
    

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 openapi.yaml

Nächste Schritte