Nachrichten mit einer Clientbibliothek in Pub/Sub veröffentlichen und empfangen
Mit dem Pub/Sub-Dienst können Anwendungen Nachrichten verlässlich, schnell und asynchron austauschen. Die Abfolge der Ereignisse sieht so aus:
- Ein Datenersteller veröffentlicht eine Nachricht zu einem Pub/Sub-Thema.
- Ein Abonnentenclient erstellt ein Abo für dieses Thema und verarbeitet Nachrichten aus dem Abo.
Sie können eine Pub/Sub-Umgebung mit einer der folgenden Methoden einrichten: Google Cloud Console, Cloud Shell, Clientbibliotheken oder REST APIs. Auf dieser Seite erfahren Sie, wie Sie Nachrichten mit Pub/Sub mithilfe von Clientbibliotheken veröffentlichen.
Pub/Sub bietet eine automatisch generierte Clientbibliothek auf höherer und niedriger Ebene. Wie in dieser Kurzanleitung empfehlen wir standardmäßig die Clientbibliothek der höheren Ebene.
Klicken Sie auf Anleitung, um eine detaillierte Anleitung für diese Aufgabe direkt in der Google Cloud Console aufzurufen.
Hinweise
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create or select a Google Cloud project.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Pub/Sub API:
gcloud services enable pubsub.googleapis.com
-
Create local authentication credentials for your user account:
gcloud auth application-default login
-
Grant roles to your user account. Run the following command once for each of the following IAM roles:
roles/pubsub.admin
gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
- Replace
PROJECT_ID
with your project ID. -
Replace
USER_IDENTIFIER
with the identifier for your user account. For example,user:myemail@example.com
. - Replace
ROLE
with each individual role.
- Replace
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create or select a Google Cloud project.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Pub/Sub API:
gcloud services enable pubsub.googleapis.com
-
Create local authentication credentials for your user account:
gcloud auth application-default login
-
Grant roles to your user account. Run the following command once for each of the following IAM roles:
roles/pubsub.admin
gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
- Replace
PROJECT_ID
with your project ID. -
Replace
USER_IDENTIFIER
with the identifier for your user account. For example,user:myemail@example.com
. - Replace
ROLE
with each individual role.
- Replace
Clientbibliotheken installieren
Die folgenden Beispiele zeigen, wie Sie die Clientbibliotheken installieren:
Python
Weitere Informationen zur Einrichtung der Python-Entwicklungsumgebung finden Sie im Einrichtungshandbuch für die Python-Entwicklungsumgebung.
# ensure that you are using virtualenv
# as described in the python dev setup guide
pip install --upgrade google-cloud-pubsub
C++
Weitere Informationen zur Installation der C++-Bibliothek finden Sie unter GitHub-README
.
C#
Install-Package Google.Cloud.PubSub.V1 -Pre
Go
go get cloud.google.com/go/pubsub
Java
If you are using Maven, add
the following to your pom.xml
file. For more information about
BOMs, see The Google Cloud Platform Libraries BOM.
If you are using Gradle, add the following to your dependencies:
If you are using sbt, add the following to your dependencies:
If you're using Visual Studio Code, IntelliJ, or Eclipse, you can add client libraries to your project using the following IDE plugins:
The plugins provide additional functionality, such as key management for service accounts. Refer to each plugin's documentation for details.
Node.js
npm install --save @google-cloud/pubsub
PHP
composer require google/cloud-pubsub
Ruby
gem install google-cloud-pubsub
Thema und Abo erstellen
Nachdem Sie ein Thema erstellt haben, können Sie es abonnieren oder Nachrichten für das Thema veröffentlichen.
Verwenden Sie den folgenden Befehl gcloud pubsub topics create, um ein Thema mit dem Namen my-topic
zu erstellen. Ändern Sie den Namen des Themas nicht, da er im Rest der Anleitung verwendet wird.
gcloud pubsub topics create my-topic
Verwenden Sie den Befehl gcloud pubsub subscriptions create, um ein Abo zu erstellen. Nur Nachrichten, die nach dem Erstellen des Abos für das Thema veröffentlicht wurden, sind für Abonnentenanwendungen verfügbar.
gcloud pubsub subscriptions create my-sub --topic my-topic
Weitere Informationen zur Benennung von Themen und Abos finden Sie unter Ressourcennamen.
Nachrichten veröffentlichen
Bevor Sie die folgenden Beispiele ausführen, müssen Sie alle im Code markierten erforderlichen Werte auskommentieren und ausfüllen. Dies ist erforderlich, um das Sample mit Ihrem Projekt und den zuvor erstellten Pub/Sub-Ressourcen zu verknüpfen.
Verwenden Sie my-topic
als Themen-ID.
Python
C++
C#
Go
Java
Node.js
Node.js
PHP
Ruby
Nachrichten empfangen
Richten Sie einen Abonnenten ein, um die soeben veröffentlichten Nachrichten abzurufen. Jeder Abonnent muss die einzelnen Nachrichten innerhalb eines konfigurierbaren Zeitfensters bestätigen. Unbestätigte Nachrichten werden noch einmal zugestellt. Beachten Sie, dass Pub/Sub eine Nachricht mehrmals liefert, um sicherzustellen, dass alle Nachrichten mindestens einmal zu einem Abonnenten gelangen.
Bevor Sie die folgenden Beispiele ausführen, müssen Sie alle im Code markierten erforderlichen Werte auskommentieren und ausfüllen. Dies ist erforderlich, um das Sample mit Ihrem Projekt und den zuvor erstellten Pub/Sub-Ressourcen zu verknüpfen.
Verwenden Sie my-sub
für Ihre Abo-ID.
Weitere Beispiele zum Abrufen von Nachrichten finden Sie unter Codebeispiele für Clientbibliotheken.
Python
C++
C#
Go
Java
Node.js
PHP
Ruby
Wie ist es gelaufen?
Bereinigen (optional)
- Um zu vermeiden, dass Ihrem Google Cloud-Konto die in diesem Leitfaden verwendeten Ressourcen in Rechnung gestellt werden, können Sie das Thema und das Abo über die Befehlszeile löschen.
gcloud pubsub subscriptions delete my-sub gcloud pubsub topics delete my-topic
-
Optional: Revoke the authentication credentials that you created, and delete the local credential file.
gcloud auth application-default revoke
-
Optional: Revoke credentials from the gcloud CLI.
gcloud auth revoke
Nächste Schritte
Weitere Informationen zu den auf dieser Seite beschriebenen Pub/Sub-Konzepten
Informationen zum Erstellen eines Pub/Sub-Systems mit einer 1:n-Beziehung, bei dem eine Publisher-Anwendung erstellt wird, die in zwei separaten Abonnentenanwendungen veröffentlicht wird.
Probieren Sie eine andere Pub/Sub-Kurzanleitung aus, die die gcloud CLI oder die Console verwendet.