In diesem Dokument wird beschrieben, wie Sie ein Cloud Storage-Abo erstellen. Sie können ein Cloud Storage-Abo mit der Google Cloud Console, der Google Cloud CLI, der Clientbibliothek oder der Pub/Sub API erstellen.
Hinweise
Bevor Sie dieses Dokument lesen, sollten Sie mit Folgendem vertraut sein:
- Funktionsweise eines Cloud Storage-Abos
- Wie Cloud Storage funktioniert und wie Sie Cloud Storage-Buckets erstellen und verwalten.
- Informationen zum Konfigurieren eines Themas für unzustellbare Nachrichten, um Nachrichtenfehler zu behandeln.
Erforderliche Rollen und Berechtigungen
Im Folgenden finden Sie eine Liste von Richtlinien zu Rollen und Berechtigungen:
Wenn Sie ein Abo erstellen möchten, müssen Sie die Zugriffssteuerung auf Projektebene konfigurieren.
Sie benötigen auch Berechtigungen auf Ressourcenebene, wenn sich Ihre Abos und Themen in verschiedenen Projekten befinden, wie weiter unten in diesem Abschnitt erläutert.
Damit ein Cloud Storage-Abo erstellt werden kann, muss entweder der Pub/Sub-Dienst-Agent oder ein benutzerdefiniertes Dienstkonto die Berechtigung zum Schreiben in den jeweiligen Cloud Storage-Bucket und zum Lesen der Bucket-Metadaten haben. Weitere Informationen zum Gewähren dieser Berechtigungen finden Sie im nächsten Abschnitt dieses Dokuments.
Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Pub/Sub Editor (roles/pubsub.editor
) für das Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Erstellen von Cloud Storage-Abos benötigen.
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Diese vordefinierte Rolle enthält die Berechtigungen, die zum Erstellen von Cloud Storage-Abos erforderlich sind. Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen Berechtigungen anzuzeigen:
Erforderliche Berechtigungen
Die folgenden Berechtigungen sind zum Erstellen von Cloud Storage-Abos erforderlich:
-
So erstellst du ein Abo:
pubsub.subscriptions.create
-
So hängen Sie ein Abo an ein Thema an:
pubsub.topics.attachSubscription
-
Daten aus einem Abo abrufen:
pubsub.subscriptions.consume
-
Abo abschließen:
pubsub.subscriptions.get
-
Abo auflisten:
pubsub.subscriptions.list
-
Abo aktualisieren:
pubsub.subscriptions.update
-
So löschen Sie ein Abo:
pubsub.subscriptions.delete
-
Rufen Sie die IAM-Richtlinie für ein Abo ab:
pubsub.subscriptions.getIamPolicy
-
Konfigurieren Sie die IAM-Richtlinie für ein Abo:
pubsub.subscriptions.setIamPolicy
Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.
Wenn ein Nutzer in einem Projekt ein Cloud Storage-Abo in einem anderen Projekt erstellen soll, müssen Sie ihm in beiden Projekten die Rolle „Pub/Sub-Bearbeiter“ (roles/pubsub.editor
) zuweisen. Dadurch erhalten Sie die erforderlichen Berechtigungen, um das neue Google Cloud -Abo zu erstellen und an das ursprüngliche Thema anzuhängen. Mit der Rolle „Pub/Sub-Bearbeiter“ (roles/pubsub.editor
) für das Thema können Sie dem Thema auch Google Cloud Abos in einem anderen Projekt zuweisen.
Dienstkonten Rollen zuweisen
Einige Dienste haben Google Cloud verwaltete Dienstkonten Google Cloud, mit denen die Dienste auf Ihre Ressourcen zugreifen können. Diese Dienstkonten werden als Dienst-Agents bezeichnet. Pub/Sub erstellt und verwaltet für jedes Projekt einen Dienst-Agenten im Format service-project-number@gcp-sa-pubsub.iam.gserviceaccount.com
.
Sie können dem Pub/Sub-Dienstagenten oder einem benutzerdefinierten Dienstkonto die Berechtigung zum Schreiben in den Cloud Storage-Bucket erteilen.
Wenn Sie dem Pub/Sub-Dienst-Agent eine Berechtigung gewähren, kann jeder Nutzer, der berechtigt ist, ein Abo in Ihrem Projekt zu erstellen, in den Cloud Storage-Bucket schreiben. Wenn Sie detailliertere Berechtigungen zum Schreiben in den Cloud Storage-Bucket gewähren möchten, konfigurieren Sie stattdessen ein benutzerdefiniertes Dienstkonto.
Weitere Informationen zu Cloud Storage IAM finden Sie unter Identity and Access Management für Cloud Storage.
Dem Pub/Sub-Dienst-Agent Cloud Storage-Rollen zuweisen
Wenn Sie ein Cloud Storage-Abo mit dem Pub/Sub-Dienst-Agent erstellen möchten, muss er zum Schreiben in den entsprechenden Cloud Storage-Bucket und zum Lesen der Bucket-Metadaten berechtigt sein.
Weisen Sie dem Pub/Sub-Dienst-Agent die Rollen „Storage-Objekt-Ersteller“ (roles/storage.objectCreator
) und „Leser alter Storage-Objekte“ (roles/storage.legacyBucketReader
) zu. Sie können die Berechtigung für einen einzelnen Bucket oder für das gesamte Projekt gewähren.
Bucket
Rufen Sie in der Google Cloud -Console die Seite Cloud Storage auf.
Klicken Sie auf den Cloud Storage-Bucket, in den Sie Nachrichten schreiben möchten.
Die Seite Bucket-Details wird geöffnet.
Klicken Sie auf der Seite Bucket-Details auf den Tab Berechtigungen.
Klicken Sie auf dem Tab Berechtigungen > Nach Hauptkonten ansehen auf Zugriff gewähren.
Die Seite Zugriff gewähren wird geöffnet.
Geben Sie im Abschnitt Hauptkonten hinzufügen den Namen Ihres Pub/Sub-Dienstmitarbeiters für das Projekt mit dem Abo ein.
Der Dienst-Agent hat das Format
service-PROJECT_NUMBER@gcp-sa-pubsub.iam.gserviceaccount.com
. Bei einem Projekt mit PROJECT_NUMBER=112233445566
hat der Dienst-Agent beispielsweise das Formatservice-112233445566@gcp-sa-pubsub.iam.gserviceaccount.com
.Geben Sie im Drop-down-Menü Rollen zuweisen > Rolle auswählen die Zeichenfolge
Creator
ein und wählen Sie die Rolle Storage Object Creator aus.Klicken Sie auf Weitere Rolle hinzufügen.
Geben Sie im Drop-down-Menü Rolle auswählen die Zahl
Bucket Reader
ein und wählen Sie die Rolle Storage Legacy Bucket Reader aus.Klicken Sie auf Speichern.
Projekt
Rufen Sie in der Google Cloud Console die Seite IAM auf.
Klicken Sie auf dem Tab Berechtigungen > Nach Hauptkonten ansehen auf Zugriff gewähren.
Die Seite Zugriff gewähren wird geöffnet.
Geben Sie im Abschnitt Hauptkonten hinzufügen den Namen Ihres Pub/Sub-Dienst-Agents ein.
Der Dienst-Agent hat das Format
service-PROJECT_NUMBER@gcp-sa-pubsub.iam.gserviceaccount.com
. Bei einem Projekt mit PROJECT_NUMBER=112233445566
hat der Dienst-Agent beispielsweise das Formatservice-112233445566@gcp-sa-pubsub.iam.gserviceaccount.com
.Geben Sie im Drop-down-Menü Rollen zuweisen > Rolle auswählen die Zahl
Storage Admin
ein und wählen Sie die Rolle Storage-Administrator aus.Klicken Sie auf Speichern.
Cloud Storage-Rollen einem benutzerdefinierten Dienstkonto zuweisen
Wenn Sie ein benutzerdefiniertes Dienstkonto zum Schreiben in einen Cloud Storage-Bucket verwenden möchten, müssen Sie die folgenden Berechtigungen festlegen:
- Das benutzerdefinierte Dienstkonto muss die Berechtigung zum Schreiben in den entsprechenden Cloud Storage-Bucket und zum Lesen der Bucket-Metadaten haben.
- Der Pub/Sub-Dienst-Agent muss die Berechtigung
iam.serviceAccounts.getAccessToken
für das benutzerdefinierte Dienstkonto haben. - Der Nutzer, der das Abo erstellt, muss die Berechtigung
iam.serviceAccounts.actAs
für das benutzerdefinierte Dienstkonto haben.
So erstellen Sie das Dienstkonto und gewähren Berechtigungen:
Erstellen Sie das benutzerdefinierte Dienstkonto. Das Dienstkonto muss sich im selben Projekt wie das Abo befinden.
Weisen Sie dem benutzerdefinierten Dienstkonto die Rollen „Storage Object Creator“ (
roles/storage.objectCreator
) und „Storage Legacy Bucket Reader“ (roles/storage.legacyBucketReader
) zu.Sie können die Berechtigung für das Dienstkonto für eine einzelne Tabelle im Projekt oder für alle Tabellen im Projekt gewähren. Weitere Informationen finden Sie im entsprechenden Abschnitt unter Dem Pub/Sub-Dienst-Agent Rollen zuweisen Google Cloud . Ersetzen Sie in der Anleitung die E-Mail-Adresse des Pub/Sub-Dienst-Agents durch die E-Mail-Adresse des benutzerdefinierten Dienstkontos.
Weisen Sie dem Pub/Sub-Dienstmitarbeiter die Berechtigung
iam.serviceAccounts.getAccessToken
für das benutzerdefinierte Dienstkonto oder für alle Dienstkonten im Projekt zu. Sie können diese Berechtigung erteilen, indem Sie dem Pub/Sub-Dienst-Agent die Rolleroles/iam.serviceAccountTokenCreator
zuweisen.Wählen Sie je nach Ihren Anforderungen die geeignete Methode aus.
Dienstkonto
Rufen Sie in der Google Cloud Console die Seite Dienstkonten auf.
Geben Sie den Namen des benutzerdefinierten Dienstkontos in das Feld Filter ein.
Wählen Sie das Dienstkonto aus der Liste aus.
Klicken Sie auf Hauptkonten mit Zugriff.
Klicken Sie auf Zugriff erlauben.
Geben Sie im Abschnitt Hauptkonten hinzufügen den Namen Ihres Pub/Sub-Dienstmitarbeiters für das Projekt mit dem Abo ein. Der Dienst-Agent hat das Format
service-project-number@gcp-sa-pubsub.iam.gserviceaccount.com
. Bei einem Projekt mitproject-number=112233445566
hat der Dienst-Agent beispielsweise das Formatservice-112233445566@gcp-sa-pubsub.iam.gserviceaccount.com
.Geben Sie im Drop-down-Menü Rolle auswählen die Zahl
Service Account
ein und wählen Sie die Rolle Ersteller von Dienstkonto-Tokens aus.Klicken Sie auf Speichern.
Projekt
Rufen Sie in der Google Cloud Console die Seite IAM auf.
Klicken Sie auf Zugriff erlauben.
Geben Sie im Abschnitt Hauptkonten hinzufügen den Namen Ihres benutzerdefinierten Dienstkontos ein.
Klicken Sie im Bereich Rollen zuweisen auf Weitere Rolle hinzufügen.
Geben Sie im Drop-down-Menü Rolle auswählen die Zahl
Service Account
ein und wählen Sie die Rolle Ersteller von Dienstkonto-Tokens aus.Klicken Sie auf Speichern.
Wenn Sie das benutzerdefinierte Dienstkonto erstellt haben, sollten Sie bereits die erforderliche iam.serviceAccounts.actAs
-Berechtigung haben. Wenn Sie einer anderen Person die Berechtigung für das Dienstkonto erteilen möchten, gehen Sie so vor:
Rufen Sie in der Google Cloud Console die Seite Dienstkonten auf.
Geben Sie den Namen des benutzerdefinierten Dienstkontos in das Feld Filter ein.
Wählen Sie das Dienstkonto aus der Liste aus.
Klicken Sie auf Hauptkonten mit Zugriff.
Klicken Sie auf Zugriff erlauben.
Geben Sie im Bereich Hauptkonten hinzufügen den Namen des Kontos ein, dem Sie Zugriff gewähren möchten.
Geben Sie im Drop-down-Menü Rolle auswählen die Zahl
Service Account
ein und wählen Sie die Rolle Dienstkontonutzer aus.Klicken Sie auf Speichern.
Eigenschaften von Cloud Storage-Abos
Wenn Sie ein Cloud Storage-Abo konfigurieren, müssen Sie die Eigenschaften angeben, die für alle Abotypen gemeinsam sind, sowie einige zusätzliche Cloud Storage-spezifische Aboeigenschaften.
Allgemeine Aboeigenschaften
Weitere Informationen zu den allgemeinen Aboeigenschaften, die Sie für alle Abos festlegen können
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
Maximale Storage-Batch-Bytes 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 im Ausgabe-Avro-Objekt 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 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.
Dienstkonto
Sie haben folgende Möglichkeiten, Nachrichten in eine BigQuery-Tabelle oder einen Cloud Storage-Bucket zu schreiben:
Konfigurieren Sie ein benutzerdefiniertes Dienstkonto so, dass nur Nutzer, die die Berechtigung
iam.serviceAccounts.actAs
für das Dienstkonto haben, ein Abo erstellen können, das in die Tabelle oder den Bucket schreibt. Ein Beispiel für eine Rolle mit der Berechtigungiam.serviceAccounts.actAs
ist die Rolle Dienstkontonutzer (roles/iam.serviceAccountUser
).Verwenden Sie den standardmäßigen Pub/Sub-Dienst-Agent, mit dem jeder Nutzer, der Abos im Projekt erstellen kann, ein Abo erstellen kann, das in die Tabelle oder den Bucket schreibt. Der Pub/Sub-Dienst-Agent ist die Standardeinstellung, wenn Sie kein benutzerdefiniertes Dienstkonto angeben.
Cloud Storage-Abo erstellen
Console
-
Rufen Sie in der Google Cloud Console die Seite 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.
Weitere Informationen zum Erstellen eines Themas finden Sie unter Themen erstellen und verwalten.
-
Wählen Sie als Zustellungstyp In Cloud Storage schreiben aus.
-
Klicken Sie für den Cloud Storage-Bucket auf Durchsuchen.
-
Sie können einen vorhandenen Bucket aus einem beliebigen geeigneten Projekt auswählen.
-
Sie können auch auf das Symbol „Erstellen“ klicken und der Anleitung auf dem Bildschirm folgen, um einen neuen Bucket zu erstellen.
Wählen Sie nach dem Erstellen des Buckets den Bucket für das Cloud Storage-Abo aus.
Weitere Informationen zum Erstellen eines Buckets finden Sie unter Buckets erstellen.
Wenn Sie den Bucket angeben, prüft Pub/Sub, ob der Pub/Sub-Dienst-Agent die entsprechenden Berechtigungen für den Bucket hat. Bei Berechtigungsproblemen wird eine Meldung wie
Unable to verify if the Pub/Sub service agent has write permissions on this bucket. You may be lacking permissions to view or set permissions
angezeigt. -
-
Wenn Berechtigungsprobleme auftreten, klicken Sie auf Berechtigung festlegen und folgen Sie der Anleitung auf dem Bildschirm.
Alternativ können Sie der Anleitung unter Cloud Storage-Rollen dem Pub/Sub-Dienst-Agent zuweisen folgen.
-
Wählen Sie unter Dateiformat die Option Text oder Avro aus.
Wenn Sie Avro auswählen, können Sie optional angeben, ob die Nachrichtenmetadaten in der Ausgabe gespeichert werden sollen.
Weitere Informationen zu den beiden Optionen, einschließlich der Option für Nachrichtenmetadaten für das Avro-Format, finden Sie unter Dateiformat.
-
Optional: Sie können das Präfix, Suffix und das Datum und die Uhrzeit für alle Dateien angeben, die in den Cloud Storage-Bucket geschrieben werden sollen. Eine Datei wird als Objekt im Bucket gespeichert.
Weitere Informationen zum Festlegen des Dateipräfixes, ‑suffixes und ‑datums finden Sie unter Dateipräfix, ‑suffix und ‑datum.
-
Geben Sie für die Dateigruppierung eine maximale Zeit an, die verstreichen darf, bevor eine neue Datei erstellt wird.
Optional können Sie auch die maximale Dateigröße oder die maximale Anzahl von Nachrichten für die Dateien festlegen.
Weitere Informationen zu beiden Optionen für die Dateigruppierung finden Sie unter Dateigruppierung.
-
Wir empfehlen Ihnen dringend, die Funktion Dead Letter zu aktivieren, um Fehler bei der Zustellung von Nachrichten zu behandeln.
Weitere Informationen finden Sie unter Themen für unzustellbare Nachrichten.
-
Sie können die anderen Einstellungen beibehalten und auf Erstellen klicken.
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
- Führen Sie den Befehl
gcloud pubsub subscriptions create
aus, um ein Cloud Storage-Abo zu erstellen.gcloud pubsub subscriptions create SUBSCRIPTION_ID \ --topic=TOPIC_ID \ --cloud-storage-bucket=BUCKET_NAME \ --cloud-storage-file-prefix=CLOUD_STORAGE_FILE_PREFIX \ --cloud-storage-file-suffix=CLOUD_STORAGE_FILE_SUFFIX \ --cloud-storage-file-datetime-format=CLOUD_STORAGE_FILE_DATETIME_FORMAT \ --cloud-storage-max-duration=CLOUD_STORAGE_MAX_DURATION \ --cloud-storage-max-bytes=CLOUD_STORAGE_MAX_BYTES \ --cloud-storage-max-messages=CLOUD_STORAGE_MAX_MESSAGES \ --cloud-storage-output-format=CLOUD_STORAGE_OUTPUT_FORMAT \ --cloud-storage-write-metadata --cloud-storage-use-topic-schema
Wenn Sie ein benutzerdefiniertes Dienstkonto verwenden möchten, geben Sie es als zusätzliches Argument an:
gcloud pubsub subscriptions create SUBSCRIPTION_ID \ --topic=TOPIC_ID \ --cloud-storage-bucket=BUCKET_NAME \ --cloud-storage-file-prefix=CLOUD_STORAGE_FILE_PREFIX \ --cloud-storage-file-suffix=CLOUD_STORAGE_FILE_SUFFIX \ --cloud-storage-file-datetime-format=CLOUD_STORAGE_FILE_DATETIME_FORMAT \ --cloud-storage-max-duration=CLOUD_STORAGE_MAX_DURATION \ --cloud-storage-max-bytes=CLOUD_STORAGE_MAX_BYTES \ --cloud-storage-max-messages=CLOUD_STORAGE_MAX_MESSAGES \ --cloud-storage-output-format=CLOUD_STORAGE_OUTPUT_FORMAT \ --cloud-storage-write-metadata --cloud-storage-use-topic-schema --cloud-storage-service-account-email=SERVICE_ACCOUNT_NAME
Im Befehl sind nur
SUBSCRIPTION_ID
, das Flag--topic
und das Flag--cloud-storage-bucket
erforderlich. Die verbleibenden Flags sind optional und können weggelassen werden.Ersetzen Sie Folgendes:
SUBSCRIPTION_ID
: Der Name oder die ID Ihres neuen Cloud Storage-Abos.TOPIC_ID
: Der Name oder die ID des Themas.BUCKET_NAME
: Gibt den Namen eines vorhandenen Buckets an. Beispiel:prod_bucket
. Der Bucket-Name darf keine Projekt-ID enthalten. Informationen zum Erstellen eines Buckets finden Sie unter Buckets erstellen.CLOUD_STORAGE_FILE_PREFIX
: Gibt das Präfix für den Cloud Storage-Dateinamen an. Beispiel:log_events_
.CLOUD_STORAGE_FILE_SUFFIX
: Gibt das Suffix für den Cloud Storage-Dateinamen an. Beispiel:.txt
.CLOUD_STORAGE_FILE_DATETIME_FORMAT
: Gibt das Datums-/Uhrzeitformat für den Cloud Storage-Dateinamen an. Beispiel:YYYY-MM-DD/hh_mm_ssZ
.CLOUD_STORAGE_MAX_DURATION
: Die maximale Dauer, die verstreichen kann, bevor eine neue Cloud Storage-Datei erstellt wird. Der Wert muss zwischen 1 m und 10 m liegen. Beispiel:5m
.CLOUD_STORAGE_MAX_BYTES
: Die maximale Anzahl von Byte, die in eine Cloud Storage-Datei geschrieben werden können, bevor eine neue Datei erstellt wird. Der Wert muss zwischen 1 KB und 10 GB liegen. Beispiel:20MB
.CLOUD_STORAGE_MAX_MESSAGES
: Die maximale Anzahl von Nachrichten, die in eine Cloud Storage-Datei geschrieben werden können, bevor eine neue Datei erstellt wird. Der Wert muss größer oder gleich 1.000 sein. Beispiel:100000
.CLOUD_STORAGE_OUTPUT_FORMAT
: Das Ausgabeformat für Daten, die in Cloud Storage geschrieben werden. Werte:text
: Nachrichten werden als Rohtext geschrieben und durch einen Zeilenumbruch getrennt.avro
: Nachrichten werden als Avro-Binärdatei geschrieben.--cloud-storage-write-metadata
und--cloud-storage-use-topic-schema
wirken sich nur auf Abos mit dem Ausgabeformatavro
aus.
- SERVICE_ACCOUNT_NAME: Gibt den Namen des Dienstkontos an, das zum Schreiben in Cloud Storage verwendet werden soll.
C++
Folgen Sie der Einrichtungsanleitung für C++ in der Kurzanleitung zur Verwendung von Clientbibliotheken, bevor Sie dieses Beispiel anwenden. Weitere Informationen finden Sie in der Referenzdokumentation zur Pub/Sub C++ API.
Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Pub/Sub zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.
C#
Folgen Sie der Einrichtungsanleitung für C# in der Kurzanleitung zur Verwendung von Clientbibliotheken, bevor Sie dieses Beispiel anwenden. Weitere Informationen finden Sie in der Referenzdokumentation zur Pub/Sub C# API.
Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Pub/Sub zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.
Go
Folgen Sie der Einrichtungsanleitung für Go in der Kurzanleitung zur Verwendung von Clientbibliotheken, bevor Sie dieses Beispiel anwenden. Weitere Informationen finden Sie in der Referenzdokumentation zur Pub/Sub Go API.
Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Pub/Sub zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.
Java
Folgen Sie der Einrichtungsanleitung für Java in der Kurzanleitung zur Verwendung von Clientbibliotheken, bevor Sie dieses Beispiel anwenden. Weitere Informationen finden Sie in der Referenzdokumentation zur Pub/Sub Java API.
Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Pub/Sub zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.
Node.js
Node.js
PHP
Folgen Sie der Einrichtungsanleitung für PHP in der Kurzanleitung zur Verwendung von Clientbibliotheken, bevor Sie dieses Beispiel anwenden. Weitere Informationen finden Sie in der Referenzdokumentation zur Pub/Sub PHP API.
Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Pub/Sub zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.
Python
Folgen Sie der Einrichtungsanleitung für Python in der Kurzanleitung zur Verwendung von Clientbibliotheken, bevor Sie dieses Beispiel anwenden. Weitere Informationen finden Sie in der Referenzdokumentation zur Pub/Sub Python API.
Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Pub/Sub zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.
Cloud Storage-Abo überwachen
Cloud Monitoring bietet eine Reihe von Messwerten, mit denen Sie Abos überwachen können.
Eine Liste aller verfügbaren Pub/Sub-Messwerte und ihre Beschreibungen finden Sie in der Monitoring-Dokumentation für Pub/Sub.
Sie können Abos auch in Pub/Sub überwachen.
Nächste Schritte
Preise für Pub/Sub prüfen, einschließlich Cloud Storage-Abos