Hier finden Sie Informationen zu Schritten zur Fehlerbehebung, die hilfreich sein können, wenn Sie Probleme mit Pub/Sub lösen.
Thema kann nicht erstellt werden
Prüfen Sie, ob Sie die erforderlichen Berechtigungen haben.
Zum Erstellen eines Pub/Sub-Themas
Identity and Access Management des Pub/Sub Editor (roles/pubsub.editor
)
Rolle für das Projekt. Wenn Sie diese Rolle nicht haben, wenden Sie sich an Ihren Administrator.
Weitere Informationen zur Fehlerbehebung bei Themen finden Sie unter Fehlerbehebung bei Themen und Fehlerbehebung bei Importthemen.
Abo kann nicht erstellt werden
Prüfen Sie, ob Sie Folgendes getan haben:
Prüfen Sie, ob Sie die erforderlichen Berechtigungen haben. Zum Erstellen eines Pub/Sub-Abos benötigen Sie die IAM-Rolle Pub/Sub-Bearbeiter (roles/pubsub.editor) für das Projekt. Wenn Sie diese Rolle nicht haben, wenden Sie sich an Ihren Administrator.
Es wurde ein Name für das Abo angegeben.
Der Name eines vorhandenen Themas, an das das Abo angehängt werden soll.
Wenn Sie ein Push-Abo erstellen, muss im Feld
pushEndpoint
https://
in Kleinbuchstaben (nichthttp://
oderHTTPS://
) als Protokoll für Ihre Empfänger-URL angegeben werden.
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:
- Achten Sie darauf, dass Sie die Pub/Sub API in der Google Cloud Console aktiviert haben.
Das Hauptkonto, das die Anfrage stellt, muss die erforderlichen Berechtigungen für die Pub/Sub API-Ressourcen insbesondere wenn Sie die Pub/Sub API für die projektübergreifende Kommunikation verwenden.
Wenn Sie Dataflow verwenden, müssen sowohl
{PROJECT_NUMBER}@cloudservices.gserviceaccount.com
und das Compute Engine-Dienstkonto{PROJECT_NUMBER}-compute@developer.gserviceaccount.com
Sie haben die erforderlichen Berechtigungen für die Pub/Sub API-Ressource. Weitere Informationen finden Sie unter Sicherheit und Berechtigungen in Dataflow.Wenn Sie App Engine verwenden, prüfen Sie den Seite "Berechtigungen", um zu sehen, App Engine-Dienstkonto ist als Pub/Sub-Editor aufgeführt. Ist dies nicht der Fall, fügen Sie Ihre App hinzu. Engine-Dienstkonto als Pub/Sub-Bearbeiter. Normalerweise App Engine-Dienstkonto ist von das Formular
<project-id>@appspot.gserviceaccount.com
Übermäßige Verwaltungsvorgänge verwenden
Wenn Sie feststellen, dass Sie zu viel von Ihrem
Kontingent für Verwaltungsvorgänge,
müssen Sie möglicherweise Ihren Code refaktorieren. Betrachten Sie diesen Pseudocode zur Veranschaulichung. In diesem Beispiel wird mit einem Verwaltungsvorgang (GET
) geprüft, ob ein Abo vorhanden ist, bevor versucht wird, 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 verbrauchen (vorausgesetzt, Sie sind sich beim Namen des Abos einigermaßen sicher). Bei diesem optimistischen Ansatz erhalten oder erstellen Sie nur dann ein Abo, wenn liegt ein Fehler vor. Betrachten Sie dieses Beispiel:
try {
Consume from subscription my-sub
} catch NotFoundError {
CreateSubscription my-sub
Consume from subscription my-sub
}