Nachrichten in Pub/Sub mit einer Clientbibliothek veröffentlichen und empfangen
Mit dem Pub/Sub-Dienst können Anwendungen Nachrichten verlässlich, schnell und asynchron austauschen. Die Ereignisabfolge ist wie folgt:
- Ein Datenersteller veröffentlicht eine Nachricht zu einem Pub/Sub-Thema.
- Ein Abonnentenclient erstellt ein Abo für dieses Thema und ruft Nachrichten aus dem Abo ab.
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 hoher und niedriger Ebene. Standardmäßig empfehlen wir, wie in dieser Kurzanleitung, die Clientbibliothek auf hoher Ebene.
Eine detaillierte Anleitung dazu finden Sie direkt in der Google Cloud Console. Klicken Sie dazu einfach auf Anleitung:
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.
-
Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
-
Führen Sie folgenden Befehl aus, um die gcloud CLI zu initialisieren:
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
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
-
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:[email protected]
. - Replace
ROLE
with each individual role.
- Replace
-
Install the Google Cloud CLI.
-
Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
-
Führen Sie folgenden Befehl aus, um die gcloud CLI zu initialisieren:
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
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
-
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:[email protected]
. - Replace
ROLE
with each individual role.
- Replace
- 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
Weitere Informationen zu den auf dieser Seite beschriebenen Pub/Sub-Konzepten
Pub/Sub-System mit einer 1:n-Beziehung erstellen: Hier erfahren Sie, wie Sie eine Publisher-Anwendung erstellen, die in zwei separate Abonnentenanwendungen veröffentlicht.
Probieren Sie eine andere Pub/Sub-Kurzanleitung aus, die die gcloud CLI oder die Konsole verwendet.
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 @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 restlichen Teil des Tutorials 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 erforderlichen Werte, die im Code markiert sind, einkommentieren und eingeben. Dies ist erforderlich, um das Beispiel mit Ihrem Projekt und den Pub/Sub-Ressourcen zu verknüpfen, die Sie zuvor erstellt haben.
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 erforderlichen Werte, die im Code markiert sind, einkommentieren und eingeben. Dies ist erforderlich, um das Beispiel mit Ihrem Projekt und den Pub/Sub-Ressourcen zu verknüpfen, die Sie zuvor erstellt haben.
Verwenden Sie my-sub
für Ihre Abo-ID.
Weitere Beispiele, die zeigen, wie Nachrichten abgerufen werden, finden Sie unter Codebeispiele für Clientbibliotheken.
Python
C++
C#
Go
Java
Node.js
PHP
Ruby