In diesem Dokument wird beschrieben, wie Sie den automatischen Export von Pub/Sub Lite-Nachrichten nach Pub/Sub einrichten.
Hier sind einige Szenarien, in denen Sie diese Funktion verwenden können:
- Interkonnektivität zwischen Arbeitslasten, die eine Mischung aus Pub/Sub Lite und Pub/Sub verwenden.
- Pub/Sub Lite-Arbeitslast zu Pub/Sub migrieren
- Erweiterte Pub/Sub-Funktionen wie Push-Abos und Filterung in einer vorhandenen Anwendung verwenden, die auf Pub/Sub Lite basiert.
- Mehrere Datenpipelines zusammenführen.
Übersicht
Wenn Sie Nachrichten von Pub/Sub Lite nach Pub/Sub exportieren möchten, erstellen Sie einen speziellen Abotyp, der als Exportabo bezeichnet wird. Ein Exportabo empfängt Nachrichten von einem Lite-Thema, konvertiert sie in Pub/Sub-Nachrichten und sendet die konvertierten Nachrichten an ein Ziel-Pub/Sub-Thema.
Ein Lite-Thema kann sowohl Export- als auch Standardabos umfassen. Die beiden Abotypen sind hinsichtlich Kontingentnutzung und Reservierungsdurchsatz identisch. Ein Exportabo belegt die Durchsatzkapazität eines Lite-Abos und es wird der Pub/Sub-Veröffentlichungsdurchsatz in Rechnung gestellt.
Ein Exportabo verbindet ein Lite-Thema mit genau einem Pub/Sub-Thema. Ein Lite-Thema kann jedoch mehrere Exportabos haben, die mit verschiedenen Pub/Sub-Themen verbunden sind (Fan-Out-Architektur). Sie können auch aus mehreren Lite-Themen in dasselbe Pub/Sub-Thema exportieren (Fan-In-Architektur).
Authentifizierung
Ein Exportabo greift sowohl auf Pub/Sub Lite- als auch auf Pub/Sub-Ressourcen zu. Zum Erstellen eines Export-Abos benötigen Sie die folgenden Berechtigungen:
pubsublite.subscriptions.create
. Die folgenden vordefinierten Rollen enthalten diese Berechtigung:roles/pubsublite.admin
roles/pubsublite.editor
Weitere Informationen finden Sie unter Zugriffssteuerung für Pub/Sub Lite.
pubsub.topics.get
. Die folgenden vordefinierten Rollen enthalten diese Berechtigung:roles/pubsub.admin
roles/pubsub.editor
roles/pubsub.viewer
Weitere Informationen finden Sie unter Zugriffssteuerung für Pub/Sub.
Kundenservicemitarbeiter
Mit einem Exportabo werden Daten in Ihrem Namen in einem Pub/Sub-Thema veröffentlicht. Dazu wird ein Dienst-Agent verwendet.
Nachdem Sie das erste Exportabo in einem Projekt erstellt haben, wird automatisch ein Pub/Sub Lite-Dienst-Agent erstellt. Wenn Sie im selben Projekt zusätzliche Exportabos erstellen, wird für diese derselbe Dienstmitarbeiter verwendet. Der Dienst-Agent hat das folgende Benennungsschema:
service-<your_project_number>@gcp-sa-pubsublite.iam.gserviceaccount.com
.
Der Dienst-Agent wird mit Berechtigungen zum Veröffentlichen in allen Pub/Sub- und Pub/Sub Lite-Themen im selben Projekt wie das Exportabo erstellt. Wenn sich das Ziel-Pub/Sub-Thema in einem anderen Projekt als das Exportabo befindet, müssen Sie dem Kundenservicemitarbeiter zusätzliche Berechtigungen gewähren, indem Sie ihm die Rolle Pub/Sub-Publisher (roles/pubsub.publisher
) zuweisen. Sie können Berechtigungen für ein ganzes Projekt oder ein einzelnes Thema gewähren. Wir empfehlen, Berechtigungen auf Themenebene zu gewähren, gemäß dem Prinzip der geringsten Berechtigung.
Weitere Informationen finden Sie unter Zugriff über die Google Cloud Console steuern.
Sie können auch den Befehl gcloud projects add-iam-policy-binding
verwenden, um IAM-Rollen hinzuzufügen:
gcloud pubsub topics add-iam-policy-binding TOPIC_NAME \ --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-pubsublite.iam.gserviceaccount.com --role=roles/pubsub.publisher
Ersetzen Sie Folgendes:
- TOPIC_NAME: Der Name des Ziel-Pub/Sub-Themas, dem die IAM-Richtlinienbindung hinzugefügt werden soll.
- PROJECT_NUMBER: Die Projektnummer des Projekts, zu dem das Pub/Sub Lite-Exportabo gehört.
Exportabo erstellen
Sie können ein Lite-Exportabo mit der Google Cloud Console, der Google Cloud CLI oder der Pub/Sub Lite API erstellen.
Ein Lite-Exportabo muss sich im selben Projekt und am selben Speicherort wie das Lite-Thema befinden, mit dem es verknüpft ist. Weitere Informationen zum Erstellen eines Lite-Themas finden Sie unter Lite-Themen erstellen und verwalten.
Wenn Sie einem Lite-Thema ein Exportabo zuweisen, müssen alle im Lite-Thema veröffentlichten Nachrichten mit Pub/Sub kompatibel sein. Weitere Informationen finden Sie unter Nachrichtenkompatibilität.
Nachdem ein Exportabo erstellt wurde, können Sie es nicht mehr in ein Standardabo umwandeln und umgekehrt.
Console
Rufe die Seite Lite-Abos auf.
Klicken Sie auf Lite-Abo erstellen.
Geben Sie eine Lite-Abo-ID ein.
Wählen Sie ein Lite-Thema aus, von dem Nachrichten empfangen werden sollen.
Wählen Sie Nachrichten sofort senden oder Nachrichten nach dem Speichern senden aus.
Wählen Sie einen Startoffset aus.
Wählen Sie In Pub/Sub-Thema exportieren aus.
Wählen Sie in der Liste Zielthema ein Pub/Sub-Thema aus, in dem die exportierten Lite-Nachrichten empfangen werden sollen.
Optional. Geben Sie ein Thema für unzustellbare Nachrichten an.
- Klicken Sie das Kästchen Unzustellbare Nachrichten aktivieren an.
- Wählen Sie ein Lite-Thema aus, das als Thema für unzustellbare Nachrichten verwendet werden soll, oder klicken Sie auf Lite-Thema erstellen, um ein neues Thema für unzustellbare Nachrichten zu erstellen. Das Dead-Letter-Thema muss sich am selben Speicherort (Zone oder Region) und im selben Projekt wie das Exportabo befinden.
Klicken Sie auf Erstellen.
gcloud
Verwenden Sie den Befehl gcloud pubsub lite-subscriptions create
, um ein Exportabo zu erstellen:
gcloud pubsub lite-subscriptions create SUBSCRIPTION_ID \ --location=LOCATION \ --topic=TOPIC_ID \ --export-pubsub-topic=PUBSUB_TOPIC_NAME \ --export-dead-letter-topic=DEAD_LETTER_TOPIC_ID \ --export-desired-state=DESIRED_STATE
Ersetzen Sie Folgendes:
- SUBSCRIPTION_ID: Die ID des zu erstellenden Lite-Abos.
- LOCATION: Der Standort des Lite-Abos.
- TOPIC_ID: Die ID des Lite-Themas, das an das Lite-Abo angehängt werden soll.
- PUBSUB_TOPIC_NAME: Der Name des Pub/Sub-Themas, in das exportiert werden soll. Geben Sie den vollständigen Namen an, wenn sich das Thema in einem anderen Projekt befindet:
projects/my-project-id/topics/my-topic-id
. - DEAD_LETTER_TOPIC_ID: Optional. Die ID eines Lite-Themas, das als Thema für unzustellbare Nachrichten verwendet werden soll. Das Dead-Letter-Thema muss sich am selben Standort (Zone oder Region) und im selben Projekt wie das Exportabo befinden.
- DESIRED_STATE: Optional. Der Startstatus des Abos.
Folgende Werte werden unterstützt:
active
: Das Abo exportiert Lite-Nachrichten nach Pub/Sub. (Standardeinstellung.)paused
: Der Export von Lite-Nachrichten ist ausgesetzt.
Wenn die Anfrage erfolgreich ist, wird in der Befehlszeile eine Bestätigung angezeigt:
Created [SUBSCRIPTION_ID].
Protokoll
Senden Sie zum Erstellen eines Lite-Export-Abos eine POST
-Anfrage wie die folgende:
POST https://REGION-pubsublite.googleapis.com/v1/admin/projects/PROJECT_NUMBER/locations/LOCATION/subscriptions/SUBSCRIPTION_ID Authorization: Bearer $(gcloud auth print-access-token)
Ersetzen Sie Folgendes:
- REGION: Die Region, in der das Lite-Abo gespeichert werden soll.
- PROJECT_NUMBER: Die Projektnummer des Projekts, in dem das Lite-Abo erstellt werden soll.
- LOCATION: Der Name eines von Pub/Sub Lite unterstützten Standorts.
- SUBSCRIPTION_ID: Die ID des Lite-Abos.
Geben Sie im Anfragetext die folgenden Felder an:
{ "topic": "projects/PROJECT_NUMBER/locations/LOCATION/topics/TOPIC_ID", "deliveryConfig": { "deliveryRequirement": "DELIVERY_REQUIREMENT", }, "exportConfig": { "desiredState": "DESIRED_STATE", "deadLetterTopic": "projects/PROJECT_NUMBER/locations/LOCATION/topics/DEAD_LETTER_TOPIC_ID", "pubsubConfig": { "topic": "PUBSUB_TOPIC_NAME" } } }
Ersetzen Sie Folgendes:
- DELIVERY_REQUIREMENT: Die Lieferanforderung, entweder
DELIVER_AFTER_STORED
oderDELIVER_IMMEDIATELY
. - DESIRED_STATE: Der Startstatus des Abos. Folgende Werte werden unterstützt:
ACTIVE
: Das Abo exportiert Lite-Nachrichten nach Pub/Sub.PAUSED
: Der Export von Lite-Nachrichten ist ausgesetzt.
- DEAD_LETTER_TOPIC_ID: Die ID eines vorhandenen Lite-Themas, das als Thema für nicht übermittelbare Nachrichten verwendet werden soll. Das Thema muss sich am selben Speicherort (Zone oder Region) und im selben Projekt wie das Exportabo befinden.
- PUBSUB_TOPIC_NAME: Der Name des Pub/Sub-Themas, in das exportiert werden soll. Beispielformat:
projects/my-project-id/topics/my-topic-id
.
Wenn die Anfrage erfolgreich ist, ist die Antwort das Lite-Abo im JSON-Format:
{ "deliveryConfig": { "deliveryRequirement": "DELIVERY_REQUIREMENT", }, "exportConfig": { "desiredState": "DESIRED_STATE", "deadLetterTopic": "projects/PROJECT_NUMBER/locations/LOCATION/topics/DEAD_LETTER_TOPIC_ID", "pubsubConfig": { "topic": "PUBSUB_TOPIC_NAME" }, "name": "projects/PROJECT_NUMBER/locations/LOCATION/subscriptions/SUBSCRIPTION_ID", "topic": "projects/PROJECT_NUMBER/locations/LOCATION/topics/TOPIC_ID", }
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 ausführen, folgen Sie den Schritten zur Einrichtung von Java in Pub/Sub Lite-Clientbibliotheken.
Python
Bevor Sie dieses Beispiel ausführen, folgen Sie den Schritten zur Einrichtung von Java in Pub/Sub Lite-Clientbibliotheken.
Exportabo aktualisieren
Sie können Lite-Abos mit der Google Cloud Console, der Google Cloud CLI oder der Pub/Sub Lite API aktualisieren. Es kann bis zu 30 Sekunden dauern, bis die neuen Einstellungen übernommen werden.
Console
Rufe die Seite Lite-Abos auf.
Klicken Sie auf die Lite-Abo-ID.
Klicken Sie auf der Seite Lite-Abonnementdetails auf Bearbeiten.
gCloud
Verwenden Sie zum Aktualisieren eines Lite-Abos den Befehl gcloud pubsub lite-subscriptions update
:
gcloud pubsub lite-subscriptions update SUBSCRIPTION_ID \ --location=LOCATION \ --delivery-requirement=DELIVERY_REQUIREMENT \ --export-pubsub-topic=PUBSUB_TOPIC_NAME \ --export-dead-letter-topic=DEAD_LETTER_TOPIC_ID \ --export-desired-state=DESIRED_STATE
Ersetzen Sie Folgendes:
- SUBSCRIPTION_ID: Die ID des Lite-Abos
- LOCATION: Der Standort des Lite-Abos.
- DELIVERY_REQUIREMENT: Optional. Die Sendeanforderung, entweder
deliver-after-stored
oderdeliver-immediately
. - PUBSUB_TOPIC_NAME: Optional. Der Name des Pub/Sub-Themas, in das exportiert werden soll. Geben Sie den vollständigen Namen an, wenn sich das Thema in einem anderen Projekt befindet:
projects/my-project-id/topics/my-topic-id
. - DEAD_LETTER_TOPIC_ID: Die ID eines vorhandenen Lite-Themas, das als Thema für nicht übermittelbare Nachrichten verwendet werden soll. Das Thema muss sich am selben Speicherort (Zone oder Region) und im selben Projekt wie das Exportabo befinden.
- DESIRED_STATE: Optional. Der gewünschte Status des Abos.
Folgende Werte werden unterstützt:
active
: Das Abo exportiert Lite-Nachrichten nach Pub/Sub. (Standardeinstellung.)paused
: Der Export von Lite-Nachrichten ist ausgesetzt.
Wenn die Anfrage erfolgreich ist, wird in der Befehlszeile das Lite-Abo angezeigt:
Updated subscription [SUBSCRIPTION_ID]. deliveryConfig: deliveryRequirement: DELIVERY_REQUIREMENT exportConfig: currentState: DESIRED_STATE deadLetterTopic: projects/PROJECT_NUMBER/locations/LOCATION/topics/DEAD_LETTER_TOPIC_ID desiredState: DESIRED_STATE pubsubConfig: topic: PUBSUB_TOPIC_NAME name: projects/PROJECT_NUMBER/locations/LOCATION/subscriptions/SUBSCRIPTION_ID topic: projects/PROJECT_NUMBER/locations/LOCATION/topics/TOPIC_ID
Protokoll
Um ein Lite-Abo zu aktualisieren, senden Sie eine PATCH
-Anfrage wie die folgende:
PATCH https://REGION-pubsublite.googleapis.com/v1/admin/projects/PROJECT_NUMBER/locations/LOCATION/subscriptions/SUBSCRIPTION_ID?updateMask=deliveryConfig.deliveryRequirement,exportConfig Authorization: Bearer $(gcloud auth print-access-token)
Ersetzen Sie Folgendes:
- REGION: Die Region, in der das Lite-Abo erstellt wurde.
- PROJECT_NUMBER: Die Projektnummer des Projekts, in dem das Lite-Abo erstellt wurde.
- LOCATION: Der Standort, an dem das Lite-Abo erstellt wurde.
- SUBSCRIPTION_ID: Die ID des Lite-Abos.
Geben Sie im Anfragetext die folgenden Felder an:
{ "deliveryConfig": { "deliveryRequirement": "DELIVERY_REQUIREMENT", }, "exportConfig": { "desiredState": "DESIRED_STATE", "deadLetterTopic": "projects/PROJECT_NUMBER/locations/LOCATION/topics/DEAD_LETTER_TOPIC_ID", "pubsubConfig": { "topic": "PUBSUB_TOPIC_NAME" } } }
Ersetzen Sie Folgendes:
- DELIVERY_REQUIREMENT: Die Lieferanforderung, entweder
DELIVER_AFTER_STORED
oderDELIVER_IMMEDIATELY
. - DESIRED_STATE: Der gewünschte Status für das Abo. Folgende Werte werden unterstützt:
ACTIVE
: Das Abo exportiert Lite-Nachrichten nach Pub/Sub.PAUSED
: Der Export von Lite-Nachrichten ist ausgesetzt.
- DEAD_LETTER_TOPIC_ID: Die ID eines vorhandenen Lite-Themas, das als Thema für nicht übermittelbare Nachrichten verwendet werden soll. Das Thema muss sich am selben Speicherort (Zone oder Region) und im selben Projekt wie das Exportabo befinden.
- PUBSUB_TOPIC_NAME: Der Name des Ziel-Pub/Sub-Themas. Beispielformat:
projects/my-project-id/topics/my-topic-id
.
Wenn die Anfrage erfolgreich ist, ist die Antwort das Lite-Abo im JSON-Format:
{ "deliveryConfig": { "deliveryRequirement": "DELIVERY_REQUIREMENT", }, "exportConfig": { "desiredState": "DESIRED_STATE", "deadLetterTopic": "projects/PROJECT_NUMBER/locations/LOCATION/topics/DEAD_LETTER_TOPIC_ID", "pubsubConfig": { "topic": "PUBSUB_TOPIC_NAME" } }, "name": "projects/PROJECT_NUMBER/locations/LOCATION/subscriptions/SUBSCRIPTION_ID", "topic": "projects/PROJECT_NUMBER/locations/LOCATION/topics/TOPIC_ID", }
Exportabo pausieren oder starten
Exportabonnements haben die Einstellung gewünschter Status, die einen der beiden Werte hat:
- Aktiv: Das Abo exportiert Lite-Nachrichten nach Pub/Sub.
- Pausiert: Der Export von Lite-Nachrichten ist ausgesetzt.
So ändern Sie den gewünschten Status in der Google Cloud Console:
Rufe die Seite Lite-Abos auf.
Klicken Sie auf die Lite-Abo-ID.
Klicken Sie auf der Seite Lite-Abonnementdetails auf Pausieren oder Starten.
Sie können den gewünschten Status auch mit der Google Cloud CLI oder der Pub/Sub Lite API aktualisieren. Weitere Informationen finden Sie unter Exportabo aktualisieren.
Best Practices
In diesem Abschnitt werden einige Best Practices für die Verwendung von Exportabos beschrieben.
Reservierungen
Wir empfehlen, ein Exportabo mit einer Reservierung zu verwenden, anstatt die Durchsatzkapazität des Abos explizit festzulegen.
Nachrichtenkompatibilität
Wenn eine Pub/Sub Lite-Nachricht nicht mit Pub/Sub kompatibel ist, wird sie über das Exportabo nicht in Pub/Sub veröffentlicht. Stattdessen wird die Nachricht im Thema für unzustellbare Nachrichten platziert, falls eines zugewiesen wurde. Wenn kein Thema für unzustellbare Nachrichten zugewiesen wurde, werden inkompatible Nachrichten einfach verworfen.
Beachten Sie beim Veröffentlichen von Nachrichten im Lite-Thema die folgenden Kompatibilitätsprobleme:
Tasten. Pub/Sub Lite-Schlüssel haben den Typ
bytes
, während Pub/Sub-Reihenfolgeschlüssel den Typstring
haben. Der Pub/Sub Lite-Schlüssel muss zur Kompatibilität nur UTF-8-Zeichen enthalten.Attribute Für Nachrichtenattribute gelten die folgenden Anforderungen:
- Für die Kompatibilität müssen alle Pub/Sub Lite-Nachrichtenattribute einen einzelnen Wert haben. Pub/Sub Lite unterstützt Nachrichtenattribute mit mehreren Werten, Pub/Sub jedoch nur Attribute mit einem einzelnen Wert.
- Die Nachrichtenattribute dürfen die Pub/Sub-Nachrichtenlimits nicht überschreiten, einschließlich der maximalen Anzahl von Attributen pro Nachricht sowie der maximalen Schlüssel- und Wertegröße pro Attribut.
Thema für unzustellbare Nachrichten
Um inkompatible Nachrichten zu speichern und zu verarbeiten, empfehlen wir die Verwendung eines Dead-Letter-Themas. Sie können ein Thema für unzustellbare Nachrichten beim Erstellen des Export-Abos zuweisen oder ein vorhandenes Export-Abo aktualisieren, um ein Thema für unzustellbare Nachrichten zu verwenden. Wenn das Abo eine Nachricht empfängt, die nicht mit Pub/Sub kompatibel ist, wird sie im Thema für unzustellbare Nachrichten veröffentlicht.
Ein Dead-Letter-Thema ist ein reguläres Pub/Sub Lite-Thema. Es muss sich am selben Speicherort und im selben Projekt wie das Exportabo befinden und ein anderes Thema als das Quellthema sein.
Normalerweise ist die Auslastung des Durchsatzes bei einem Thema für unzustellbare Nachrichten gering. Wir empfehlen daher, dem Thema für unzustellbare Nachrichten eine Reservierung zuzuweisen, anstatt dem Thema einen Durchsatz zuzuweisen.
Zustellungsfehler
Bei einem Exportabo wird versucht, alle kompatiblen Nachrichten an das Ziel-Pub/Sub-Thema zuzustellen. Wenn die Nachrichtenzustellung fehlschlägt, wird das Exportabo ausgesetzt. Die Fehlerkategorie finden Sie im Messwert subscription/export_status
. Die folgenden Werte weisen auf einen Fehler hin:
PERMISSION_DENIED
: Unzureichende Berechtigungen zum Exportieren von Nachrichten.NOT_FOUND
: Mindestens eine Ressource wurde nicht gefunden. Beispielsweise gibt es das Zielthema nicht.
Weitere Informationen zur Fehlerbehebung finden Sie unter Fehlerbehebung bei Exportabos.
Nachdem Sie den Fehler behoben haben, wird das Exportabo aufgrund regelmäßiger Wiederholungsversuche automatisch neu gestartet.
Preise
Ihnen werden die Pub/Sub Lite- und Pub/Sub-Ressourcen in Rechnung gestellt, die vom Exportabo verbraucht werden. Sie werden insbesondere für den zugewiesenen Durchsatz und Speicherplatz des Pub/Sub Lite-Abos in Rechnung gestellt, die für das Pub/Sub Lite-Thema konfiguriert sind. Außerdem werden Ihnen die Kosten für die Veröffentlichung im Ziel-Pub/Sub-Thema in Rechnung gestellt. Weitere Informationen finden Sie unter Pub/Sub-Preise.
Für die Nutzung der Exportfunktion fallen keine zusätzlichen Kosten an. Außerdem gibt es keinen Preisunterschied zwischen Pub/Sub Lite-Exportabos und Standardabos.
Fehlerbehebung bei Exportabos
In diesem Abschnitt finden Sie einige Tipps zur Fehlerbehebung bei Exportabonnements.
Das Exportabo ist pausiert
Wenn das Abo pausiert ist, werden keine Nachrichten exportiert.
So erkennen Sie dieses Problem:
Google Cloud Console: Rufen Sie die Abodetails auf. Wenn das Abo pausiert ist, sind Gewünschter Status und Aktueller Status
Paused
.Messwerte: Der Messwert
subscription/export_status
istPAUSED
.
Starten Sie das Abo, um das Problem zu beheben.
Das Ziel- oder Thema für unzustellbare Nachrichten wurde gelöscht
Wenn Sie das Pub/Sub-Thema löschen, das mit einem Exportabo verknüpft ist, oder das Thema für unzustellbare Nachrichten löschen, tritt ein Fehler auf.
So erkennen Sie dieses Problem:
Google Cloud Console: Rufen Sie die Abodetails auf. Wenn das Thema gelöscht wurde, lautet der aktuelle Status
Not found
.Messwerte: Der Messwert
subscription/export_status
. Wenn das Thema gelöscht wurde, ist der WertNOT_FOUND
.
Prüfen Sie zur Behebung dieses Problems das Ziel-Pub/Sub-Thema und das Thema mit dem toten Buchstaben (falls konfiguriert).
Wenn das Ziel-Pub/Sub-Thema gelöscht wurde, erstellen Sie es mit demselben Namen neu. Die Veröffentlichung des Export-Abos wird fortgesetzt, sofern sich die Berechtigungen nicht geändert haben.
Wenn das Thema für unzustellbare Nachrichten gelöscht wurde, erstellen Sie ein neues und aktualisieren Sie das Exportabo, um darauf zu verweisen.
Inkompatible Nachrichten
Nachrichten, die nicht mit Pub/Sub kompatibel sind, werden nicht exportiert.
So erkennen Sie dieses Problem:
- Messwerte: Der Messwert
subscription/unexportable_message_count
gibt die Anzahl der inkompatiblen Nachrichten an, die nicht exportiert werden konnten.
Verwenden Sie ein Thema für unzustellbare Nachrichten, um die inkompatiblen Nachrichten zu speichern. Prüfen Sie die Nachrichten, um die Ursache zu ermitteln, und transformieren Sie sie bei Bedarf und veröffentlichen Sie sie dann noch einmal. Weitere Informationen finden Sie unter Nachrichtenkompatibilität.
Export wird gedrosselt
So erkennen Sie dieses Problem:
- Messwerte: Der Messwert
subscription/flow_control_status
hat den GrundNO_CLIENT_TOKENS
für die Ablaufsteuerung. Das bedeutet, dass das Limit für ausstehende Bytes oder Nachrichten pro Partition erreicht wurde. Bis das Problem behoben ist, steigt der Rückstau bei den zugehörigen Exportabos.
Dieser Fehler kann mehrere Ursachen haben. Die meisten möglichen Ursachen treten im Backend auf. Prüfe aber Folgendes:
- Achten Sie darauf, dass Sie Lite-Nachrichten mit demselben Schlüssel mit einer Rate von weniger als 1 MiB/s pro Schlüssel veröffentlichen. Das Exportabo schreibt Lite-Nachrichtenschlüssel als Pub/Sub-Sortierschlüssel. Pub/Sub hat ein Limit von 1 MiB/s für jeden Sortierschlüssel. Das Überschreiten dieses Limits kann zu einer Drosselung führen.
Der Nutzer ist nicht berechtigt, diese Aktion auszuführen
Der Pub/Sub Lite-Dienst-Agent muss Berechtigungen zum Veröffentlichen im Ziel-Pub/Sub-Thema haben.
So erkennen Sie dieses Problem:
Google Cloud Console: Rufen Sie die Abodetails auf. Wenn es Berechtigungsfehler gibt, ist der aktuelle Status
Permission denied
.Messwerte: Der Messwert
subscription/export_status
istPERMISSON_DENIED
.
Dieser Fehler kann beispielsweise in folgenden Situationen auftreten:
- Dem Pub/Sub Lite-Dienst-Agent fehlen die erforderlichen Berechtigungen oder die Rolle, um Nachrichten im Ziel-Pub/Sub-Thema in einem anderen Projekt zu veröffentlichen.
- Der Dienst-Agent wurde aus der IAM-Richtlinie des übergeordneten Projekts des Exportabos entfernt.
- Der Pub/Sub Lite-Dienst-Agent wird noch eingerichtet. Ein Dienst-Agent wird automatisch erstellt, wenn Sie das erste Exportabo in einem Projekt erstellen. Der Berechtigungsfehler sollte innerhalb von 10 Minuten automatisch behoben werden.
Prüfen Sie, ob dem Kundenservicemitarbeiter die richtige Berechtigung oder Rolle zugewiesen wurde, um das Problem zu beheben. Weitere Informationen finden Sie unter Dienst-Agents.
Nächste Schritte
Wählen Sie zwischen Pub/Sub und Pub/Sub Lite aus.