ストリームコネクト クイックスタートガイド
このクイックスタートガイドでは、ServiceNow インスタンスと Kafka 環境の間でデータを交換するために、6 つのストリームコネクトプロデューサーとコンシューマをそれぞれ設定して使用する方法の概要について説明します。
- ワークフロースタジオ の Kafka プロデューサーステップ
- ProducerV2 API
- ワークフロースタジオ での Kafka メッセージトリガー
- 抽出変換ロード (ETL) コンシューマー
- 変換マップコンシューマー
- スクリプトコンシューマー
ServiceNow インスタンスを Kafka 環境にリンクするために、ストリームコネクトは Hermes メッセージングサービス を使用します。次の図は、プロデューサーとコンシューマーのそれぞれと、それらが Hermes を介して Kafka 環境 (ここでは 顧客サイト) に接続する方法を示しています。
詳細については、「Apache Kafka のストリームコネクトの使用」および「Hermes Messaging Service」を参照してください。
はじめに
顧客サイトを表すために、このガイドでは、コンピューターで実行される Apache Kafka コマンドラインツールを使用します。このツールで使用する設定パラメーターは、Kafka プロトコルを使用する Application Delivery Controller バージョン 2 (ADCv2) ゲートウェイへの任意のクライアント接続を構成するために使用できます。
指定されたすべてのコマンドは、OpenSSL バージョン (LibreSSL 2.8.3) および Apache Kafka バイナリディストリビューションバージョン kafka_2.13-3.4.0.tgz でテストされています。ただし、すべてのコマンドは、ローカル環境にあるどのバージョンでも機能するはずです。
クイックスタートステップ
このクイックスタートガイドには 5 つのステップがあります。ステップ 1 と 2 では、Hermes への接続を設定してテストする方法について説明します。ステップ 3 ~ 5 では、ストリームコネクトの各プロデューサーとコンシューマーを構成して使用しデータを送受信する方法を示します。
- ADCv2 ゲートウェイは相互認証を使用して要求を認証するため、最初のステップでは、お気に入りの Kafka クライアントで使用するキーストアとトラストストアを作成します。次のページでは必要な証明書を作成する方法を示しています:Hermes メッセージングサービス への安全な接続の設定
- Hermes への安全な接続を設定した後、 ADCv2 ゲートウェイを介して Hermes への接続をテストすることで、キーストアとトラストストアが正しく生成されていることを確認します。
- これで、Kafka メッセージトリガーとスクリプトコンシューマーを使用してメッセージを消費する を実行できます。このページの前半では、ワークフロースタジオ で Kafka メッセージトリガーを使用して Kafka からメッセージを取得する方法を説明します。後半では、スクリプトコンシューマーを使用してメッセージを取得する方法を説明します。
- ETL および変換マップコンシューマーを使用したデータのインポート を実行します。ETL 定義と変換マップは、スケジュール済みインポートを通じてデータを取得するときに使用する変換ロジックを指定します。同じ ETL 定義と変換マップを使用して、Kafka を介して受信したイベントを変換できます。注:ETL コンシューマーを使用するには、強力なインポートセットトランスフォーマーが必要です。同様に、変換マップコンシューマーを使用するには、変換マップが必要です。
- 最後に、Kafka プロデューサーステップと ProducerV2 API を使用したメッセージの公開 を実行できます。このページでは、ワークフロースタジオ の Kafka プロデューサーステップと ProducerV2 API の両方を使用して、Kafka にメッセージをプッシュする方法について説明します。
Hermes メッセージングサービス への安全な接続の設定
ServiceNow® インスタンス署名証明書を生成して Kafka トピックを保護します。
始める前に
Hermes メッセージングサービス を設定するには、ネットワーク管理者および Kafka 管理者との調整が必要です。ネットワークアドミニストレーターと協力して必要なセキュリティ証明書を取得し、必要なポートを開きます。Kafka アドミニストレーターと協力して、Kafka 環境が正しく構成され、アプリケーションが標準の Kafka プロトコルを使用して Hermes メッセージングサービス に接続できることを確認します。
次のセットアップが行われていることを確認します。
- Hermes メッセージングサービス がアクティブ化されている。「Activating the Hermes Messaging Service」を参照してください。
- キー管理フレームワークプラグイン (com.glide.kmf.global) がアクティブ化されている。
- 証明書 [sys_kmf_certificate] テーブルに、ServiceNow インスタンスのルート CA 証明書が含まれている。
- インスタンスがカスタム URL で構成されていない。カスタム URL が、インスタンス PKI 証明書ジェネレーターではサポートされていない。
必要なロール:hermes_admin、sn_kmf.cryptographic_manager または admin
KMF ロールのアサインの詳細については、「Roles installed with Key Management Framework」を参照してください。
手順
タスクの結果
これで、Hermes メッセージングサービス への安全な接続を作成できます。
ADCv2 ゲートウェイを介した Hermes への接続のテスト
ADCv2 ゲートウェイを介して Hermes への接続をテストすることで、キーストアとトラストストアが正しく生成されていることを確認します。
始める前に
- 必要なロール: integration_hub_admin
手順
Kafka メッセージトリガーとスクリプトコンシューマーを使用してメッセージを消費する
ワークフロースタジオ の Kafka メッセージトリガーとスクリプトコンシューマーを使用して、Hermes からメッセージを取得します。
始める前に
- 必要なロール: integration_hub_admin
- このセクションの最初の部分では、 ワークフロースタジオ で Kafka メッセージトリガーを使用してメッセージを消費する方法を説明します。トリガーの詳細については、「Create a flow with a Kafka Message trigger」を参照してください。
- このセクションの後半では、スクリプトコンシューマーを使用してメッセージを消費する方法を説明します。詳細については、「スクリプトコンシューマーの構成」を参照してください。
手順
-
メッセージを消費するトピックを作成します。
-
トピックからメッセージを消費するフロートリガーを作成します。
-
Kafka コマンドラインツールを使用して、トピックにメッセージを公開します。
-
トピックからメッセージを消費するフローコンシューマーを作成します。
ETL および変換マップコンシューマーを使用したデータのインポート
ETL 定義と変換マップを使用して、Kafka イベントを処理します。ETL 定義と変換マップは、スケジュール済みインポートを通じてデータを取得するときに使用する変換ロジックを指定します。同じ ETL 定義と変換マップを使用して、Kafka を介して受信したイベントを変換できます。
始める前に
- 必要なロール: integration_hub_admin
- このセクションの最初の部分では、ETL コンシューマーを使用してメッセージを消費する方法を説明します。ETL コンシューマーを使用するには、強力なインポートセットトランスフォーマーが必要です。
- このセクションの後半では、変換マップコンシューマーを使用してメッセージを消費する方法を説明します。変換マップコンシューマーを使用するには、変換マップが必要です。
手順
-
ETL および変換マップのコンシューマーメッセージを消費するトピックを作成します。
-
トピックからデータを消費する ETL コンシューマーを作成します。
-
topic2 にメッセージを公開します。
-
データを消費する変換マップコンシューマーを作成します。
-
topic2 にメッセージを公開します。
Kafka プロデューサーステップと ProducerV2 API を使用したメッセージの公開
ServiceNow から Hermes にデータをプッシュし、Kafka コンシューマーが読み取れるようにします。
始める前に
- 必要なロール: integration_hub_admin
- このセクションの最初の部分では、 ワークフロースタジオ の Kafka プロデューサーステップを使用して Hermes にメッセージを公開する方法を説明します。ステップの詳細については、「Kafka Producer step」を参照してください。
- このセクションの後半では、ProducerV2 API を使用してメッセージを公開する方法を説明します。詳細については、「ProducerV2 API」を参照してください。
- すべてのメッセージを受信するには、異なるデータセンターに対して 2 つのコンシューマーを実行する必要があります。詳細については、「Consume test messages from a Hermes topic using the Kafka client」を参照してください。
手順
-
メッセージを受信するために、2 つのコンシューマーを起動します。
-
フローステップを使用して、インスタンスからメッセージを公開します。
-
スクリプトを使用して、インスタンスからメッセージを公開します。