Hier finden Sie nützliche Informationen zur Behebung von 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 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. Weitere Informationen zur Fehlerbehebung bei Themen finden Sie unter Fehlerbehebung bei Themen und Fehlerbehebung bei Importen.
Abo kann nicht erstellt werden
Überprü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 Editor (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, mit dem das Abo verknüpft werden soll.
Wenn Sie ein Push-Abo erstellen, geben Sie im Feld
pushEndpoint
als Protokoll für Ihre Empfangs-URLhttps://
in Kleinbuchstaben an (nichthttp://
oderHTTPS://
).
Weitere Informationen zur Fehlerbehebung bei Pull-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 im Google Cloud Console
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}[email protected]
Sie haben die erforderlichen Berechtigungen für die Pub/Sub API-Ressource. Weitere Informationen finden Sie unter Dataflow-Sicherheit und -BerechtigungenWenn Sie App Engine verwenden, prüfen Sie den Seite "Berechtigungen", um zu sehen, App Engine-Dienstkonto ist als Pub/Sub-Editor aufgeführt. Wenn dies nicht der Fall ist, fügen Sie Ihr App Engine-Dienstkonto als Pub/Sub-Bearbeiter hinzu. Normalerweise App Engine-Dienstkonto ist von das Formular
<project-id>@appspot.gserviceaccount.com
Übermäßige Verwaltungsvorgänge verwenden
Sollten Sie feststellen, dass Sie zu viel von Ihrem Kontingent für Verwaltungsvorgänge verbrauchen, müssen Sie unter Umständen 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 Verwaltungsvorgänge:
if !GetSubscription my-sub {
CreateSubscription my-sub
}
Consume from subscription my-sub
Ein effizienteres Muster ist der Versuch, Nachrichten aus dem Abo zu verarbeiten (vorausgesetzt, dass Sie sich den Namen des Abos einigermaßen sicher sind). Bei diesem optimistischen Ansatz erhalten oder erstellen Sie das Abo nur dann, wenn ein Fehler vorliegt. Betrachten Sie dieses Beispiel:
try {
Consume from subscription my-sub
} catch NotFoundError {
CreateSubscription my-sub
Consume from subscription my-sub
}