Nachrichten in Pub/Sub mit einer Clientbibliothek veröffentlichen und empfangen
- Ein Datenersteller veröffentlicht eine Nachricht in 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 wird beschrieben, wie Sie mit Clientbibliotheken Nachrichten mit Pub/Sub 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:
Hinweis
- Melden Sie sich in Ihrem Google Cloud -Konto an. Wenn Sie mit Google Cloudnoch nicht vertraut sind, erstellen Sie einfach ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
-
Installieren Sie die 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 den folgenden Befehl aus, um die gcloud CLI zu initialisieren:
gcloud init -
Erstellen Sie ein Google Cloud Projekt oder wählen Sie eines aus.
Erforderliche Rollen zum Auswählen oder Erstellen eines Projekts
- Projekt auswählen: Für die Auswahl eines Projekts ist keine bestimmte IAM-Rolle erforderlich. Sie können jedes Projekt auswählen, für das Ihnen eine Rolle zugewiesen wurde.
-
Projekt erstellen: Zum Erstellen eines Projekts benötigen Sie die Rolle „Projektersteller“ (
roles/resourcemanager.projectCreator), die die Berechtigungresourcemanager.projects.createenthält. Weitere Informationen zum Zuweisen von Rollen
-
So erstellen Sie ein Google Cloud Projekt:
gcloud projects create PROJECT_ID
Ersetzen Sie
PROJECT_IDdurch einen Namen für das Google Cloud Projekt, das Sie erstellen. -
Wählen Sie das von Ihnen erstellte Google Cloud Projekt aus:
gcloud config set project PROJECT_ID
Ersetzen Sie
PROJECT_IDdurch Ihren Google Cloud Projektnamen.
-
Prüfen Sie, ob die Abrechnung für Ihr Google Cloud Projekt aktiviert ist.
Aktivieren Sie die Pub/Sub API, falls sie noch nicht aktiviert ist:
Rollen, die zum Aktivieren von APIs erforderlich sind
Zum Aktivieren von APIs benötigen Sie die Berechtigung
serviceusage.services.enable. Wenn Sie das Projekt erstellt haben, haben Sie diese Berechtigung wahrscheinlich bereits über die Rolle „Inhaber“ (roles/owner). Andernfalls können Sie diese Berechtigung über die Rolle „Service Usage-Administrator“ (roles/serviceusage.serviceUsageAdmin) erhalten. Informationen zum Zuweisen von Rollengcloud services enable pubsub.googleapis.com
-
Erstellen Sie lokale Anmeldedaten zur Authentifizierung für Ihr Nutzerkonto:
gcloud auth application-default login
Wenn ein Authentifizierungsfehler zurückgegeben wird und Sie einen externen Identitätsanbieter (IdP) verwenden, prüfen Sie, ob Sie sich mit Ihrer föderierten Identität in der gcloud CLI angemeldet haben.
-
Weisen Sie Ihrem Nutzerkonto Rollen zu. Führen Sie den folgenden Befehl für jede der folgenden IAM-Rollen einmal aus:
roles/pubsub.admingcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
Ersetzen Sie Folgendes:
PROJECT_ID: Ihre Projekt-ID.USER_IDENTIFIER: Die Kennung für Ihr Nutzerkonto . Beispiel:myemail@example.comROLE: Die IAM-Rolle, die Sie Ihrem Nutzerkonto zuweisen.
-
Installieren Sie die 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 den folgenden Befehl aus, um die gcloud CLI zu initialisieren:
gcloud init -
Erstellen Sie ein Google Cloud Projekt oder wählen Sie eines aus.
Erforderliche Rollen zum Auswählen oder Erstellen eines Projekts
- Projekt auswählen: Für die Auswahl eines Projekts ist keine bestimmte IAM-Rolle erforderlich. Sie können jedes Projekt auswählen, für das Ihnen eine Rolle zugewiesen wurde.
-
Projekt erstellen: Zum Erstellen eines Projekts benötigen Sie die Rolle „Projektersteller“ (
roles/resourcemanager.projectCreator), die die Berechtigungresourcemanager.projects.createenthält. Weitere Informationen zum Zuweisen von Rollen
-
So erstellen Sie ein Google Cloud Projekt:
gcloud projects create PROJECT_ID
Ersetzen Sie
PROJECT_IDdurch einen Namen für das Google Cloud Projekt, das Sie erstellen. -
Wählen Sie das von Ihnen erstellte Google Cloud Projekt aus:
gcloud config set project PROJECT_ID
Ersetzen Sie
PROJECT_IDdurch Ihren Google Cloud Projektnamen.
-
Prüfen Sie, ob die Abrechnung für Ihr Google Cloud Projekt aktiviert ist.
Aktivieren Sie die Pub/Sub API, falls sie noch nicht aktiviert ist:
Rollen, die zum Aktivieren von APIs erforderlich sind
Zum Aktivieren von APIs benötigen Sie die Berechtigung
serviceusage.services.enable. Wenn Sie das Projekt erstellt haben, haben Sie diese Berechtigung wahrscheinlich bereits über die Rolle „Inhaber“ (roles/owner). Andernfalls können Sie diese Berechtigung über die Rolle „Service Usage-Administrator“ (roles/serviceusage.serviceUsageAdmin) erhalten. Informationen zum Zuweisen von Rollengcloud services enable pubsub.googleapis.com
-
Erstellen Sie lokale Anmeldedaten zur Authentifizierung für Ihr Nutzerkonto:
gcloud auth application-default login
Wenn ein Authentifizierungsfehler zurückgegeben wird und Sie einen externen Identitätsanbieter (IdP) verwenden, prüfen Sie, ob Sie sich mit Ihrer föderierten Identität in der gcloud CLI angemeldet haben.
-
Weisen Sie Ihrem Nutzerkonto Rollen zu. Führen Sie den folgenden Befehl für jede der folgenden IAM-Rollen einmal aus:
roles/pubsub.admingcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
Ersetzen Sie Folgendes:
PROJECT_ID: Ihre Projekt-ID.USER_IDENTIFIER: Die Kennung für Ihr Nutzerkonto . Beispiel:myemail@example.comROLE: Die IAM-Rolle, die Sie Ihrem Nutzerkonto zuweisen.
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 auf GitHubREADME.
C#
Install-Package Google.Cloud.PubSub.V1 -Pre
Go
Eine Liste der unterstützten Laufzeiten finden Sie unter Unterstützte Go-Versionen.
go get cloud.google.com/go/pubsub/v2
Java
Wenn Sie Maven verwenden, fügen Sie Ihrer Datei pom.xml den folgenden Code hinzu. Weitere Informationen zu BOMs finden Sie unter The Google Cloud Platform Libraries BOM.
Wenn Sie Gradle verwenden, fügen Sie den Abhängigkeiten Folgendes hinzu:
Wenn Sie sbt nutzen, fügen Sie den Abhängigkeiten Folgendes hinzu:
Wenn Sie Visual Studio Code oder IntelliJ verwenden, können Sie Ihrem Projekt mithilfe der folgenden IDE-Plug-ins Clientbibliotheken hinzufügen:
Diese Plug-ins bieten zusätzliche Funktionen wie die Schlüsselverwaltung für Dienstkonten. Einzelheiten finden Sie in der Dokumentation der einzelnen Plug-ins.
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 Inhalte darin veröffentlichen.
Verwenden Sie den folgenden gcloud pubsub topics create-Befehl, um ein Thema mit dem Namen my-topic zu erstellen. Ändern Sie den Namen des Themas nicht, da er im restlichen Tutorial 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
Nachrichten veröffentlichen
Bevor Sie die folgenden Beispiele ausführen, müssen Sie alle erforderlichen Werte, die im Code markiert sind, Kommentarzeichen entfernen 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 für Ihre Themen-ID.
Python
C++
C#
Go
Java
Node.js
Node.js
PHP
Ruby
Nachrichten empfangen
Richten Sie einen Abonnenten ein, um die Nachrichten abzurufen, die Sie gerade veröffentlicht haben. 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, Kommentarzeichen entfernen 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 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)
- Damit Ihrem Google Cloud Konto die in dieser Anleitung verwendeten Ressourcen nicht 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: Widerrufen Sie die von Ihnen erstellten Anmeldedaten für die Authentifizierung und löschen Sie die lokale Datei mit den Anmeldedaten:
gcloud auth application-default revoke
-
Optional: Widerrufen Sie Anmeldedaten von der gcloud-CLI.
gcloud auth revoke
Nächste Schritte
Weitere Informationen zu den auf dieser Seite beschriebenen Pub/Sub-Konzepten
Hier erfahren Sie, wie Sie ein Pub/Sub-System mit einem Publisher und mehreren Abonnenten erstellen. Dabei wird eine Publisher-Anwendung erstellt, die in zwei separate Abonnentenanwendungen veröffentlicht.
Probieren Sie eine andere Pub/Sub-Kurzanleitung aus, die die gcloud CLI oder die Konsole verwendet.