アプリケーション通知の構成について学習

送信されたコンテンツを表示できるサブスクリプションでは、OCIイベントのみを使用するのではなく、アプリケーションの構築に集中できます。

クライアント通知の生成をテストする方法は数多くあります。このデモでは、最初にログ・イベントをシミュレートするのみで、要件を適切に満たすために構築されたオープンソースのログ・シミュレータ・ツールを利用できます。もう1つのオプションは、ここで単純なJava/Groovyアプリケーションを使用することです(後者は前者から導出され、簡略化されています)。コード開発はGroovyとともに実装されており、迅速かつ簡単に実行および変更できるようになっています。ただし、コードはJavaに準拠しているため、必要に応じてJavaビルド・プロセスを確立するか、Java Shebang機能を使用するようにコードを変更することができます。この記事の残りの部分では、Groovyの使用を想定します。

必要な設定の構成

一部のサードパーティ・アプリケーションをインストールして構成する必要があります。

JavaをGroovy (バージョン3以上)とともにインストールする必要があります。OCI Java SDKをダウンロードし、Groovyスクリプトと同じフォルダにコピーする必要があります。JavaおよびGroovyを設定する場合は、PATH環境変数に表示できることを確認してください。

すべてがダウンロードされた状態で、OCIに接続して正しい通知トピックにメッセージを送信するために、構成情報の一部を完了する必要があります。最初の部分は、SDKがOCIで接続および認証に使用できる構成ファイルの作成です(簡単にするために、Groovyスクリプトの実行に使用するディレクトリと同じディレクトリにOCI.propertiesという名前を付けることをお薦めします)。その結果、次のようになります。

[DEFAULT]
user=ocid1.user.oc1..aaaaaaaajbbbbbbbbbccccccccccccdddddddddddddd
fingerprint=aa:bb:cc:dd:ee:11:22:33:44:55:66:77:1a:1b:1c:1d
tenancy=ocid1.tenancy.oc1..aaaaaaaajjjjjjkkkkkkkkklllllllmmmmmmmnnn
region=us-ashburn-1
key_file=~/mykey.pem

鍵ファイルを設定するときは、必ずファイル特権が正しいことを確認してください。そうしないと、接続プロセス中にファイルがセキュアでないため拒否されます。

次の構成はクライアント・アプリケーション用であるため、どのトピックと通信するかがわかります。これを行うには、次の環境変数を作成します(Windowsの場合はコマンドset、Linuxの場合はコマンドexportを使用します)。

TOPICOCID=ocid1.onstopic.oc1.iad.oooooooooopppppppppppppqqqqqqqqqqrrrrrrrrssss
OCICONFIGFILE=oci.properties
REGION=us-ashburn-1
CLASSPATH=./lib/*

指定されたトピックOCIDは、以前に作成したトピックのOCIDです。OCICONFIGFILEは、初期化プロセスの一部としてSDKに渡されます。SDK libフォルダを検索するには、GroovyおよびJavaでCLASSPATHが必要です。認証とトピックの構成リージョンが異なる可能性があるため、REGIONを再度提供します。

クライアントの実行

すべてを構成すると、テスト・クライアントを実行できます。

次のコマンドを使用します。

groovy CustomOCINotificationsOutputter.groovy

これで、クライアントからNotificationsトピックに送信される通知が表示され、Slackチャネルにメッセージが送信されます。

お客様について

クライアント・コードはコメントされていますが、その仕組みをすばやく説明します。

Groovyコードには、OCINotificationsOutputterクラスのインスタンスを初期化し、オブジェクト・インスタンスを初期化するmainメソッドを持つ単一のクラスが含まれています。この初期化により、OCIに通知を送信するためのSDKクライアント・オブジェクトが作成されます。

基本的な接続が読み取られると、mainメソッドは、テキスト文字列をNotificationsオブジェクトに送信する無限ループに入ります。これは、出力のバッチに追加されます。この出力を1サイズにハードワイヤリングしたため、SDK静的ファクトリ・メソッドを使用してメッセージをすぐに構築し、SDKを介して関連するOCI APIに呼び出します。5秒間寝ます。SDKクライアントとOCI通知オブジェクトの作成はどちらも、ビルダー設計パターンを大きく使用します。