Verwenden Sie den Kafka-Nachrichtenauslöser und den Skriptverbraucher, um Nachrichten zu verbrauchen

  • Freigeben Version: Yokohama
  • Aktualisiert 30. Januar 2025
  • 3 Minuten Lesedauer
  • Rufen Sie Nachrichten aus Hermes mit dem Auslöser „Kafka-Nachricht“ in Workflow-Studio und dem Skript-Verbraucher ab.

    Vorbereitungen

    Prozedur

    1. Erstellen Sie ein Thema, um Nachrichten zu verarbeiten.
      1. Verwenden Sie den folgenden Befehl, um ein Thema in Hermes zu erstellen.
        bin/kafka-topics.sh --create --command-config config/bootcamp.properties  --bootstrap-server <instance name>.service-now.com:4000,<instance name>.service-now.com:4001,<instance name>.service-now.com:4002, <instance name>.service-now.com:4003 --topic snc.<instance name>.topic1
        Ersetzen Sie unbedingt<instance name> mit dem Namen Ihrer Instanz.
      2. Um das Thema anzuzeigen, melden Sie sich bei der Instanz an, und navigieren Sie zu Alle > IntegrationHub > Stream Connect > Themen.
        Hinweis:
        Das Erstellen eines Themas dauert ungefähr 10 Minuten.
    2. Erstellen Sie einen Flow-Auslöser, um Nachrichten aus dem Thema zu verarbeiten.
      1. Navigieren zu Alle > Prozessautomatisierung > Flow Designer.
      2. Auswahlvorgang Neu erstellen > Flow.
      3. Geben Sie im Formular „Flow-Eigenschaften“ einen Namen für Ihren Flow ein, und geben Sie dann Absendenein.
        In diesem Beispiel wird der Name Topic1 Consumerverwendet.
      4. Wählen Sie im Abschnitt „Auslöser“ Auslöser hinzufügenund dann Kafka-Nachricht als Auslösertyp aus.
        Kafka-Nachricht ist der Auslösertyp für den Flow.
      5. Wählen Sie das Thema 1 aus.
        Wählen Sie topic1 für das Feld Thema aus.

        Sie können das Lupensymbol verwenden, um die Liste der verfügbaren Themen anzuzeigen.

      6. Navigieren Sie im Abschnitt Aktionen des Flows zu Aktion, Flow-Logik oder Subflow hinzufügen > Flow-Logik > For Each.
      7. Ziehen Sie die Datenpille Nachrichten in das Feld Elemente, und wählen Sie Fertigaus.
      8. Navigieren Sie im Abschnitt Aktionen des Flows zu Aktion, Flow-Logik oder Subflow hinzufügen > Aktion > ServiceNow Core > Protokoll.
      9. Ziehen Sie die Datenpille Nutzlast in das Feld Nachricht, und wählen Sie Fertigaus.
        Thema 1 Verbraucher-Flow-Auslöser.
      10. Speichern Sie den Flow-Auslöser.
      11. Wechseln Sie zur Tabelle „Einstellungen“ [sys_flow_execution_setting], um die Berichterstellung für diesen Flow zu aktivieren.
      12. Erstellen Sie einen neuen Eintrag, und aktivieren Sie die Berichterstellung für den oben erstellten Flow.
        Es wird ein neuer Einstellungsdatensatz erstellt, um die Berichterstellung für den Flow zu aktivieren.
      13. Navigieren Sie zurück zu Ihrem Flow, und wählen Sie Aktivierenaus.
      14. Um Ihr Themenabonnement anzuzeigen, navigieren Sie zu Alle > Integrations-Hub > Stream Connect > Abonnements.
        Das Abonnement für das topic1-Thema.
    3. Veröffentlichen Sie mit dem Kafka-Befehlszeilentool Nachrichten im Thema.
      1. Führen Sie den folgenden Befehl aus, um Nachrichten für das Thema zu veröffentlichen.
        bin/kafka-console-producer.sh --topic snc.<instance name>.topic1  --producer.config  config/bootcamp.properties  --bootstrap-server <instance name>.service-now.com:4000,<instance name>.service-now.com:4001,<instance name>.service-now.com:4002,<instance name>.service-now.com:4003

        Ersetzen Sie unbedingt<instance name> mit dem Namen Ihrer Instanz.

        Dieser Befehl fordert Sie zur Eingabe von Nachrichten auf. Fügen Sie einige Beispielnachrichten hinzu. In diesem Beispiel werden die folgenden Nachrichten verwendet.
        • Testnachricht1
        • Testnachricht2
        • Testnachricht3
        Sie sollten die Nachrichten in etwa einer Minute erhalten.
      2. Navigieren Sie zurück zum Flow, und wählen Sie Ausführungenaus.
        Wählen Sie Ausführungen aus, um zur Flow-Ausführungsansicht zu navigieren.
      3. Öffnen Sie die Flow-Ausführung.
        Ausführungsdetails für den Flow.
      4. Um die Statistiken für dieses Abonnement anzuzeigen, navigieren Sie zu Alle > Integrations-Hub > Stream Connect > Abonnements, öffnen Sie das Abonnement, und wechseln Sie zur Statistikansicht.
        Die Kafka-Statistiken für das Abonnement.
    4. Erstellen Sie einen Skript-Verbraucher, um Nachrichten aus dem Thema zu verarbeiten.
      1. Navigieren zu IntegrationHub > Verbraucher > Skript-Verbraucher.
      2. Wählen Sie Neu.
      3. Geben Sie im Feld Name einen Namen für Ihren Skriptverbraucher ein.
        In diesem Beispiel wird Topic1 Consumerverwendet.
      4. Legen Sie das Skript so fest, dass die Nachricht protokolliert wird, indem Sie im Skriptfeld die folgende Logik hinzufügen.
        for (var i = 0; i < messages.length; i++) {
              gs.info('Received message ' + JSON.stringify(messages[i].message));
         }
        
        Kafka-Skriptverbraucher, der das Skript im Feld „Ereignisverbraucher“ anzeigt.
      5. Speichern Sie das Formular.
      6. Wählen Sie im Abschnitt „Zugehörige Links“ Neu, um einen Kafka-Stream zum Verwenden der Nachrichten hinzuzufügen.
      7. Legen Sie im Formular „Kafka-Stream“ die folgenden Feldwerte fest.
        • Name des Streams „Thema1
        • Thema zum zuvor erstellten Thema, topic1.
        • Max. Gleichzeitigkeit bis 1.
        • Verwendung von für alle im Thema gespeicherten Nachrichtenstarten. Mit dieser Option können Sie die bereits in diesem Thema veröffentlichten Nachrichten lesen.
        • Nachrichtenverarbeitungautomatisch optimieren.
        Der Kafka Stream-Datensatz.
      8. Wählen Sie unter Zugehörige Links den Link Aktivieren aus.
        Sie sollten das aktivierte Abonnement sehen können.
      9. Um die Nachrichten anzuzeigen, navigieren Sie zu Alle > Systemprotokolle > Systemprotokoll und filtern Sie Nachrichten, die mit Nachricht Empfangen beginnen.
        Liste der empfangenen Nachrichten.
      10. Sie sollten alle Nachrichten nach 1 Minute sehen.

    Nächste Maßnahme

    Verwenden Sie die ETL- und Transformationszuordnungs-Verbraucher, um Daten zu importieren.