Dieses Dokument enthält Informationen zum Erstellen, Löschen und Verwalten von Pub- und Sub-Themen und Abonnements. Weitere Informationen über den Zugriff auf Nachrichtendaten und deren Veröffentlichung finden Sie im Publisher-Leitfaden und in der Abonnentenübersicht.
Themen verwalten
Sie können Themen mit der API, der Google Cloud Console oder dem gcloud
-Befehlszeilentool erstellen, löschen und ansehen. Eine vollständige Liste der gcloud
-Befehle der Pub/Sub API finden Sie in der gcloud pubsub
-Referenz.
Eine Einführung in die Cloud Console finden Sie unter Cloud Console-Schnellstart.
Wenn Sie ein Thema erstellen, können Sie auch eigene Verschlüsselungsschlüssel angeben. Mehr Informationen finden Sie unter Vom Kunden verwaltete Verschlüsselungsschlüssel verwenden.
Themen erstellen
Bevor Sie ein Thema veröffentlichen oder abonnieren können, müssen Sie es zuerst erstellen. Hier ein Beispiel für das Erstellen eines Themas:
gcloud
gcloud pubsub topics create TOPIC_ID
REST
Anfrage
Die Anfrage muss mit einem Zugriffstoken im Header Authorization
authentifiziert werden. So rufen Sie ein Zugriffstoken für die aktuellen Standardanmeldedaten für Anwendungen ab: gcloud auth application-default print-access-token
.
PUT https://pubsub.googleapis.com/v1/projects/myproject/topics/mytopic Authorization: Bearer ACCESS_TOKEN
Antwort
200 OK
{ "name": "projects/myproject/topics/mytopic" }
C++
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für C++ in der Pub/Sub-Kurzanleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Pub/Sub C++ API-Referenzdokumentation.
C#
Lesen Sie unter Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von C#, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub C# API.
Go
Lesen Sie unter Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Go, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Go API.
Java
Lesen Sie unter Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Java, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Java API.
Node.js
Lesen Sie unter Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Node.js, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Node.js API.
PHP
Lesen Sie unter Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von PHP, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zur PHP-API von Pub/Sub.
Python
Lesen Sie unter Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Python, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Python API.
Ruby
Lesen Sie unter Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Ruby, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Ruby API.
Thema mit einem Schema erstellen
Wenn Sie ein Thema erstellen, können Sie ihm ein Schema zuweisen. Ein Schema ist ein Format, dem Nachrichten aus einem Thema folgen müssen. Damit entsteht ein Vertrag zwischen Publisher und Abonnent, der Pub/Sub erzwingt. Weitere Informationen finden Sie unter Schemas erstellen und verwalten.
Console
So erstellen Sie ein Thema und weisen ihm ein Schema zu:
Wechseln Sie in der Cloud Console zur Pub/Sub-Seite Themen.
Klicken Sie auf Thema erstellen.
Geben Sie im Feld Themen-ID eine ID für das Thema ein.
Klicken Sie auf das Kästchen Schema verwenden. Übernehmen Sie für alle anderen Optionen die Standardeinstellungen.
Klicken Sie auf Pub/Sub-Schema auswählen und wählen Sie Neues Schema erstellen aus. Wenn Sie ein vorhandenes Schema verwenden möchten, fahren Sie mit Schritt 7 fort.
Geben Sie im Feld Schema-ID eine ID für Ihr Schema ein.
Wählen Sie als Schematyp entweder Avro oder Protocol Buffer aus. Weitere Informationen zu Schematypen finden Sie unter Schemas erstellen und verwalten.
Geben Sie im Feld Schemadefinition die Avro-Definition Ihres Protokollpuffers für das Schema ein.
Klicken Sie auf Erstellen, um das Schema zu speichern.
Suchen Sie im Dialogfeld Thema erstellen im Feld Pub/Sub-Schema auswählen nach Ihrem Schema.
Klicken Sie auf Erstellen, um das Thema zu speichern und weisen Sie es dem ausgewählten Schema zu.
gcloud
Mit dem folgenden gcloud
-Befehl können Sie ein neues Thema erstellen, das einem zuvor erstellten Schema zugewiesen wurde:
gcloud beta pubsub topics create TOPIC_ID \ --message-encoding=ENCODING_TYPE \ --schema=SCHEMA_ID
Wobei:
- TOPIC_ID ist die gewünschte ID für das Thema, das Sie erstellen.
- ENCODING_TYPE ist die Codierung der Nachrichten, die auf dem Schema validiert sind. Dieser muss auf
JSON
oderBINARY
festgelegt werden. - SCHEMA_ID ist die ID eines vorhandenen Schemas.
- SCHEMA_PROJECT ist die Projekt-ID des Google Cloud-Projekts für das Schema.
Sie können auch ein Schema aus einem anderen Google Cloud-Projekt zuweisen:
gcloud beta pubsub topics create TOPIC_ID \ --message-encoding=ENCODING_TYPE \ --schema=SCHEMA_ID \ --schema-project=SCHEMA_PROJECT \ --project=TOPIC_PROJECT
Wobei:
- SCHEMA_PROJECT ist die Projekt-ID des Google Cloud-Projekts für das Schema.
- TOPIC_PROJECT ist die Projekt-ID des Google Cloud-Projekts für das Thema.
REST
Anfrage
Die Anfrage muss mit einem Zugriffstoken im Header Authorization
authentifiziert werden. So rufen Sie ein Zugriffstoken für die aktuellen Standardanmeldedaten für Anwendungen ab: gcloud auth application-default print-access-token
.
PUT https://pubsub.googleapis.com/v1/projects/PROJECT_ID/topics/TOPIC_ID Authorization: Bearer ACCESS_TOKEN
Antwort
{ "name": "projects/PROJECT_ID/topics/TOPIC_ID" "schema_settings": { "schema:"SCHEMA_NAME "encoding:"ENCODING_TYPE } }
Wobei:
- SCHEMA_NAME ist der Name des Schemas, für das Nachrichten veröffentlicht werden sollen. Das Format ist
projects/{project}/schemas/{schema}
. - ENCODING_TYPE ist die Codierung der Nachrichten, die auf dem Schema validiert sind. Dieser muss auf
JSON
oderBINARY
festgelegt werden.
Java
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für Java in der Schnellstart-Anleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Java API.
Thema löschen
Hier ein Beispiel für das Löschen eines Themas:
gcloud
gcloud pubsub topics delete TOPIC_ID
REST
Anfrage
Die Anfrage muss mit einem Zugriffstoken im Header Authorization
authentifiziert werden. So rufen Sie ein Zugriffstoken für die aktuellen Standardanmeldedaten für Anwendungen ab: gcloud auth application-default print-access-token
.
DELETE https://pubsub.googleapis.com/v1/projects/myproject/topics/mytopic Authorization: Bearer ACCESS_TOKEN
Antwort
200 OK
{ "name": "projects/myproject/topics/mytopic" }
C++
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für C++ in der Pub/Sub-Kurzanleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Pub/Sub C++ API-Referenzdokumentation.
C#
Lesen Sie unter Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von C#, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub C# API.
Go
Lesen Sie unter Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Go, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Go API.
Java
Lesen Sie unter Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Java, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Java API.
Node.js
Lesen Sie unter Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Node.js, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Node.js API.
PHP
Lesen Sie unter Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von PHP, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zur PHP-API von Pub/Sub.
Python
Lesen Sie unter Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Python, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Python API.
Ruby
Lesen Sie unter Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Ruby, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Ruby API.
Wenn Sie ein Thema löschen, werden dessen Abos nicht gelöscht. Der Nachrichtenrückstand des Abos ist für Abonnenten verfügbar. Nachdem ein Thema gelöscht wurde, haben seine Abos den Themennamen _deleted-topic_
. Wenn Sie ein Thema erstellen, das denselben Namen hat wie ein gerade gelöschtes Thema, erhalten Sie nach dem Löschvorgang für kurze Zeit eine Fehlermeldung.
Themen auflisten
Hier ein Beispiel für das Abrufen einer Themenliste:
gcloud
gcloud pubsub topics list
REST
Anfrage
Die Anfrage muss mit einem Zugriffstoken im Header Authorization
authentifiziert werden. So rufen Sie ein Zugriffstoken für die aktuellen Standardanmeldedaten für Anwendungen ab: gcloud auth application-default print-access-token
.
GET https://pubsub.googleapis.com/v1/projects/myproject/topics Authorization: Bearer ACCESS_TOKEN
Antwort
200 OK
{ "topics": [ { "name": "projects/myproject/topics/mytopic1" }, { "name": "projects/myproject/topics/mytopic2" } ] }
C++
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für C++ in der Pub/Sub-Kurzanleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Pub/Sub C++ API-Referenzdokumentation.
C#
Lesen Sie unter Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von C#, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub C# API.
Go
Lesen Sie unter Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Go, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Go API.
Java
Lesen Sie unter Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Java, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Java API.
Node.js
Lesen Sie unter Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Node.js, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Node.js API.
PHP
Lesen Sie unter Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von PHP, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zur PHP-API von Pub/Sub.
Python
Lesen Sie unter Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Python, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Python API.
Ruby
Lesen Sie unter Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Ruby, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Ruby API.
Standardmäßig werden maximal 100 Ergebnisse pro Abfrage zurückgegeben. Mit dem Parameter für die Seitengröße können Sie einen Alternativwert von bis zu 1.000 angeben.
Abos trennen
Wenn Sie ein Abo erstellen, hängen Sie das Abo an ein Thema an und Abonnenten können Nachrichten des Abos empfangen. Damit Abonnenten keine Nachrichten erhalten, können Sie das jeweilige Abo von diesem Thema trennen.
Zum Trennen eines Abos benötigen Sie die Berechtigung pubsub.topics.detachSubscription
für das Thema. Sie können ein Abo ohne Berechtigungen für das Abo trennen. Dies ist nützlich, um ein Thema zu verwalten, das sich in einem anderen Projekt als das Abo befindet. Weitere Informationen finden Sie unter Pub/Sub-Zugriffssteuerung.
Sie können ein Abo mithilfe der Cloud Console, des gcloud
-Befehlszeilentools oder der Pub/Sub API von einem Thema trennen.
Console
So trennen Sie ein Abo:
- Rufen Sie in der Cloud Console die Seite Themen auf.
- Klicken Sie auf die Themen-ID.
- Klicken Sie im Tab Abos auf die Abo-ID des zu trennenden Abos.
- Klicken Sie auf der Seite Abodetails auf Trennen.
- Klicken Sie im angezeigten Dialogfeld noch einmal auf Trennen.
gcloud
Verwenden Sie den Befehl gcloud pubsub topics detach-subscription
, um ein Abo zu trennen:
gcloud pubsub topics detach-subscription SUBSCRIPTION_ID
Wenn die Anfrage erfolgreich ist, wird in der Befehlszeile eine Bestätigung angezeigt:
Detached subscription [SUBSCRIPTION_ID].
REST
Senden Sie zum Trennen eines Abos eine Anfrage wie die folgende:
POST https://pubsub.googleapis.com/v1/subscriptions/PROJECT_ID/subscriptions/SUBSCRIPTION_ID:detach Authorization: Bearer $(gcloud auth application-default print-access-token)
Wenn die Anfrage erfolgreich ist, ist die Antwort ein leeres JSON-Objekt.
C++
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für C++ in der Pub/Sub-Kurzanleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Pub/Sub C++ API-Referenzdokumentation.
C#
Lesen Sie unter Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von C#, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub C# API.
Go
Lesen Sie unter Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Go, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Go API.
Java
Lesen Sie unter Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Java, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Java API.
Node.js
Lesen Sie unter Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Node.js, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Node.js API.
PHP
Lesen Sie unter Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von PHP, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zur PHP-API von Pub/Sub.
Python
Lesen Sie unter Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Python, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Python API.
Ruby
Lesen Sie unter Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Ruby, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Ruby API.
Es kann einige Minuten dauern, bis der Pub/Sub-Dienst das Abo vom Thema getrennt hat.
Nachdem der Pub/Sub-Dienst das Abo von dem Thema getrennt hat, löscht er alle Nachrichten, die er für das Abo erhalten hat. Sie können diese Nachrichten weder aus dem Abo abrufen noch das Abo an ein Thema anhängen. Löschen Sie das Abo, um Ihr Cloud-Projektkontingent freizugeben.
Wenn sich das Abo und das Thema in verschiedenen Cloud-Projekten befinden, fügt der Pub/Sub-Dienst den Audit-Logs beider Projekte einen Eintrag hinzu.
Abos verwalten
In diesem Abschnitt wird beschrieben, wie Push- und Pull-Abos verwaltet werden. In der Abonnentenübersicht finden Sie einen vergleichenden Überblick über Pull- und Push-Abos.
Sie müssen ein Abo für ein Thema erstellen, bevor Abonnenten Nachrichten empfangen können, die in dem Thema veröffentlicht werden.
Abos erstellen
Wenn Sie ein Abo erstellen, hängen Sie ein Thema an das Abo an. Abonnenten erhalten die Nachrichten, die Publisher an dieses Thema senden. Abonnenten können keine Nachrichten empfangen, die an dieses Thema gesendet werden, bevor es das Abo erstellt.
Sie können Abos mit der Cloud Console, dem gcloud
-Befehlszeilentool oder der Pub/Sub API erstellen.
Console
Um ein Abo zu erstellen, führen Sie die folgenden Schritte aus.
- Rufen Sie in der 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.
- Klicken Sie auf Erstellen.
Sie können ein Abo auch im Abschnitt Themen erstellen. Diese Verknüpfung ist nützlich, um Themen mit Abos zu verknüpfen.
- Rufen Sie in der Cloud Console die Seite Themen auf.
- Klicken Sie neben dem Thema, für das Sie ein Abo erstellen möchten, auf more_vert.
- Wählen Sie im Kontextmenü Abo erstellen aus.
- Wählen Sie im Drop-down-Menü ein Thema aus oder erstellen Sie ein Thema. Das Abo erhält Nachrichten aus dem Thema.
- Geben Sie die Abo-ID ein.
- Klicken Sie auf Erstellen.
gcloud
Führen Sie den Befehl gcloud pubsub subscriptions create
aus, um ein Abo zu erstellen:
gcloud pubsub subscriptions create SUBSCRIPTION_ID \ --topic=TOPIC_ID \ [--ack-deadline=ACK_DEADLINE] \ [--dead-letter-topic=DEAD_LETTER_TOPIC_ID \ --dead-letter-topic-project=DEAD_LETTER_TOPIC_PROJECT_ID \ [--expiration-period=EXPIRATION_PERIOD] \ --max-delivery-attempts=MAX_DELIVERY_ATTEMPTS] \ [--message-filter=FILTER] [--message-retention-duration=MESSAGE_RETENTION_DURATION] \ [--max-retry-delay=MAX_RETRY_DELAY] \ [--min-retry-delay=MIN_RETRY_DELAY] \ [--push-endpoint=PUSH_ENDPOINT]
REST
Anfrage
Die Anfrage muss mit einem Zugriffstoken im Header Authorization
authentifiziert werden. Zugriffstoken für die aktuellen Standardanmeldedaten für Anwendungen abrufen: gcloud auth application-default print-access-token
PUT https://pubsub.googleapis.com/v1/projects/myproject/subscriptions/mysubscription Authorization: Bearer ACCESS_TOKEN
Geben Sie im Anfragetext die folgenden Felder an:
{ "topic": "projects/someproject/topics/sometopic" // Only needed if you are using push delivery "pushConfig": { "pushEndpoint": "https://myproject.appspot.com/myhandler" } }
Antwort:
200 OK
{ "name": "projects/myproject/subscriptions/mysubscription", "topic": "projects/someproject/topics/sometopic", "pushConfig": { "pushEndpoint": "https://myproject.appspot.com/myhandler" }, "ackDeadlineSeconds": 10 }
C++
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für C++ in der Pub/Sub-Kurzanleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Pub/Sub C++ API-Referenzdokumentation.
C#
Lesen Sie unter Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von C#, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub C# API.
Go
Lesen Sie unter Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Go, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Go API.
Java
Lesen Sie unter Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Java, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Java API.
Node.js
Lesen Sie unter Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Node.js, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Node.js API.
PHP
Lesen Sie unter Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von PHP, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zur PHP-API von Pub/Sub.
Python
Lesen Sie unter Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Python, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Python API.
Ruby
Lesen Sie unter Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Ruby, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Ruby API.
Die folgenden Beispiele zeigen, wie Sie ein Abo mit Push-Zustellung erstellen. Standardmäßig verwenden Abos die Pull-Zustellung.
C++
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für C++ in der Kurzanleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Pub/Sub C++ API-Referenzdokumentation.
C#
Lesen Sie unter Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von C#, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub C# API.
Go
Lesen Sie unter Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Go, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Go API.
Java
Lesen Sie unter Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Java, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Java API.
Node.js
Lesen Sie unter Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Node.js, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Node.js API.
PHP
Lesen Sie unter Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von PHP, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zur PHP-API von Pub/Sub.
Python
Lesen Sie unter Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Python, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Python API.
Ruby
Lesen Sie unter Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Ruby, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Ruby API.
Abo-Attribute verwenden
Sie können beim Erstellen oder Aktualisieren eines Abos Attribute für das Abo festlegen.
Weitere Informationen zum Festlegen von Abo-Attributen mit dem gcloud
-Befehlszeilentool finden Sie unter den optionalen Flags gcloud pubsub subscriptions create
oder gcloud pubsub subscriptions update
.
Abos haben folgende Attribute:
Attribut | Beschreibung | Default |
---|---|---|
Auslieferungsmethode |
Sie können Nachrichten per Pull-Zustellung oder Push-Zustellung empfangen. Bei der Pull-Zustellung initiiert Ihre Abonnentenanwendung, wenn sie Nachrichten abrufen soll, Anfragen beim Pub/Sub-Server. Bei der Push-Lieferung initiiert Pub/Sub, wenn es Nachrichten zustellen soll, Anfragen bei Ihrer Abonnentenanwendung. |
Wenn nicht näher angegeben, verwenden Pub/Sub-Abos die Pull-Zustellung. |
Bestätigungsfrist |
Wenn Ihr Code den Empfang der Nachricht vor Ablauf der Frist nicht bestätigt, wird die Nachricht noch einmal gesendet. |
Die Standardfrist für die Bestätigung beträgt 10 Sekunden. Das Maximum beträgt 10 Minuten. |
Dauer der Nachrichtenspeicherung |
Die Nachrichtenaufbewahrungsdauer gibt an, wie lange Pub/Sub Nachrichten nach der Veröffentlichung aufbewahrt. Nach der Aufbewahrungsdauer der Nachricht kann Pub/Sub die Nachricht unabhängig vom Bestätigungsstatus verwerfen. Wie Sie bestätigte Nachrichten für die Aufbewahrungsdauer aufbewahren, erfahren Sie unter Nachrichten wiedergeben und verwerfen. |
Die standardmäßige Aufbewahrungsdauer für Nachrichten ist 7 Tage. Die Mindestdauer beträgt 10 Minuten, die Höchstdauer 7 Tage. |
Dead-Letter-Themen |
Wenn ein Abonnent eine Nachricht nicht bestätigen kann, kann Pub/Sub die Nachricht an ein Dead-Letter-Thema weiterleiten. Weitere Informationen finden Sie unter Weiterleitung zu unzustellbaren Themen. Wenn Sie ein Thema für unzustellbare Nachrichten einrichten, können Sie die Nachrichtenreihenfolge nicht aktivieren. |
Wenn Sie ein Thema für unzustellbare Nachrichten festlegen, können Sie auch die maximale Anzahl der Zustellungsversuche angeben. Standardmäßig werden fünf Übermittlungsversuche verwendet. können Sie 5 bis 100 Versuche angeben. Wenn Sie ein Thema für unzustellbare Nachrichten festlegen und sich das Thema in einem anderen Projekt als das Abo befindet, müssen Sie auch die Projekt-ID mit dem Thema für unzustellbare Nachrichten angeben. |
Ablauffrist |
Abos ohne Abonnentenaktivität (z. B. offene Verbindungen, aktive Pull-Vorgänge oder erfolgreiche Push-Vorgänge) können ablaufen. Erkennt Pub/Sub Aktivitäten von Abonnenten, wird die Zeit bis zum Löschen des Abos wieder zurückgesetzt. |
Die Standardablaufzeit beträgt 31 Tage. Das Minimum beträgt einen Tag. Um zu verhindern, dass ein Abo abläuft, legen Sie die Ablaufzeit auf |
Wiederholungsrichtlinie |
Wenn die Bestätigungsfrist abläuft oder ein Abonnent mit einer negativen Bestätigung antwortet, kann Pub/Sub die Nachricht mit exponentiellem Backoff noch einmal senden. |
Wenn die Wiederholungsrichtlinie nicht festgelegt ist, sendet Pub/Sub die Nachricht noch einmal, sobald die Bestätigungsfrist abläuft oder ein Abonnent mit einer negativen Bestätigung antwortet. Wenn die maximale Backoff-Dauer festgelegt ist, beträgt die standardmäßige minimale Backoff-Dauer 10 Sekunden. Wenn die minimale Backoff-Dauer festgelegt ist, beträgt die maximale Backoff-Dauer 600 Sekunden. Sie können maximal 600 Sekunden festlegen. |
Nachrichtenreihenfolge |
Wenn Publisher Nachrichten mit einem Sortierschlüssel senden und die Nachrichtenreihenfolge festgelegt ist, stellt Pub/Sub die Nachrichten in dieser Reihenfolge bereit. |
Ist dies nicht festgelegt, stellt Pub/Sub Nachrichten nicht in der richtigen Reihenfolge zu. Das gilt auch für Nachrichten mit Sortierungsschlüsseln. |
Filter |
Der Filter ist ein String mit einem Filterausdruck. Wenn ein Abo einen Filter hat, liefert das Abo nur die Nachrichten, die dem Filter entsprechen. Sie können Nachrichten nach ihren Attributen filtern. |
Falls nicht anders angegeben, filtert das Abo die Nachrichten nicht und alle Abonnenten erhalten alle Nachrichten. |
Wiederholungsrichtlinien verwenden
Wenn ein Abo eine Wiederholungsrichtlinie hat, sendet Pub/Sub nicht bestätigte Nachrichten nach Ablauf der von Ihnen angegebenen Backoff-Dauer erneut. Pub/Sub sendet die Nachrichten nach Ablauf der Backoff-Zeit noch einmal. So erhalten Sie Nachrichten möglicherweise vor der Mindest-Backoff-Dauer.
Wenn sich Nachrichten in einem Batch befinden, startet Pub/Sub den exponentiellen 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.
Nach der Backoff-Dauer liefert Pub/Sub den Batch noch einmal aus.
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.
Liefermethoden ändern
Sie können mit der Cloud Console, dem gcloud
-Befehlszeilentool oder der Pub/Sub API zwischen Push- und Pull-Abos wechseln.
Console
Führen Sie die folgenden Schritte aus, um ein Push-Abo zu ändern:
- Rufen Sie in der Cloud Console die Seite Abos auf.
- Klicken Sie neben dem Abo, das Sie aktualisieren möchten, auf more_vert.
- Wählen Sie unter Zustellungstyp die Option Pull oder Push aus.
- Klicken Sie auf Aktualisieren.
gcloud
Um die Push-Endpunkt-URL zu ändern, führen Sie den Befehl modify-push-config
aus:
gcloud pubsub subscriptions modify-push-config SUBSCRIPTION_ID \ --push-endpoint=PUSH_ENDPOINT
Wenn das Abo bereits die Pull-Zustellung verwendet, wird durch die Festlegung des Push-Endpunkts die Zustellungsmethode auf Push-Zustellung umgestellt.
Sie können von Push- zu Pull-Zustellung wechseln, indem Sie den Push-Endpunkt in einen leeren String ändern.
C++
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für C++ in der Pub/Sub-Kurzanleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Pub/Sub C++ API-Referenzdokumentation.
C#
Lesen Sie unter Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von C#, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub C# API.
Go
Lesen Sie unter Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Go, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Go API.
Java
Lesen Sie unter Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Java, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Java API.
Node.js
Lesen Sie unter Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Node.js, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Node.js API.
Python
Lesen Sie unter Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Python, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Python API.
Ruby
Lesen Sie unter Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Ruby, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Ruby API.
Abos auflisten
Sie können die Abos in einem Google Cloud-Projekt mit der Cloud Console, dem gcloud
-Befehlszeilentool oder der Pub/Sub API auflisten.
Console
Um die Abos in einem Projekt aufzulisten, rufen Sie die Seite Abos auf.
gcloud
Führen Sie den Befehl gcloud pubsub subscriptions list
aus, um die Abos in einem Google Cloud-Projekt aufzulisten:
gcloud pubsub subscriptions list [--project=PROJECT_ID]
C++
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für C++ in der Pub/Sub-Kurzanleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Pub/Sub C++ API-Referenzdokumentation.
C#
Lesen Sie unter Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von C#, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub C# API.
Go
Lesen Sie unter Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Go, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Go API.
Java
Lesen Sie unter Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Java, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Java API.
Node.js
Lesen Sie unter Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Node.js, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Node.js API.
PHP
Lesen Sie unter Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von PHP, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zur PHP-API von Pub/Sub.
Python
Lesen Sie unter Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Python, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Python API.
Ruby
Lesen Sie unter Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Ruby, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Ruby API.
Sie können die Abos für ein Thema mit der Cloud Console, dem gcloud
-Befehlszeilentool oder der Pub/Sub API auflisten.
Console
- Rufen Sie in der Cloud Console die Seite Themen auf.
- Wählen Sie eine Themen-ID aus, um die Seite Themendetails zu öffnen. Der Abschnitt Abos der Seite enthält eine Liste der Abos für das Thema.
gcloud
Führen Sie den Befehl gcloud pubsub topics list-subscriptions
aus, um die Abos in einem Google Cloud-Projekt aufzulisten:
gcloud pubsub topics list-subscriptions TOPIC_ID
C++
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für C++ in der Pub/Sub-Kurzanleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Pub/Sub C++ API-Referenzdokumentation.
C#
Lesen Sie unter Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von C#, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub C# API.
Go
Lesen Sie unter Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Go, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Go API.
Java
Lesen Sie unter Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Java, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Java API.
Node.js
Lesen Sie unter Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Node.js, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Node.js API.
Python
Lesen Sie unter Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Python, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Python API.
Ruby
Lesen Sie unter Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Ruby, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Ruby API.
Abos löschen
Sie können Abos mit der Cloud Console, dem gcloud
-Befehlszeilentool oder der Pub/Sub API löschen.
Console
- Rufen Sie in der Cloud Console die Seite Abos auf.
- Wählen Sie das zu löschende Abo aus.
- Klicken Sie auf Löschen.
gcloud
Führen Sie den Befehl gcloud pubsub subscriptions delete
aus, um ein Abo zu löschen:
gcloud pubsub subscriptions delete SUBSCRIPTION_ID
C++
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für C++ in der Pub/Sub-Kurzanleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Pub/Sub C++ API-Referenzdokumentation.
C#
Lesen Sie unter Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von C#, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub C# API.
Go
Lesen Sie unter Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Go, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Go API.
Java
Lesen Sie unter Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Java, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Java API.
Node.js
Lesen Sie unter Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Node.js, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Node.js API.
PHP
Lesen Sie unter Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von PHP, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zur PHP-API von Pub/Sub.
Python
Lesen Sie unter Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Python, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Python API.
Ruby
Lesen Sie unter Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Ruby, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Ruby API.
Ressourcennamen
Ein Pub/Sub-Ressourcenname identifiziert eine Pub/Sub-Ressource wie ein Abo oder Thema eindeutig und muss das folgende Format aufweisen:
projects/project-identifier/collection/relative-name
Die Projekt-ID muss die Projekt-ID sein, die in der Google Cloud Console verfügbar ist. Beispiel: projects/myproject/topics/mytopic
Die Sammlung muss einer von sein subscriptions
oder topics
.
Der relative Name muss folgende Voraussetzungen erfüllen:
- Beginnen Sie nicht mit der Zeichenfolge
goog
. - Er muss mit einem Buchstaben beginnen
- Er muss zwischen 3 und 255 Zeichen lang sein
Er darf nur die folgenden Zeichen enthalten:
- Buchstaben:
[A-Za-z]
- Zahlen:
[0-9]
- Bindestriche:
-
- Unterstriche:
_
- Punkte:
.
- Tilden:
~
- Pluszeichen:
+
Prozentzeichen:
%
Die Sonderzeichen in der obigen Liste können in Ressourcennamen ohne URL-Codierung verwendet werden. Sie müssen jedoch sicherstellen, dass alle anderen Sonderzeichen bei der Verwendung in URLs richtig codiert/decodiert werden. Beispiel:
mi-tópico
ist ein ungültiger relativer Name.mi-t%C3%B3pico
ist jedoch gültig.Dies ist besonders wichtig für REST-Aufrufe.
- Buchstaben: