Hier finden Sie nützliche Informationen über die schrittweise Fehlerbehebung in Verbindung 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 Rolle Pub/Sub Editor (roles/pubsub.editor
) für Identity and Access Management im 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 Editor (roles/pubsub.editor) für das Projekt. Wenn Sie diese Rolle nicht haben, wenden Sie sich an Ihren Administrator.
Geben Sie einen Namen für das Abo an.
Der Name eines vorhandenen Themas, mit dem das Abo verknüpft werden soll.
Wenn Sie ein Push-Abo erstellen, muss im Feld
pushEndpoint
der Werthttps://
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.
Achten Sie darauf, dass der Teilnehmer, der die Anfrage stellt, die erforderlichen Berechtigungen für die relevanten Pub/Sub API-Ressourcen hat. Dies ist besonders wichtig, wenn Sie die Pub/Sub API für die projektübergreifende Kommunikation verwenden.
Wenn Sie Dataflow verwenden, achten Sie darauf, dass sowohl
{PROJECT_NUMBER}@cloudservices.gserviceaccount.com
als auch das Compute Engine-Dienstkonto{PROJECT_NUMBER}-compute@developer.gserviceaccount.com
die erforderlichen Berechtigungen für die entsprechende Pub/Sub API-Ressource haben. Weitere Informationen finden Sie unter Sicherheit und Berechtigungen in Dataflow.Wenn Sie App Engine verwenden, prüfen Sie auf der Seite „Berechtigungen“ Ihres Projekts, ob ein App Engine-Dienstkonto als Pub/Sub-Bearbeiter aufgeführt ist. Wenn dies nicht der Fall ist, fügen Sie Ihr App Engine-Dienstkonto als Pub/Sub-Bearbeiter hinzu. Normalerweise hat das App Engine-Dienstkonto das Format
<project-id>@appspot.gserviceaccount.com
.
Weitere häufige Fehlercodes
Eine Liste weiterer häufiger Fehlercodes im Zusammenhang mit der Pub/Sub API und deren Beschreibungen finden Sie unter Fehlercodes.
Ü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 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 wird das Abo nur abgerufen oder erstellt, wenn ein Fehler auftritt. Betrachten Sie dieses Beispiel:
try {
Consume from subscription my-sub
} catch NotFoundError {
CreateSubscription my-sub
Consume from subscription my-sub
}