Allgemeine Fehlerbehebung

Hier finden Sie hilfreiche Schritte zur Fehlerbehebung bei Problemen mit Pub/Sub.

Thema kann nicht erstellt werden

Prüfen Sie, ob Sie die erforderlichen Berechtigungen haben. Zum Erstellen eines Pub/Sub-Themas benötigen Sie für das Projekt die IAM-Rolle Pub/Sub Editor (roles/pubsub.editor). Falls Ihnen diese Rolle nicht zugewiesen ist, wenden Sie sich an Ihren Administrator. Weitere Informationen zur Fehlerbehebung zu Themen finden Sie unter Themen zur Fehlerbehebung und Fehlerbehebung beim Importieren.

Abo kann nicht erstellt werden

Prüfen Sie, ob Sie die folgenden Schritte ausgeführt haben:

  • Prüfen Sie, ob Sie die erforderlichen Berechtigungen haben. Zum Erstellen eines Pub/Sub-Abos benötigen Sie die IAM-Rolle Pub/Sub Editor (roles/pubsub.editor) für das Projekt. Falls Ihnen diese Rolle nicht zugewiesen ist, wenden Sie sich an Ihren Administrator.

  • Der Name des Abos.

  • Sie haben den Namen eines vorhandenen Themas angegeben, an das Sie das Abo anhängen möchten.

  • Wenn Sie ein Push-Abo erstellen, geben Sie https:// in Kleinbuchstaben (nicht http:// oder HTTPS://) als Protokoll für Ihre Empfangs-URL im Feld pushEndpoint an.

Weitere Informationen zur Fehlerbehebung bei Abos finden Sie unter Fehlerbehebung bei Pull-Abos, Fehlerbehebung bei Push-Abos, Fehlerbehebung bei BigQuery-Abos und Fehlerbehebung bei Cloud Storage-Abos.

403 (Forbidden) Fehler

Gehen Sie folgendermaßen vor, wenn dieser Fehler angezeigt wird:

  • Prüfen Sie, ob die Pub/Sub API in der Google Cloud Console aktiviert ist.
  • Prüfen Sie, ob das Hauptkonto, das die Anfrage stellt, die erforderlichen Berechtigungen für die relevanten Pub/Sub API-Ressourcen hat, insbesondere wenn Sie die Pub/Sub API für die projektübergreifende Kommunikation verwenden.
  • Wenn Sie Dataflow verwenden, achten Sie darauf, dass {PROJECT_NUMBER}@cloudservices.gserviceaccount.com und das Compute Engine-Dienstkonto {PROJECT_NUMBER}-compute@developer.gserviceaccount.com die erforderlichen Berechtigungen für die relevante Pub/Sub API-Ressource haben. Weitere Informationen finden Sie unter Dataflow-Sicherheit und -Berechtigungen.
  • Wenn Sie App Engine verwenden, sehen Sie auf der Seite „Berechtigungen“ Ihres Projekts nach, ob ein App Engine-Dienstkonto als Bearbeiter aufgeführt ist. Wenn dies nicht der Fall ist, fügen Sie Ihr App Engine-Dienstkonto als Bearbeiter hinzu. Normalerweise hat das App Engine-Dienstkonto das Format <project-id>@appspot.gserviceaccount.com.

Übermäßige Verwaltungsvorgänge verwenden

Wenn Sie feststellen, dass Sie zu viel von Ihrem Kontingent für Verwaltungsvorgänge verbrauchen, müssen Sie möglicherweise Ihren Code refaktorieren. Betrachten Sie diesen Pseudocode zur Veranschaulichung. In diesem Beispiel wird ein Verwaltungsvorgang (GET) verwendet, um das Vorhandensein eines Abos zu prüfen, bevor es versucht, seine Ressourcen zu verbrauchen. Sowohl GET als auch CREATE sind Administratorvorgänge:

if !GetSubscription my-sub {
  CreateSubscription my-sub
}
Consume from subscription my-sub

Ein effizienteres Muster ist der Versuch, Nachrichten aus dem Abo zu lesen (vorausgesetzt, Sie sind sich beim Namen des Abos einigermaßen sicher). Bei diesem optimistischen Ansatz erhalten oder erstellen Sie das Abo nur, wenn ein Fehler vorliegt. Betrachten Sie dieses Beispiel:

try {
  Consume from subscription my-sub
} catch NotFoundError {
  CreateSubscription my-sub
  Consume from subscription my-sub
}