Es kann verschiedene Gründe haben, warum Abonnenten Nachrichten nicht verarbeiten können. Es kann beispielsweise vorübergehende Probleme beim Abrufen von Daten geben, die zum Verarbeiten einer Nachricht erforderlich sind. Oder eine Nachricht ist in einem Format, das der Abonnent nicht erwartet.
Auf dieser Seite wird erläutert, wie Sie solche Verarbeitungsfehler mithilfe einer Wiederholungsrichtlinie für Abos oder durch Weiterleiten nicht zugestellter Nachrichten an ein Thema für unzustellbare Nachrichten (auch als Warteschlange für unzustellbare Nachrichten bezeichnet) behandeln können.
Beachten Sie, dass diese Features von Dataflow nicht unterstützt werden. Weitere Informationen finden Sie im Abschnitt Nicht unterstützte Pub/Sub-Features der Dataflow-Dokumentation.
Wiederholungsrichtlinie für Abos
Wenn Pub/Sub versucht, eine Nachricht zuzustellen, der Abonnent sie jedoch nicht bestätigen kann, versucht Pub/Sub automatisch, die Nachricht noch einmal zu senden. Dieser erneute Zustellversuch wird als Wiederholungsrichtlinie für Abos bezeichnet. Diese Funktion kann nicht aktiviert oder deaktiviert werden. Sie können jedoch auswählen, welche Art von Wiederholungsrichtlinie Sie verwenden möchten.
Wenn Sie Ihr Abo zum ersten Mal erstellen und konfigurieren, können Sie eine der folgenden Wiederholungsrichtlinien auswählen: Sofortige erneute Zustellung oder Exponentieller Backoff. Standardmäßig verwenden Abos die sofortige erneute Zustellung.
Sofortige Neuzustellung
Standardmäßig versucht Pub/Sub, die Nachricht sofort noch einmal zu senden (und möglicherweise an denselben Abonnentenclient). Wenn sich die Bedingungen, die die Bestätigung der Nachricht verhindert haben, nicht geändert haben, kann die sofortige erneute Zustellung jedoch zu Problemen führen. In diesem Fall kann es sein, dass Pub/Sub mehrere Nachrichten, die nicht bestätigt werden können, noch einmal sendet.
Zur Lösung von Problemen mit der sofortigen erneuten Zustellung können Sie in Pub/Sub eine Richtlinie für exponentiellen Backoff konfigurieren.
Exponentielle Backoffs
Mit dem exponentiellen Backoff können Sie zwischen Wiederholungsversuchen schrittweise längere Verzögerungen hinzufügen. Nach dem ersten Zustellungsfehler wartet Pub/Sub eine minimale Backoff-Zeit ab, bevor es einen neuen Versuch durchführt. Bei jedem weiteren Fehler auf dieser Nachricht wird die Verzögerung bis zu einer maximalen Verzögerung (0 und 600 Sekunden) erhöht.
Die maximalen und minimalen Verzögerungsintervalle sind nicht festgelegt und sollten basierend auf lokalen Faktoren für Ihre Anwendung konfiguriert werden.
Beachten Sie bei exponentiellem Backoff Folgendes:
- Exponentieller Backoff wird bei folgenden Aktionen ausgelöst:
- Wenn eine negative Bestätigung empfangen wird.
- Wenn die Bestätigungsfrist für eine Nachricht abläuft.
- Der exponentielle Backoff wird nur pro Nachricht und nicht für alle Nachrichten in einem Abo (global) angewendet.
- Während des exponentiellen Backoff stellt Pub/Sub weiterhin andere Nachrichten zu, auch wenn für vorherige Nachrichten negative Bestätigungen empfangen wurden (es sei denn, Sie verwenden die geordnete Nachrichtenzustellung).
Mit der Richtlinie für Wiederholungsversuche können Sie die Zustellung und Verarbeitung einer Teilmenge von Nachrichten verzögern, um eine vorübergehende Unfähigkeit zu berücksichtigen, einige Nachrichten bei der Zustellung zu verarbeiten. Die Funktion wird auf Best-Effort-Basis angewendet und jede Nachricht wird separat auf die Richtlinie für Wiederholungsversuche hin ausgewertet.
Wir raten davon ab, diese Funktion zu verwenden, um die Zustellung von Nachrichten absichtlich zu verzögern. Wenn Sie eine große Anzahl von Nachrichten für ein Abo, das mit einer Wiederholungsrichtlinie konfiguriert ist, negativ bestätigen (NACK), werden einige dieser Nachrichten möglicherweise mit weniger oder ohne Backoff zugestellt. Wenn Sie eine große Anzahl von Nachrichten ablehnen, kann sich die Zustellung aller Nachrichten in Pub/Sub verlangsamen.
Wenn Sie die Zustellung planen müssen, sollten Sie Cloud Tasks verwenden.
Exponentiellen Backoff konfigurieren
Console
Beim Erstellen eines neuen Abos können Sie mit den folgenden Schritten eine Wiederholungsrichtlinie mit exponentiellem Backoff konfigurieren:
Rufen Sie in der Google Cloud Console die Seite Pub/Sub-Abos auf.
Klicken Sie auf Abo erstellen.
Geben Sie im Feld Abo-ID einen Namen ein.
Informationen zum Benennen eines Abos finden Sie unter Richtlinien für die Benennung eines Themas oder Abos.
Wählen Sie im Drop-down-Menü ein Thema aus oder erstellen Sie ein Thema.
Das Abo erhält Nachrichten aus dem Thema.
Wählen Sie einen Zustellungstyp aus.
Wählen Sie unter Wiederholungsrichtlinie die Option Nach exponentiellem Backoff wiederholen aus.
Geben Sie einen Minimalen Backoff und einen Maximalen Backoff zwischen 0 und 600 Sekunden ein.
Die Standardwerte betragen für den minimalen Backoff 10 Sekunden und für den maximalen Backoff 600 Sekunden.
Klicken Sie auf Erstellen.
gcloud
Führen Sie den Befehl gcloud pubsub create
mit den unten aufgeführten Flags aus, um ein neues Abo mit einer Wiederholungsrichtlinie mit exponentiellem Backoff zu erstellen:
gcloud pubsub subscriptions create SUBSCRIPTION_ID \ --topic=TOPIC_ID \ --min-retry-delay=MIN_RETRY_DELAY \ --max-retry-delay=MAX_RETRY_DELAY
Thema für unzustellbare Nachrichten
Wenn der Pub/Sub-Dienst versucht, eine Nachricht zuzustellen, der Abonnent sie jedoch nicht bestätigen kann, kann Pub/Sub die nicht zustellbare Nachricht an ein Thema für unzustellbare Nachrichten weiterleiten.
Funktionsweise von Themen für fehlgeschlagene Nachrichten mit Pub/Sub
Ein Thema für unzustellbare Nachrichten ist ein Abo-Attribut und kein Thema-Attribut. Das bedeutet, dass Sie ein Thema für unzustellbare Nachrichten festlegen, wenn Sie ein Abo erstellen, nicht wenn Sie ein Thema erstellen.
Wenn Sie ein Thema für unzustellbare Nachrichten erstellen, können Sie die folgenden Abo-Attribute festlegen:
Maximale Anzahl von Zustellungsversuchen: Ein numerischer Wert, der die Anzahl der Zustellungsversuche angibt, die Pub/Sub für eine bestimmte Nachricht unternimmt. Wenn der Abonnentenclient die Nachricht nicht innerhalb der konfigurierten Anzahl von Zustellungsversuchen bestätigen kann, wird die Nachricht an ein Thema für unzustellbare Nachrichten weitergeleitet.
- Standardwert = 5
- Höchstwert = 100
- Mindestwert = 5
Projekt mit dem Thema für unzustellbare Nachrichten: Wenn sich das Thema für unzustellbare Nachrichten in einem anderen Projekt als das Abo befindet, müssen Sie das Projekt mit dem Thema für unzustellbare Nachrichten angeben. Legen Sie das Thema für unzustellbare Nachrichten auf ein anderes Thema als das Thema fest, mit dem das Abo verknüpft ist.
Berechnung der maximalen Anzahl von Zustellversuchen
Pub/Sub zählt Zustellungsversuche nur, wenn ein Thema für unzustellbare Nachrichten richtig konfiguriert ist und die richtigen IAM-Berechtigungen enthält.
Die maximale Anzahl der Zustellungsversuche ist ein Näherungswert, da Pub/Sub nichtzustellbare Nachrichten auf Best-Effort-Basis weiterleitet.
Die Anzahl der erfassten Zustellversuche für eine Nachricht kann auch auf null zurückgesetzt werden, insbesondere bei einem Pull-Abo mit inaktiven Abonnenten. Daher werden die Nachrichten möglicherweise öfter an den Abonnentenclient gesendet als die konfigurierte maximale Anzahl von Zustellungsversuchen.
Thema für unzustellbare Nachrichten konfigurieren
Damit Sie ein Thema für unzustellbare Nachrichten konfigurieren können, muss das Quellthema zuerst ein Abo haben. Sie können ein Thema für unzustellbare Nachrichten angeben, wenn Sie das Abo erstellen, oder ein vorhandenes Abo aktualisieren, um ein Thema für unzustellbare Nachrichten zu verwenden.
Im Folgenden wird der Workflow zum Aktivieren von unzustellbaren Nachrichten für ein Abo beschrieben.
Erstellen Sie das Thema für unzustellbare Nachrichten. Dieses Thema ist vom Quellthema getrennt.
Legen Sie das Thema für unzustellbare Nachrichten für das Abo des Quellthemas fest.
Damit Nachrichten aus dem Thema für unzustellbare Nachrichten nicht verloren gehen, hängen Sie mindestens ein weiteres Abo an das Thema für unzustellbare Nachrichten an. Das sekundäre Abo empfängt Nachrichten aus dem Thema für unzustellbare Nachrichten.
Weisen Sie dem Pub/Sub-Dienstkonto die Publisher- und Abonnentenrollen zu. Weitere Informationen finden Sie unter Weiterleitungsberechtigungen erteilen.
Thema für unzustellbare Nachrichten für ein neues Abo festlegen
Sie können über dieGoogle Cloud -Konsole, die Google Cloud CLI, die Clientbibliotheken oder die Pub/Sub API ein Abo erstellen und ein Thema für unzustellbare Nachrichten festlegen.
Console
Führen Sie die folgenden Schritte aus, um ein Abo zu erstellen und ein Thema für unzustellbare Nachrichten festzulegen:
Rufen Sie in der Google Cloud Console die Seite Abos auf.
Klicken Sie auf Abo erstellen.
Geben Sie die Abo-ID ein.
Wählen Sie im Drop-down-Menü ein Thema aus oder erstellen Sie ein Thema.
Das Abo erhält Nachrichten aus dem Thema.
Wählen Sie im Abschnitt Unzustellbare Nachrichten die Option Unzustellbare Nachrichten aktivieren aus.
Wählen Sie im Drop-down-Menü ein Thema für unzustellbare Nachrichten aus.
Wenn das ausgewählte Thema für unzustellbare Nachrichten kein Abo hat, werden Sie aufgefordert, eines zu erstellen.
Geben Sie im Feld Maximale Zustellungsversuche eine Ganzzahl zwischen 5 und 100 ein.
Klicken Sie auf Erstellen.
Im Detailbereich wird eine Liste mit möglichen Aktionen angezeigt. Wenn bei einem der Elemente ein Fehlersymbol
angezeigt wird, klicken Sie auf das entsprechende Element, um das Problem zu beheben.
gcloud
Verwenden Sie den Befehl gcloud pubsub subscriptions create
, um ein Abo zu erstellen und ein Thema für unzustellbare Nachrichten festzulegen:
gcloud pubsub subscriptions create subscription-id \ --topic=topic-id \ --dead-letter-topic=dead-letter-topic-name \ [--max-delivery-attempts=max-delivery-attempts] \ [--dead-letter-topic-project=dead-letter-topic-project]
C++
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für C++ in der Kurzanleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zur Pub/Sub C++ API.
C#
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für C# in der Schnellstart-Anleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub C# API.
Go
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für Go in der Schnellstart-Anleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Go API.
Java
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für Java in der Kurzanleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Java API.
Node.js
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für PHP in der Schnellstart-Anleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Node.js API.
Node.js
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für PHP in der Schnellstart-Anleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Node.js API.
PHP
Folgen Sie der Einrichtungsanleitung für PHP unter Schnellstart: Clientbibliotheken verwenden, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zur PHP-API von Pub/Sub.
Python
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für Python in der Schnellstart-Anleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Python API.
Ruby
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für Ruby in der Schnellstart-Anleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Ruby API.
Ruby
Folgen Sie der Einrichtungsanleitung für Ruby in der Pub/Sub-Kurzanleitung: Clientbibliotheken verwenden, bevor Sie dieses Beispiel anwenden. Weitere Informationen finden Sie in der Referenzdokumentation zur Pub/Sub Ruby API.
Richten Sie zur Authentifizierung bei Pub/Sub Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Thema für unzustellbare Nachrichten für ein vorhandenes Abo festlegen
Sie können über dieGoogle Cloud -Konsole, die Google Cloud CLI, die Clientbibliotheken oder die Pub/Sub API ein Abo aktualisieren und ein Thema für unzustellbare Nachrichten festlegen.
Console
Führen Sie die folgenden Schritte aus, um ein Abo zu aktualisieren und ein Thema für unzustellbare Nachrichten festzulegen.
Rufen Sie in der Google Cloud Console die Seite Abos auf.
Klicken Sie neben dem zu aktualisierenden Abo auf Weitere Aktionenmore_vert.
Wählen Sie im Kontextmenü Bearbeiten aus.
Wählen Sie im Abschnitt Unzustellbare Nachrichten die Option Unzustellbare Nachrichten aktivieren aus.
Wählen Sie im Drop-down-Menü ein Thema aus oder erstellen Sie ein Thema.
Wenn für das ausgewählte Thema kein Abo vorhanden ist, werden Sie aufgefordert, eines zu erstellen.
Geben Sie im Feld Maximale Zustellungsversuche eine Ganzzahl zwischen 5 und 100 ein.
Klicken Sie auf Aktualisieren.
Im Detailbereich wird eine Liste mit möglichen Aktionen angezeigt. Wenn bei einem der Elemente ein Fehlersymbol
angezeigt wird, klicken Sie auf das entsprechende Element, um das Problem zu beheben.
gcloud
Verwenden Sie den Befehl gcloud pubsub subscriptions update
, um ein Abo zu aktualisieren und ein Thema für unzustellbare Nachrichten festzulegen:
gcloud pubsub subscriptions update subscription-id \ --dead-letter-topic=dead-letter-topic-name \ [--max-delivery-attempts=max-delivery-attempts] \ [--dead-letter-topic-project=dead-letter-topic-project]
C++
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für C++ in der Kurzanleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zur Pub/Sub C++ API.
C#
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für C# in der Schnellstart-Anleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub C# API.
Go
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für Go in der Schnellstart-Anleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Go API.
Java
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für Java in der Kurzanleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Java API.
Node.js
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für PHP in der Schnellstart-Anleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Node.js API.
PHP
Folgen Sie der Einrichtungsanleitung für PHP unter Schnellstart: Clientbibliotheken verwenden, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zur PHP-API von Pub/Sub.
Python
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für Python in der Schnellstart-Anleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Python API.
Ruby
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für Ruby in der Schnellstart-Anleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Ruby API.
Ruby
Folgen Sie der Einrichtungsanleitung für Ruby in der Pub/Sub-Kurzanleitung: Clientbibliotheken verwenden, bevor Sie dieses Beispiel anwenden. Weitere Informationen finden Sie in der Referenzdokumentation zur Pub/Sub Ruby API.
Richten Sie zur Authentifizierung bei Pub/Sub Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
IAM-Rollen zum Verwenden von Dead-Letter-Themen zuweisen
Damit unzustellbare Nachrichten an ein Thema für unzustellbare Nachrichten weitergeleitet werden können, muss Pub/Sub die Berechtigung haben, folgendes zu tun:
- Veröffentlichen Sie Nachrichten zum Thema:
- Bestätigen Sie die Nachrichten, wodurch sie aus dem Abo entfernt werden.
Pub/Sub erstellt und verwaltet für jedes Projekt ein Dienstkonto: service-project-number@gcp-sa-pubsub.iam.gserviceaccount.com
.
Sie können Weiterleitungsberechtigungen erteilen, indem Sie diesem Dienstkonto die Rollen „Publisher“ und „Abonnent“ zuweisen.
Console
Führen Sie die folgenden Schritte aus, um Pub/Sub die Berechtigung zum Veröffentlichen von Nachrichten in einem Thema für unzustellbare Nachrichten zu gewähren:
Rufen Sie in der Google Cloud Console die Seite Abos auf.
Klicken Sie auf den Namen des Abos mit dem Dead-Letter-Thema.
Klicken Sie auf den Tab Falsch adressierte Sendungen.
Klicken Sie auf Publisher-Rolle zuweisen, um eine Publisher-Rolle zuzuweisen. Wenn die Publisher-Rolle erfolgreich zugewiesen wurde, wird ein blaues Häkchen
angezeigt.Wenn Sie eine Abonnentenrolle zuweisen möchten, klicken Sie auf Abonnentenrolle gewähren. Wenn die Publisher-Rolle erfolgreich zugewiesen wurde, wird ein blaues Häkchen
angezeigt.
gcloud
Führen Sie den folgenden Befehl aus, um Pub/Sub die Berechtigung zum Veröffentlichen von Nachrichten an das Thema für unzustellbare Nachrichten zu gewähren:
PUBSUB_SERVICE_ACCOUNT="service-project-number@gcp-sa-pubsub.iam.gserviceaccount.com" gcloud pubsub topics add-iam-policy-binding dead-letter-topic-name \ --member="serviceAccount:$PUBSUB_SERVICE_ACCOUNT"\ --role="roles/pubsub.publisher"
Führen Sie den folgenden Befehl aus, um Pub/Sub die Berechtigung zum Bestätigen der weitergeleiteten unzustellbaren Nachrichten zu erteilen:
PUBSUB_SERVICE_ACCOUNT="service-project-number@gcp-sa-pubsub.iam.gserviceaccount.com" gcloud pubsub subscriptions add-iam-policy-binding subscription-id \ --member="serviceAccount:$PUBSUB_SERVICE_ACCOUNT"\ --role="roles/pubsub.subscriber"
Zustellversuche verfolgen
Nachdem Sie ein Thema für unzustellbare Nachrichten für ein Abo aktiviert haben, enthält jede Nachricht aus diesem Abo ein Feld, in dem die Anzahl der Zustellungsversuche angegeben ist:
Nachrichten, die aus einem Pull-Abo empfangen werden, enthalten das Feld
delivery_attempt
.Nachrichten, die von einem Push-Abo empfangen werden, enthalten das Feld
deliveryAttempt
.
Die folgenden Beispiele zeigen, wie Sie die Anzahl der Übermittlungsversuche abrufen können:
C++
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für C++ in der Kurzanleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zur Pub/Sub C++ API.
C#
Folgen Sie der Einrichtungsanleitung für C# in der Pub/Sub-Kurzanleitung: Clientbibliotheken verwenden, bevor Sie dieses Beispiel anwenden. Weitere Informationen finden Sie in der Referenzdokumentation zur Pub/Sub C# API.
Richten Sie zur Authentifizierung bei Pub/Sub Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Go
Folgen Sie der Einrichtungsanleitung für Go in der Pub/Sub-Kurzanleitung: Clientbibliotheken verwenden, bevor Sie dieses Beispiel anwenden. Weitere Informationen finden Sie in der Referenzdokumentation zur Pub/Sub Go API.
Richten Sie zur Authentifizierung bei Pub/Sub Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Java
Folgen Sie der Einrichtungsanleitung für Java in der Pub/Sub-Kurzanleitung: Clientbibliotheken verwenden, bevor Sie dieses Beispiel anwenden. Weitere Informationen finden Sie in der Referenzdokumentation zur Pub/Sub Java API.
Richten Sie zur Authentifizierung bei Pub/Sub Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Node.js
Folgen Sie der Einrichtungsanleitung für Node.js in der Pub/Sub-Kurzanleitung: Clientbibliotheken verwenden, bevor Sie dieses Beispiel anwenden. Weitere Informationen finden Sie in der Referenzdokumentation zur Pub/Sub Node.js API.
Richten Sie zur Authentifizierung bei Pub/Sub Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
PHP
Folgen Sie der Einrichtungsanleitung für PHP in der Pub/Sub-Kurzanleitung: Clientbibliotheken verwenden, bevor Sie dieses Beispiel anwenden. Weitere Informationen finden Sie in der Referenzdokumentation zur Pub/Sub PHP API.
Richten Sie zur Authentifizierung bei Pub/Sub Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Python
Folgen Sie der Einrichtungsanleitung für Python in der Pub/Sub-Kurzanleitung: Clientbibliotheken verwenden, bevor Sie dieses Beispiel anwenden. Weitere Informationen finden Sie in der Referenzdokumentation zur Pub/Sub Python API.
Richten Sie zur Authentifizierung bei Pub/Sub Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Ruby
Folgen Sie der Einrichtungsanleitung für Ruby in der Pub/Sub-Kurzanleitung: Clientbibliotheken verwenden, bevor Sie dieses Beispiel anwenden. Weitere Informationen finden Sie in der Referenzdokumentation zur Pub/Sub Ruby API.
Richten Sie zur Authentifizierung bei Pub/Sub Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Wenn Pub/Sub eine nicht zustellbare Nachricht an ein Thema für unzustellbare Nachrichten weiterleitet, werden der Nachricht die folgenden Attribute hinzugefügt:
CloudPubSubDeadLetterSourceDeliveryCount
: Die Anzahl der Zustellversuche für das Quellabo.CloudPubSubDeadLetterSourceSubscription
: Der Name des Quellabos.CloudPubSubDeadLetterSourceSubscriptionProject
: Der Name des Projekts, das das Quell-Abo enthält.CloudPubSubDeadLetterSourceTopicPublishTime
: Der Zeitstempel, der angibt, wann die Nachricht ursprünglich veröffentlicht wurde.CloudPubSubDeadLetterSourceDeliveryErrorMessage
: Der Grund, warum die Nachricht nicht an das ursprüngliche Ziel zugestellt werden konnte. Das Attribut ist nur für Exportabos verfügbar.
Weitergeleitete Nachrichten beobachten
Nach der Weiterleitung einer nicht zustellbaren Nachricht entfernt der Pub/Sub-Dienst die Nachricht aus dem Abo. Mit Cloud Monitoring können Sie weitergeleitete Nachrichten überwachen.
Wenn Sie ein Abo an das Thema für unzustellbare Nachrichten anhängen, verwenden die Nachrichten die Ablaufrichtlinie des angehängten Abos anstelle der Ablaufzeit des Abos mit dem Attribut für unzustellbare Nachrichten.
Der subscription/dead_letter_message_count
-Messwert zeichnet die Anzahl der unzustellbaren Nachrichten auf, die Pub/Sub von einem Abo weiterleitet.
Weitere Informationen finden Sie unter Weitergeleitete unzustellbare Nachrichten beobachten.
Thema für unzustellbare Nachrichten entfernen
Entfernen Sie das Thema für unzustellbare Nachrichten aus dem Abo, um die Weiterleitung von unzustellbaren Nachrichten zu beenden.
Sie können ein Thema für unzustellbare Nachrichten aus einem Abo mit derGoogle Cloud -Konsole, der Google Cloud CLI oder der Pub/Sub API entfernen.
Console
Führen Sie die folgenden Schritte aus, um ein Thema für unzustellbare Nachrichten aus einem Abo zu entfernen:
Rufen Sie in der Google Cloud Console die Seite Abos auf.
Klicken Sie in der Liste der Abos neben dem zu aktualisierenden Abo auf more_vert.
Wählen Sie im Kontextmenü Bearbeiten aus.
Deaktivieren Sie im Abschnitt Unzustellbare Nachrichten die Option Unzustellbare Nachrichten aktivieren aus.
Klicken Sie auf Aktualisieren.
gcloud
Verwenden Sie den Befehl gcloud pubsub subscriptions update
und das Flag --clear-dead-letter-policy
, um ein Thema für unzustellbare Nachrichten aus einem Abo zu entfernen:
gcloud pubsub subscriptions update subscription-id \ --clear-dead-letter-policy
C++
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für C++ in der Kurzanleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zur Pub/Sub C++ API.
C#
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für C# in der Schnellstart-Anleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub C# API.
Go
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für Go in der Schnellstart-Anleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Go API.
Java
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für Java in der Kurzanleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Java API.
Node.js
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für PHP in der Schnellstart-Anleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Node.js API.
PHP
Folgen Sie der Einrichtungsanleitung für PHP unter Schnellstart: Clientbibliotheken verwenden, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zur PHP-API von Pub/Sub.
Python
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für Python in der Schnellstart-Anleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Python API.
Ruby
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für Ruby in der Schnellstart-Anleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Ruby API.
Ruby
Folgen Sie der Einrichtungsanleitung für Ruby in der Pub/Sub-Kurzanleitung: Clientbibliotheken verwenden, bevor Sie dieses Beispiel anwenden. Weitere Informationen finden Sie in der Referenzdokumentation zur Pub/Sub Ruby API.
Richten Sie zur Authentifizierung bei Pub/Sub Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Preise
Wenn der Pub/Sub-Dienst unzustellbare Nachrichten weiterleitet, fallen die folgenden Gebühren an:
- Veröffentlichungsgebühren werden dem Rechnungskonto in Rechnung gestellt, das mit dem Projekt verknüpft ist, das das Thema für unzustellbare Nachrichten enthält.
- Abogebühren für ausgehende Nachrichten werden über das Rechnungskonto abgerechnet, das mit dem Projekt verknüpft ist, das das Abo mit dem Attribut für unzustellbare Nachrichten enthält.
Wenn Sie das Attribut für unzustellbare Nachrichten eines Abos festlegen, aber die Richtlinie für den Nachrichtenspeicherort des Themas für unzustellbare Nachrichten lässt die Region, die das Abo enthält, nicht zu, fallen Gebühren für ausgehende Veröffentlichungen an.
Veröffentlichungsgebühren für ausgehende Nachrichten werden über das Projekt abgerechnet, das das Thema für unzustellbare Nachrichten enthält. Weitere Informationen finden Sie unter Preise.
Nächste Schritte
- Weitergeleitete unzustellbare Nachrichten abrufen
- Pub/Sub-Anwendungen überwachen
- Konzepte der Nachrichtenübermittlung