Zum Inhalt springen

Veröffentlichen und Empfangen von Google Pub/Sub-Nachrichten in Jitterbit Studio

Einführung

Google Cloud Pub/Sub ist ein verwalteter Messaging-Dienst, der Systeme entkoppelt, indem er Nachrichten über Themen und Abonnements weiterleitet. Ein Publisher schreibt Nachrichten in ein Thema; ein oder mehrere Abonnenten empfangen diese Nachrichten über Abonnements, die mit diesem Thema verbunden sind.

Der Google Pub/Sub-Connector bietet Aktivitäten für beide Seiten dieses Musters:

  • Veröffentlichen: Verwenden Sie die Nachricht veröffentlichen-Aktivität, um Nachrichten von einer Studio-Operation in ein Pub/Sub-Thema zu schreiben, zum Beispiel wenn ein Datensatz in einem Quellsystem erstellt wird und nachgelagerte Dienste benachrichtigt werden müssen.
  • Empfangen: Verwenden Sie die Nachricht abrufen-Aktivität, um ein Abonnement auf ausstehende Nachrichten zu überprüfen, und verwenden Sie dann die Nachricht bestätigen-Aktivität, um zu bestätigen, dass jede Nachricht verarbeitet wurde.

Dieser Leitfaden behandelt beide Muster. Für die ereignisgesteuerte Nachrichtenverarbeitung (bei der Studio kontinuierlich hört, anstatt zu pollieren), siehe die Nachricht hören-Aktivität Referenz, die einen privaten Agenten-Cluster mit spezifischer Netzwerkkonfiguration erfordert.

Dieser Leitfaden geht von Folgendem aus:

  • Ein Google Cloud-Dienstkonto mit aktivierter Pub/Sub-API und zugewiesenen entsprechenden Rollen, wie in den Google Pub/Sub-Voraussetzungen beschrieben.
  • Das Thema und das Abonnement existieren bereits in Google Pub/Sub.

Teil 1: Konfigurieren der Google Pub/Sub-Verbindung

  1. Öffnen Sie in Studio Ihr Projekt und gehen Sie zum Projektendpunkte und -connectoren-Tab in der Design-Komponentenpalette.

  2. Klicken Sie auf den Google Pub/Sub-Connector, um die Verbindungs-Konfiguration zu öffnen.

  3. Verbindungsname: Geben Sie einen eindeutigen Namen ein (zum Beispiel Google Pub/Sub). Der Name darf keine Schrägstriche oder Doppelpunkte enthalten.

  4. Projekt-ID: Geben Sie den Wert project_id aus der JSON-Datei der Dienstkonten-Anmeldeinformationen ein.

  5. Client-E-Mail: Geben Sie den Wert client_email aus der JSON-Datei der Anmeldeinformationen ein.

  6. Private Schlüssel-String: Geben Sie den Wert private_key aus der JSON-Datei der Anmeldeinformationen ein, formatiert als:

    -----BEGIN PRIVATE KEY-----<private_key>-----END PRIVATE KEY-----
    

    Hinweis

    Der Wert private_key in der JSON-Datei verwendet \n, um Zeilenumbrüche darzustellen. Ersetzen Sie jedes \n durch einen tatsächlichen Zeilenumbruch, bevor Sie ihn in dieses Feld einfügen. Wenn der Schlüssel mit den wörtlichen \n-Zeichen eingefügt wird, gibt der Verbindungstest einen Ungültige PKCS#8-Daten-Fehler zurück.

  7. Klicken Sie auf Test, um die Verbindung zu überprüfen.

  8. Klicken Sie auf Änderungen speichern.

Teil 2: Eine Nachricht an ein Thema veröffentlichen

Die Nachricht veröffentlichen-Aktivität ist eine Zielaktivität. Verwenden Sie sie am Ende einer Transformation, um Daten als Nachricht an ein Pub/Sub-Thema zu schreiben.

Entwurfsmuster

flowchart LR A[Quellaktivität] --> B[Transformation] --> C[Nachricht veröffentlichen-Aktivität]

Der Vorgang beginnt mit einer Quellaktivität, die die zu veröffentlichenden Daten bereitstellt. Dies kann jede Aktivität sein, die Daten zurückgibt, wie z. B. eine Datenbank- oder Salesforce Abfrage-Aktivität, eine Dateiquelle oder die Antwort eines anderen Connectors. Die Transformation in Schritt 2 ordnet diese Quelldaten der Nachricht veröffentlichen-Anfrage zu. Die folgenden Schritte gehen davon aus, dass bereits eine Quellaktivität im Vorgang vorhanden ist; für die Einrichtung der Quellaktivität siehe die entsprechende Dokumentation des Connectors.

Schritt 1: Konfigurieren Sie die Nachricht veröffentlichen-Aktivität

  1. Ziehen Sie auf der Entwurfskanvas eine Nachricht veröffentlichen-Aktivität aus der Google Pub/Sub-Verbindung auf die Leinwand.

  2. Name: Geben Sie einen beschreibenden Namen ein (zum Beispiel Bestellung erstellt veröffentlichen).

  3. Thema auswählen: Wählen Sie aus, wie das Thema angegeben werden soll:

    • Vorhandenes Thema auswählen: Wählen Sie aus einer Liste von Themen, die aus Ihrem Google Cloud-Projekt geladen wurden. Erfordert die Berechtigung pubsub.topics.list für das Dienstkonto.
    • Thema manuell angeben: Geben Sie den Themenname direkt ein. Verwenden Sie dies, wenn der Themenname dynamisch ist oder das Dienstkonto keine Listenberechtigung hat.
  4. Thema: Geben Sie den Themenname ein oder wählen Sie ihn aus (zum Beispiel order-events).

  5. Klicken Sie auf Weiter, überprüfen Sie das Anforderungsschema und klicken Sie dann auf Fertig.

Schritt 2: Transformation zuordnen

  1. Fügen Sie einen Transformations-Schritt zwischen der Quellaktivität und der Nachricht veröffentlichen-Aktivität hinzu.

  2. Öffnen Sie die Transformation. Ordnen Sie die Datenfelder von der Quelle dem Anforderungsschema der Nachricht veröffentlichen-Aktivität zu.

    Das Anforderungsschema enthält einen body-Knoten für die Nachrichtenlast. Wenn das Thema ein konfiguriertes Schema in Google Pub/Sub hat, spiegelt der body-Knoten dieses Schema wider. Wenn kein Schema konfiguriert ist, akzeptiert body einen Stringwert; serialisieren Sie Ihre Daten in JSON, bevor Sie sie zuordnen:

    JSONStringify($source_data)
    
  3. Bereitstellen und ausführen der Operation, um eine Nachricht zu veröffentlichen.

Teil 3: Nachrichten von einem Abonnement empfangen und bestätigen

Das Empfangen von Nachrichten erfordert zwei Operationen: eine zum Abrufen ausstehender Nachrichten von einem Abonnement und eine zum Bestätigen dieser nach der Verarbeitung. Nicht bestätigte Nachrichten werden von Pub/Sub erneut zugestellt, nachdem die Bestätigungsfrist abgelaufen ist.

Entwurfsmuster

flowchart LR A[Nachricht abrufen-Aktivität] --> B[Transformation] --> C[Zielaktivität] B -->|Bei Erfolg| D[Transformation] --> E[Nachricht bestätigen-Aktivität]

Schritt 1: Konfigurieren Sie die Nachricht abrufen-Aktivität

  1. Ziehen Sie auf der Entwurfskanvas eine Nachricht abrufen-Aktivität von der Google Pub/Sub-Verbindung auf die Leinwand.

  2. Name: Geben Sie einen beschreibenden Namen ein (zum Beispiel Bestellungen abrufen).

  3. Abonnement auswählen: Wählen Sie Vorhandenes Abonnement auswählen oder Abonnement manuell angeben, und geben Sie dann den Abonnementsnamen ein oder wählen Sie ihn aus.

  4. Anzahl der Nachrichten: Geben Sie die Anzahl der Nachrichten an, die pro Ausführung der Operation abgerufen werden sollen (1–100, Standard 1). Setzen Sie dies auf die Batchgröße, die Ihre nachgelagerte Verarbeitung bewältigen kann.

  5. Bestätigungsfrist in Sekunden: Legen Sie optional fest, wie lange Pub/Sub die Nachricht hält, bevor sie erneut zugestellt wird, wenn sie nicht bestätigt wird (1–600 Sekunden). Lassen Sie das Feld leer, um die konfigurierte Frist des Abonnements zu verwenden.

  6. Klicken Sie auf Weiter, überprüfen Sie das Antwortschema und klicken Sie dann auf Fertig.

Schritt 2: Verarbeiten Sie die Nachrichten in einer Transformation

  1. Fügen Sie einen Transformations-Schritt nach der Nachricht abrufen-Aktivität hinzu.

  2. Öffnen Sie die Transformation und ordnen Sie die Nachrichtenfelder aus dem Antwortschema dem Ziel zu.

    Das Antwortschema enthält ein messageId-Feld und ein body-Feld für die Nachrichtenlast. Wenn der Nachrichteninhalt JSON ist, deserialisieren Sie ihn in der Transformation:

    JSONParser(Source.body)
    

    Speichern Sie die messageId (oder das ackId-Feld) in einer globalen Variablen, damit der Bestätigungs-Schritt darauf zugreifen kann:

    $ack_id = Source.ackId;
    

Schritt 3: Konfigurieren Sie die Bestätigungsnachrichten-Aktivität

Nachdem die Nachrichten verarbeitet wurden, bestätigen Sie sie, um eine erneute Zustellung zu verhindern.

  1. Ziehen Sie auf der Entwurfstafel eine Bestätigungsnachricht-Aktivität aus der Google Pub/Sub-Verbindung auf die Tafel.

  2. Name: Geben Sie einen beschreibenden Namen ein (zum Beispiel Bestätigen von Bestellereignissen).

  3. Wählen Sie Abonnement: Wählen Sie dasselbe Abonnement, das in der Nachricht abrufen-Aktivität verwendet wird.

  4. Klicken Sie auf Weiter, überprüfen Sie das Schema und klicken Sie dann auf Fertig.

  5. Fügen Sie einen Transformations-Schritt zwischen der Verarbeitungs-Transformation und der Bestätigungsnachricht-Aktivität hinzu. Ordnen Sie den ackId-Wert, der in ack_id gespeichert ist, dem Bestätigungsanforderungsschema zu.

  6. Konfigurieren Sie in den Betriebseinstellungen die Bestätigungsnachricht-Operation so, dass sie Bei Erfolg der Verarbeitungsoperation ausgeführt wird.

Warnung

Bestätigen Sie immer Nachrichten nach erfolgreicher Verarbeitung. Wenn die Operation vor der Bestätigung fehlschlägt, stellt Pub/Sub die Nachricht nach der Bestätigungsfrist erneut zu. Gestalten Sie Ihre Verarbeitungslogik so, dass sie idempotent ist, damit erneut zugestellte Nachrichten keine doppelten Nebenwirkungen verursachen.

Überprüfen Sie die Integration

Veröffentlichen: Senden Sie einen Testdatensatz durch die Operation und überprüfen Sie in der Google Cloud Console (Pub/Sub > Themen > [Themenname]), dass die Nachrichtenanzahl gestiegen ist. Alternativ verwenden Sie das Nachricht abrufen-Muster, um die Nachricht zurückzuholen und die Last zu bestätigen.

Empfangen: Veröffentlichen Sie eine Testnachricht im Thema der Subscription über die Google Cloud Console (Pub/Sub > Themen > [Thema-Name] > Nachricht veröffentlichen). Führen Sie die Nachricht abrufen-Operation aus und überprüfen Sie die Betriebsprotokolle, um zu bestätigen, dass die Nachricht abgerufen wurde. Vergewissern Sie sich, dass das Ziel mit den erwarteten Daten geschrieben wurde, und bestätigen Sie dann, dass die Nachricht nicht mehr in der Subscription erscheint (was eine erfolgreiche Bestätigung anzeigt).

Wenn der Verbindungstest fehlschlägt, überprüfen Sie, ob dem Dienstkonto die richtigen Rollen zugewiesen sind, wie in den Google Pub/Sub-Voraussetzungen beschrieben.