Pub/Sub-Abo-Attribute sind die Eigenschaften eines Abos. Sie können beim Erstellen oder Aktualisieren eines Abos Attribute für das Abo festlegen.
In diesem Dokument werden die verschiedenen Aboeigenschaften beschrieben, die Sie für ein Abo festlegen können.
Hinweise
Informieren Sie sich über den Workflow für das Abo, das Sie erstellen möchten: Pull, Push oder BigQuery.
Allgemeine Abo-Properties
Wenn Sie ein Abo erstellen, müssen Sie eine Reihe von Optionen für die Einrichtung des Abos angeben. Einige dieser Properties sind für alle Abotypen gleich und werden in den folgenden Abschnitten erläutert.
Aufbewahrungsdauer für Nachrichten
Mit der Option Nachrichtenaufbewahrungsdauer wird angegeben, wie lange Pub/Sub Nachrichten nach der Veröffentlichung aufbewahrt. Nach Ablauf der Nachrichtenaufbewahrungsdauer kann Pub/Sub die Nachricht unabhängig vom Bestätigungsstatus der Nachricht verwerfen. Wie Sie bestätigte Nachrichten für die Aufbewahrungsdauer aufbewahren, erfahren Sie unter Nachrichten wiedergeben und verwerfen.
Folgende Werte sind für die Option Aufbewahrungsdauer von Nachrichten verfügbar:
- Standardwert: 7 Tage
- Mindestwert: 10 Minuten
- Höchstwert: 31 Tage
Nicht bestätigte Nachrichten können auf inaktive Abos, Sicherungsanforderungen oder eine langsame Verarbeitung zurückzuführen sein. Wenn Sie die Nachrichten innerhalb von 24 Stunden verarbeiten können, fallen keine zusätzlichen Gebühren an. So kannst du neue Belastungen vermeiden:
Inaktive Abos Löschen Sie inaktive Abos, um Gebühren für die Aufbewahrung von Nachrichten zu vermeiden.
Sicherungsspeicher Wenn Sie die Aboaufbewahrung als Sicherungsspeicher verwenden, können Sie zu einer anderen Speicheroption wechseln, z. B. zur Aufbewahrung von Nachrichten für Themen oder zur Aufbewahrung bestätigter Nachrichten. Bei der Aufbewahrung von Themennachrichten werden Nachrichten nur einmal auf Themenebene gespeichert und sind bei Bedarf für alle Abos verfügbar.
Verarbeitungsverzögerungen Fügen Sie nach Möglichkeit weitere Abonnenten hinzu, damit die Nachrichten innerhalb eines Tages verarbeitet werden können.
Bestätigte Nachrichten speichern
Wenn Sie die Aufbewahrungsdauer für Nachrichten angeben, können Sie auch festlegen, ob bestätigte Nachrichten aufbewahrt werden sollen.
Mit der Option Bestätigte Nachrichten aufbewahren können Sie bestätigte Nachrichten für die angegebene Nachrichtenaufbewahrungsdauer aufbewahren. Dies erhöht die Gebühren für Nachrichtenspeicherung. Weitere Informationen finden Sie unter Speicherkosten.
Ablauffrist
Mit der Option Ablaufzeit können Sie die Ablaufzeit Ihres Abos verlängern.
Abos ohne Abonnentenaktivität oder Änderungen an den Abo-Attributen laufen ab. Erkennt Pub/Sub Aktivitäten von Abonnenten oder aktualisierst du eine der Aboeigenschaften, wird die Zeit bis zum Löschen des Abos wieder zurückgesetzt. Beispiele für Aktivitäten von Abonnenten sind offene Verbindungen, aktive Pull- oder erfolgreiche Push-Vorgänge.
Wenn Sie die Ablaufzeit angeben, muss der Wert länger sein als die Nachrichtenaufbewahrungsdauer, die in der Option Nachrichtenaufbewahrungsdauer angegeben ist.
Folgende Werte sind für die Option Gültigkeitsdauer verfügbar:
- Standardwert: 31 Tage
- Mindestwert = 1 Tag
Um zu verhindern, dass ein Abo abläuft, legen Sie die Ablaufzeit auf never expire
fest.
Bestätigungsfrist
Mit der Option Bestätigungsfrist wird die ursprüngliche Frist angegeben, nach der eine unbestätigte Nachricht noch einmal gesendet wird. Sie können den Termin für die Bestätigung pro Nachricht verlängern, indem Sie nachfolgende ModifyAckDeadline-Anfragen senden.
Folgende Werte sind für die Option Termin für die Bestätigung zulässig:
- Standardwert: 10 Sekunden
- Mindestwert: 10 Sekunden
- Höchstwert: 600 Sekunden
In einigen Fällen können Pub/Sub-Clientbibliotheken die Zustellungsrate steuern und die Bestätigungsfrist dynamisch ändern.
In diesem Fall wird die Nachricht möglicherweise vor dem von Ihnen festgelegten Termin für die Bestätigung noch einmal gesendet. Wenn Sie dieses Verhalten überschreiben möchten, verwenden Sie minDurationPerAckExtension
und maxDurationPerAckExtension
. Weitere Informationen zur Verwendung dieser Werte finden Sie unter Unterstützung der Zustellung genau einmal in Clientbibliotheken.
Abo-Filter
Verwenden Sie die Option Abofilter, um einen String mit einem Filterausdruck anzugeben. Wenn ein Abo einen Filter hat, werden nur die Nachrichten zugestellt, die dem Filter entsprechen. Der Pub/Sub-Dienst bestätigt automatisch die Nachrichten, die nicht mit dem Filter übereinstimmen.
Sie können Nachrichten nach ihren Attributen, aber nicht nach den Daten in der Nachricht filtern.
Falls nicht anders angegeben, filtert das Abo die Nachrichten nicht und alle Abonnenten erhalten alle Nachrichten.
Filter können nach ihrer Anwendung nicht mehr geändert oder entfernt werden.
Wenn Sie Nachrichten aus einem Abo mit einem Filter erhalten, fallen keine Gebühren für ausgehenden Traffic für die von Pub/Sub angegebenen Nachrichten an. Für diese Nachrichten fallen Gebühren für die Nachrichtenzustellung und suchbezogene Speichergebühren an.
Weitere Informationen finden Sie unter Nachrichten von einem Abo filtern.
Nachrichtenreihenfolge
Wenn für ein Abo die Nachrichtenreihenfolge aktiviert ist, erhalten die Abonnentenclients Nachrichten, die in derselben Region mit demselben Reihenfolgeschlüssel veröffentlicht wurden, in der Reihenfolge, in der sie vom Dienst empfangen wurden.
Bei der geordneten Zustellung werden Bestätigungen für spätere Nachrichten erst verarbeitet, wenn die Bestätigungen für frühere Nachrichten verarbeitet wurden.
Die Publisher müssen Nachrichten mit einem Sortierschlüssel senden, damit Pub/Sub die Nachrichten in der richtigen Reihenfolge liefern kann.
Ist dies nicht festgelegt, stellt Pub/Sub Nachrichten möglicherweise nicht in der richtigen Reihenfolge zu, auch wenn sie einen Sortierungsschlüssel haben.
Thema für unzustellbare Nachrichten
Wenn eine Nachricht nach einer festgelegten Anzahl von Zustellversuchen nicht zugestellt werden kann oder ein Abonnent sie nicht bestätigen kann, können Sie ein Thema für unzustellbare Nachrichten konfigurieren, unter dem diese Nachrichten noch einmal veröffentlicht werden können.
Wenn Sie ein Thema für unzustellbare Nachrichten festlegen, können Sie auch die maximale Anzahl der Zustellungsversuche angeben. Die folgenden Werte sind für die maximale Anzahl von Zustellungsversuchen für das Thema für unzustellbare Nachrichten zulässig:
- Standardwert: 5 Zustellungsversuche
- Mindestwert = 5 Übermittlungsversuche
- Höchstwert: 100 Zustellungsversuche
Wenn sich das Thema für unzustellbare Nachrichten in einem anderen Projekt als das Abo befindet, müssen Sie auch die Projekt-ID mit dem Thema für unzustellbare Nachrichten angeben.
Weitere Informationen finden Sie unter An Themen für unzustellbare Nachrichten weiterleiten.
Wiederholungsrichtlinie
Wenn die Bestätigungsfrist abläuft oder ein Abonnent mit einer negativen Bestätigung antwortet, kann Pub/Sub die Nachricht noch einmal senden. Dieser erneute Zustellungsversuch wird als Wiederholungsrichtlinie des Abos bezeichnet.
Standardmäßig ist für die Wiederholungsrichtlinie eines Abos Sofort wiederholen festgelegt. Bei dieser Option sendet Pub/Sub die Nachricht noch einmal, wenn die Bestätigungsfrist abläuft oder ein Abonnent mit einer negativen Bestätigung antwortet.
Sie können den Wert auch auf Wiederholung nach verspätetem exponentiellem Backoff festlegen. In diesem Fall müssen Sie die maximalen und minimalen Backoff-Werte angeben.
Hier finden Sie einige Richtlinien für die Festlegung der Werte für das maximale und minimale Backoff-Intervall:
Wenn Sie den maximalen Wert für die Backoff-Dauer festlegen, beträgt der Standardwert für die minimale Backoff-Dauer 10 Sekunden.
Wenn Sie den Mindestwert für die Backoff-Dauer festlegen, beträgt der Standardwert für die maximale Backoff-Dauer 600 Sekunden.
Sie können maximal 600 Sekunden festlegen.
Richtlinien für Wiederholungsversuche und Batch-Nachrichten
Wenn sich Nachrichten in einem Batch befinden, startet Pub/Sub das exponentielle Backoff, wenn eine der folgenden Situationen eintritt:
Der Abonnent sendet für jede Nachricht im Batch eine negative Bestätigung.
Die Bestätigungsfrist läuft ab.
Wiederholungsrichtlinie und Push-Abo
Wenn Sie Nachrichten von einem Push-Abo erhalten, sendet Pub/Sub Nachrichten nach dem Push-Backoff und nicht nach der exponentiellen Backoff-Dauer noch einmal. Wenn der Push-Backoff länger als die exponentielle Backoff-Dauer ist, sendet Pub/Sub nicht bestätigte Nachrichten nach dem Push-Backoff noch einmal.
Pull-Abo-Attribute
Wenn Sie ein Pull-Abo konfigurieren, können Sie die folgenden Eigenschaften angeben.
Genau einmal zugestellt
Genau einmal zugestellt. Wenn diese Option festgelegt ist, erfüllt Pub/Sub die Garantien für die genau einmalige Zustellung. Falls nicht anders angegeben, unterstützt das Abo die mindestens einmalige Zustellung für jede Nachricht.
Push-Abo-Attribute
Wenn Sie ein Push-Abo konfigurieren, können Sie die folgenden Eigenschaften angeben.
Endpunkte
Endpunkt-URL (erforderlich) Eine öffentlich zugängliche HTTPS-Adresse. Der Server für den Push-Endpunkt muss ein gültiges SSL-Zertifikat haben, das von einer Zertifizierungsstelle signiert wurde. Der Pub/Sub-Dienst sendet Nachrichten an Push-Endpunkte aus derselben Google Cloud-Region, in der der Pub/Sub-Dienst die Nachrichten speichert. Der Pub/Sub-Dienst sendet Nachrichten aus derselben Google Cloud-Region auf Best-Effort-Basis.
Für Pub/Sub ist kein Eigentumsnachweis für Domains für Push-Abos mehr erforderlich. Wenn Ihre Domain unerwartete POST-Anfragen von Pub/Sub erhält, können Sie einen mutmaßlichen Missbrauch melden.
Authentifizierung
Aktivieren Sie die Authentifizierung. Wenn diese Option aktiviert ist, enthalten von Pub/Sub an den Push-Endpunkt gesendete Nachrichten einen Autorisierungsheader, über den der Endpunkt die Anfrage authentifizieren kann. Für App Engine Standard- und Cloud Run-Funktionen-Endpunkte, die im selben Projekt wie das Abo gehostet werden, sind automatische Authentifizierungs- und Autorisierungsmechanismen verfügbar.
Die Authentifizierungskonfiguration für ein authentifiziertes Push-Abo besteht aus einem nutzerverwalteten Dienstkonto und den Zielgruppenparametern, die in einem create-, patch- oder ModifyPushConfig-Aufruf angegeben werden. Außerdem müssen Sie einem Kundenservicemitarbeiter eine bestimmte Rolle zuweisen, wie im nächsten Abschnitt beschrieben.
Nutzerverwaltetes Dienstkonto (erforderlich) Das Dienstkonto, das dem Push-Abo zugeordnet ist. Dieses Konto wird als
email
-Anspruch des generierten JSON Web Tokens (JWT) verwendet. Im Folgenden finden Sie eine Liste der Anforderungen an das Dienstkonto:Dieses Dienstkonto muss sich im selben Projekt wie das Push-Abo befinden.
Das Hauptkonto, das das Push-Abo erstellt oder ändert, muss die Berechtigung
iam.serviceAccounts.actAs
für das Dienstkonto haben. Sie können entweder eine Rolle mit dieser Berechtigung für das Projekt, den Ordner oder die Organisation gewähren, damit der Aufrufer die Identität mehrerer Dienstkonten übernehmen kann, oder eine Rolle mit dieser Berechtigung für das Dienstkonto gewähren, damit der Aufrufer nur die Identität dieses Dienstkontos übernehmen kann.
Zielgruppe Ein einzelner String ohne Berücksichtigung der Groß- und Kleinschreibung, mit dem der Webhook die beabsichtigte Zielgruppe dieses bestimmten Tokens überprüfen kann.
Dienst-Agent (erforderlich)
Pub/Sub erstellt automatisch ein Dienstkonto für Sie im Format
service-{PROJECT_NUMBER}@gcp-sa-pubsub.iam.gserviceaccount.com
.Diesem Dienst-Agent muss die Berechtigung
iam.serviceAccounts.getOpenIdToken
(in der Rolleroles/iam.serviceAccountTokenCreator
enthalten) gewährt werden, damit Pub/Sub JWT-Tokens für authentifizierte Push-Anfragen erstellen kann.
Entpacken der Nutzlast
Mit der Option Entpacken der Nutzlast aktivieren werden aus Pub/Sub-Nachrichten alle Nachrichtenmetadaten entfernt, mit Ausnahme der Nachrichtendaten. Beim Entfernen der Nutzlast werden die Nachrichtendaten direkt als HTTP-Textkörper gesendet.
- Metadaten schreiben Fügt dem Anfrageheader zuvor entfernte Nachrichtenmetadaten wieder hinzu.
BigQuery-Properties
Wenn Sie als Übermittlungstyp für das Abo In BigQuery schreiben auswählen, können Sie die folgenden zusätzlichen Eigenschaften angeben.
Schema des Themas verwenden
Mit dieser Option kann Pub/Sub das Schema des Pub/Sub-Themas verwenden, an das das Abo angehängt ist. Außerdem schreibt Pub/Sub die Felder in Nachrichten in die entsprechenden Spalten der BigQuery-Tabelle.
Beachten Sie bei der Verwendung dieser Option die folgenden zusätzlichen Anforderungen:
Die Felder im Themaschema und im BigQuery-Schema müssen dieselben Namen haben und ihre Typen müssen miteinander kompatibel sein.
Alle optionalen Felder im Schema des Themas müssen auch im BigQuery-Schema optional sein.
Erforderliche Felder im Themaschema müssen nicht im BigQuery-Schema erforderlich sein.
Wenn es BigQuery-Felder gibt, die nicht im Themaschema vorhanden sind, müssen diese BigQuery-Felder den Modus
NULLABLE
haben.Wenn das Themaschema zusätzliche Felder enthält, die nicht im BigQuery-Schema vorhanden sind und gelöscht werden können, wählen Sie die Option Unbekannte Felder löschen aus.
Sie können nur eine der Aboeigenschaften auswählen: Themaschema verwenden oder Tabellenschema verwenden.
Wenn Sie die Option Schema des Themas verwenden oder Tabellenschema verwenden nicht auswählen, muss die BigQuery-Tabelle eine Spalte namens data
vom Typ BYTES
, STRING
oder JSON
haben. Pub/Sub schreibt die Nachricht in diese BigQuery-Spalte.
Änderungen am Pub/Sub-Themenschema oder am BigQuery-Tabellenschema werden möglicherweise nicht sofort wirksam, wenn Nachrichten in die BigQuery-Tabelle geschrieben werden. Wenn beispielsweise die Option Unbekannte Felder löschen aktiviert ist und ein Feld im Pub/Sub-Schema, aber nicht im BigQuery-Schema vorhanden ist, enthalten Nachrichten, die in die BigQuery-Tabelle geschrieben werden, das Feld möglicherweise auch dann nicht, wenn es dem BigQuery-Schema hinzugefügt wurde. Irgendwann werden die Schemas synchronisiert und nachfolgende Nachrichten enthalten das Feld.
Wenn Sie die Option Themenschema verwenden für Ihr BigQuery-Abo verwenden, können Sie auch BigQuery Change Data Capture (CDC) nutzen. CDC aktualisiert Ihre BigQuery-Tabellen durch Verarbeitung und Anwendung von Änderungen auf vorhandene Zeilen.
Weitere Informationen zu dieser Funktion finden Sie unter Tabellenaktualisierungen mit Change Data Capture streamen.
Informationen zur Verwendung dieser Funktion mit BigQuery-Abos finden Sie unter BigQuery-Change Data Capture.
Schema der Tabelle verwenden
Mit dieser Option kann Pub/Sub das Schema der BigQuery-Tabelle verwenden, um die Felder einer JSON-Nachricht in die entsprechenden Spalten zu schreiben. Beachten Sie bei Verwendung dieser Option die folgenden zusätzlichen Anforderungen:
Veröffentlichte Nachrichten müssen im JSON-Format vorliegen.
Die folgenden JSON-Konvertierungen werden unterstützt:
JSON-Typ BigQuery-Datentyp string
NUMERIC
,BIGNUMERIC
,DATE
,TIME
,DATETIME
oderTIMESTAMP
number
NUMERIC
,BIGNUMERIC
,DATE
,TIME
,DATETIME
oderTIMESTAMP
- Wenn Sie
number
bisDATE
,DATETIME
,TIME
oderTIMESTAMP
-Conversions verwenden, muss die Zahl den unterstützten Darstellungen entsprechen. - Bei der Umwandlung von
number
inNUMERIC
oderBIGNUMERIC
sind Genauigkeit und Wertebereich auf die Werte beschränkt, die vom IEEE 754-Standard für Gleitkommaarithmetik akzeptiert werden. Wenn Sie eine hohe Genauigkeit oder einen größeren Wertebereich benötigen, verwenden Sie stattdessenstring
bisNUMERIC
oderBIGNUMERIC
-Conversions. - Bei der Verwendung von
string
- bisNUMERIC
- oderBIGNUMERIC
-Konvertierungen geht Pub/Sub davon aus, dass der String eine für Menschen lesbare Zahl ist (z.B."123.124"
). Wenn die Verarbeitung des Strings als für Menschen lesbare Zahl fehlschlägt, behandelt Pub/Sub den String als mit dem BigDecimalByteStringEncoder codierte Bytes.
- Wenn Sie
Wenn dem Thema des Abos ein Schema zugewiesen ist, muss die Eigenschaft „Nachrichtencodierung“ auf
JSON
festgelegt sein.Wenn BigQuery-Felder vorhanden sind, die nicht in den Nachrichten enthalten sind, müssen diese BigQuery-Felder sich im Modus
NULLABLE
befinden.Wenn die Nachrichten zusätzliche Felder enthalten, die nicht im BigQuery-Schema vorhanden sind und gelöscht werden können, wählen Sie die Option Unbekannte Felder löschen aus.
Sie können nur eine der Aboeigenschaften auswählen: Themaschema verwenden oder Tabellenschema verwenden.
Wenn Sie die Option Schema des Themas verwenden oder Tabellenschema verwenden nicht auswählen, muss die BigQuery-Tabelle eine Spalte namens data
vom Typ BYTES
, STRING
oder JSON
haben. Pub/Sub schreibt die Nachricht in diese BigQuery-Spalte.
Änderungen am BigQuery-Tabellenschema werden möglicherweise nicht sofort für Nachrichten übernommen, die in die BigQuery-Tabelle geschrieben werden. Wenn beispielsweise die Option Unbekannte Felder löschen aktiviert ist und ein Feld in den Nachrichten, aber nicht im BigQuery-Schema vorhanden ist, enthalten Nachrichten, die in die BigQuery-Tabelle geschrieben werden, das Feld möglicherweise auch dann nicht, wenn es dem BigQuery-Schema hinzugefügt wurde. Nach einiger Zeit wird das Schema synchronisiert und nachfolgende Nachrichten enthalten das Feld.
Wenn Sie für Ihr BigQuery-Abo die Option Tabellenschema verwenden verwenden, können Sie auch BigQuery Change Data Capture (CDC) nutzen. CDC aktualisiert Ihre BigQuery-Tabellen durch Verarbeitung und Anwendung von Änderungen auf vorhandene Zeilen.
Weitere Informationen zu dieser Funktion finden Sie unter Tabellenaktualisierungen mit Change Data Capture streamen.
Informationen zur Verwendung dieser Funktion mit BigQuery-Abos finden Sie unter BigQuery-Change Data Capture.
Unbekannte Felder löschen
Diese Option wird mit der Option Schema des Themas verwenden oder Schema der Tabelle verwenden verwendet. Mit dieser Option kann Pub/Sub alle Felder löschen, die im Schema des Themas oder in der Nachricht, aber nicht im BigQuery-Schema vorhanden sind. Wenn Unbekannte Felder löschen nicht festgelegt ist, werden Nachrichten mit zusätzlichen Feldern nicht in BigQuery geschrieben und verbleiben im Rückstand des Abos. Das Abo befindet sich dann im Fehlerstatus.
Metadaten schreiben
Mit dieser Option kann Pub/Sub die Metadaten jeder Nachricht in zusätzliche Spalten in der BigQuery-Tabelle schreiben. Andernfalls werden die Metadaten nicht in die BigQuery-Tabelle geschrieben.
Wenn Sie die Option Metadaten schreiben auswählen, muss die BigQuery-Tabelle die in der folgenden Tabelle beschriebenen Felder enthalten.
Wenn Sie die Option Metadaten schreiben nicht auswählen, ist für die BigQuery-Tabelle nur das Feld data
erforderlich, es sei denn, use_topic_schema
ist wahr. Wenn Sie sowohl die Option Metadaten schreiben als auch Schema des Themas verwenden auswählen, darf das Schema des Themas keine Felder mit Namen enthalten, die mit denen der Metadatenparameter übereinstimmen.
Diese Einschränkung gilt auch für CamelCase-Versionen dieser Parameter.
Parameter | |
---|---|
subscription_name |
STRING Name eines Abos. |
message_id |
STRING ID einer Nachricht |
publish_time |
TIMESTAMP Der Zeitpunkt der Veröffentlichung einer Nachricht. |
data |
BYTES, STRING oder JSON Den Nachrichtentext. Das Feld |
attributes |
STRING oder JSON Ein JSON-Objekt mit allen Nachrichtenattributen. Außerdem enthält es zusätzliche Felder, die Teil der Pub/Sub-Nachricht sind, einschließlich des Sortierungsschlüssels, sofern vorhanden. |
Cloud Storage-Properties
Wenn du als Übermittlungstyp für das Abo In Cloud Storage schreiben auswählst, kannst du die folgenden zusätzlichen Properties angeben.
Bucket-Name
Ein Cloud Storage-Bucket muss bereits vorhanden sein, bevor Sie ein Cloud Storage-Abo erstellen.
Die Nachrichten werden als Batches gesendet und im Cloud Storage-Bucket gespeichert. Ein einzelner Batch oder eine einzelne Datei wird als Objekt im Bucket gespeichert.
Für den Cloud Storage-Bucket muss Anfragender bezahlt deaktiviert sein.
Informationen zum Erstellen eines Cloud Storage-Bucket finden Sie unter Buckets erstellen.
Präfix, Suffix und Datum/Uhrzeit für Dateinamen
Die vom Cloud Storage-Abo generierten Cloud Storage-Ausgabedateien werden als Objekte im Cloud Storage-Bucket gespeichert. Der Name des im Cloud Storage-Bucket gespeicherten Objekts hat das folgende Format: <file-prefix><UTC-date-time>_<uuid><file-suffix>
.
Die folgende Liste enthält Details zum Dateiformat und zu den Feldern, die Sie anpassen können:
<file-prefix>
ist das benutzerdefinierte Dateinamenspräfix. Dieses Feld ist optional.<UTC-date-time>
ist ein anpassbarer, automatisch generierter String, der auf dem Zeitpunkt basiert, zu dem das Objekt erstellt wurde.<uuid>
ist ein automatisch generierter Zufallsstring für das Objekt.<file-suffix>
ist das benutzerdefinierte Dateinamensuffix. Dieses Feld ist optional. Das Dateiendung darf nicht auf „/“ enden.Sie können das Präfix und Suffix des Dateinamens ändern:
Wenn der Wert des Dateinamenspräfixes beispielsweise
prod_
und der Wert des Dateinamenssuffixes_archive
ist, lautet ein Beispielobjektnameprod_2023-09-25T04:10:00+00:00_uN1QuE_archive
.Wenn Sie kein Dateinamenpräfix und ‑suffix angeben, hat der im Cloud Storage-Bucket gespeicherte Objektname das Format:
<UTC-date-time>_<uuid>
.Die Anforderungen für die Benennung von Cloud Storage-Objekten gelten auch für das Präfix und Suffix des Dateinamens. Weitere Informationen finden Sie unter Cloud Storage-Objekte.
Sie können festlegen, wie Datum und Uhrzeit im Dateinamen angezeigt werden:
Erforderliche Datum/Uhrzeit-Abgleiche, die nur einmal verwendet werden können: Jahr (
YYYY
oderYY
), Monat (MM
), Tag (DD
), Stunde (hh
), Minute (mm
), Sekunde (ss
).YY-YYYY
oderMMM
sind beispielsweise ungültig.Optionale Übereinstimmungen, die nur einmal verwendet werden können: Datums-/Uhrzeit-Trennzeichen (
T
) und Zeitzonendifferenz (Z
oder+00:00
).Optionale Elemente, die Sie mehrmals verwenden können: Bindestrich (
-
), Unterstrich (_
), Doppelpunkt (:
) und Schrägstrich (/
).Wenn der Wert des Dateinamens im Datums-/Uhrzeitformat beispielsweise
YYYY-MM-DD/hh_mm_ssZ
ist, ist ein Beispielobjektnameprod_2023-09-25/04_10_00Z_uNiQuE_archive
.Wenn das Datums-/Uhrzeitformat des Dateinamens auf ein Zeichen endet, das kein Übereinstimmungszeichen ist, wird dieses Zeichen durch das Trennzeichen zwischen
<UTC-date-time>
und<uuid>
ersetzt. Wenn der Wert des Dateinamens im Datums-/Uhrzeitformat beispielsweiseYYYY-MM-DDThh_mm_ss-
ist, ist ein Beispielobjektnameprod_2023-09-25T04_10_00-uNiQuE_archive
.
Batchverarbeitung von Dateien
Mit Cloud Storage-Abos können Sie festlegen, wann eine neue Ausgabedatei erstellt werden soll, die als Objekt im Cloud Storage-Bucket gespeichert wird. Pub/Sub schreibt eine Ausgabedatei, wenn eine der angegebenen Batch-Bedingungen erfüllt ist. Die folgenden Bedingungen gelten für die Batchverarbeitung in Cloud Storage:
Maximale Storage-Batchdauer Diese Einstellung ist erforderlich. Das Cloud Storage-Abo schreibt eine neue Ausgabedatei, wenn der angegebene Wert für die maximale Dauer überschritten wird. Wenn Sie keinen Wert angeben, wird der Standardwert „5 Minuten“ verwendet. Folgende Werte sind für die maximale Dauer zulässig:
- Mindestwert = 1 Minute
- Standardwert: 5 Minuten
- Maximalwert: 10 Minuten
Max.Storage-Batchbyte Diese Einstellung ist optional. Das Cloud Storage-Abo schreibt eine neue Ausgabedatei, wenn der angegebene Wert für die maximale Anzahl von Byte überschritten wird. Folgende Werte sind für „max. Bytes“ zulässig:
- Mindestwert = 1 KB
- Maximalwert = 10 GiB
Storage-Batch-Nachrichten Diese Einstellung ist optional. Das Cloud Storage-Abo schreibt eine neue Ausgabedatei, wenn die angegebene maximale Anzahl von Nachrichten überschritten wird. Folgende Werte sind für „max. Nachrichten“ zulässig:
- Mindestwert = 1.000
Sie können beispielsweise „max_duration“ auf 6 Minuten und „max_bytes“ auf 2 GB konfigurieren. Wenn die Ausgabedatei in der 4. Minute eine Dateigröße von 2 GB erreicht, schließt Pub/Sub die vorherige Datei ab und beginnt, in eine neue Datei zu schreiben.
Ein Cloud Storage-Abo kann gleichzeitig in mehrere Dateien in einem Cloud Storage-Bucket schreiben. Wenn Sie Ihr Abo so konfiguriert haben, dass alle sechs Minuten eine neue Datei erstellt wird, werden möglicherweise alle sechs Minuten mehrere Cloud Storage-Dateien erstellt.
In einigen Fällen beginnt Pub/Sub möglicherweise früher mit dem Schreiben in eine neue Datei, als in den Bedingungen für die Dateigruppierung konfiguriert. Eine Datei kann auch den Wert „Max. Bytes“ überschreiten, wenn das Abo Nachrichten empfängt, die größer als der Wert „Max. Bytes“ sind.
Dateiformat
Wenn Sie ein Cloud Storage-Abo erstellen, können Sie das Format der Ausgabedateien, die in einem Cloud Storage-Bucket gespeichert werden sollen, als Text oder Avro angeben.
Text: Die Nachrichten werden als Nur-Text gespeichert. Ein Zeilenumbruch trennt eine Nachricht von der vorherigen Nachricht in der Datei. Es werden nur Nachrichtennutzlasten gespeichert, keine Attribute oder anderen Metadaten.
Avro: Die Nachrichten werden im binären Apache Avro-Format gespeichert. Wenn Sie Avro auswählen, können Sie die folgenden zusätzlichen Properties aktivieren:
Metadaten schreiben: Mit dieser Option können Sie die Nachrichtenmetadaten zusammen mit der Nachricht speichern. Metadaten wie
subscription_name
-,message_id
-,publish_time
- undattributes
-Felder werden in die obersten Felder des Ausgabe-Avro-Objekts geschrieben. Alle anderen Nachrichteneigenschaften außer Daten (z. B. ein vorhandener „ordering_key“) werden als Einträge in dieattributes
-Map eingefügt.Wenn Metadaten schreiben deaktiviert ist, wird nur die Nachrichtenn-Nutzlast in das Ausgabe-Avro-Objekt geschrieben. Hier ist das Avro-Schema für die Ausgabenachrichten, bei dem Metadaten schreiben deaktiviert ist:
{ "type": "record", "namespace": "com.google.pubsub", "name": "PubsubMessage", "fields": [ { "name": "data", "type": "bytes" } ] }
Hier ist das Avro-Schema für die Ausgabenachrichten mit aktivierter Option Metadaten schreiben:
{ "type": "record", "namespace": "com.google.pubsub", "name": "PubsubMessageWithMetadata", "fields": [ { "name": "subscription_name", "type": "string" }, { "name": "message_id", "type": "string" }, { "name": "publish_time", "type": { "type": "long", "logicalType": "timestamp-micros" } }, { "name": "attributes", "type": { "type": "map", "values": "string" } }, { "name": "data", "type": "bytes" } ] }
Schema des Themas verwenden: Mit dieser Option kann Pub/Sub beim Schreiben von Avro-Dateien das Schema des Pub/Sub-Themas verwenden, an das das Abo angehängt ist.
Beachten Sie bei der Verwendung dieser Option die folgenden zusätzlichen Anforderungen:
Das Themenschema muss im Apache Avro-Format vorliegen.
Wenn sowohl Topic-Schema verwenden als auch Metadaten schreiben aktiviert sind, muss das Topic-Schema ein Record-Objekt als Stamm haben. Pub/Sub erweitert die Liste der Felder des Datensatzes um die Metadatenfelder. Daher darf der Datensatz keine Felder mit demselben Namen wie die Metadatenfelder (
subscription_name
,message_id
,publish_time
oderattributes
) enthalten.
Nächste Schritte
- Erstellen Sie ein Pull-Abo.
- Erstellen Sie ein Push-Abo.
- Erstellen Sie ein BigQuery-Abo.
- Erstellen Sie ein Cloud Storage-Abo.