はじめに:SAP Alert Notification Service for SAP BTPとは
SAP社のエンタープライズPaaS製品である、SAP Business Technology Platform(BTP) で業務アプリケーションを開発している@fussasyです。
SAP BTPで提供するサービスの一つである「Alert Notification Service」はBTP開発においては必須です。Alert Notification Serviceは、リアルタイムに通知や警告を送信するための共通APIを作成・提供するサービスです。これは外部のメールやチャットサービス(Slack等)へ発信する設定が可能です。主に、Java等で開発しSAP BTPにデプロイしたアプリケーションをAlert Notification ServiceにBindし、何かしらの情報を通知させるという利用の仕方をします。ちなみに、Alert Notification Serviceは再試行、フォールバックや送信順序についての設定も可能です。
今回は、Japan SAP Users' Group(JSUG)でのハンズオンで学んだ内容をベースに、メールやSlackでの通知設定を整理します。
Alert Notificationの内容をSlackに通知する設定手順
SAP BTP Trialアカウントを利用してAlert Notification ServiceをSlackやメールに通知する設定手順を整理します。
①Alert Notification Serviceのインスタンスを作成する
trialのサブアカウントに入ります。
SAP BTPコックピッドでAlert Notification Serviceのインスタンスを作成します。(Instance Nameは任意)
インスタンスを作成しましたら、Manage Instanceに移動します。
②Alert Notification ServiceのManage InstanceでActionを作成する
まずは、Actionを作成します。ここでは、どういったサービスに配信するのか、配信するアドレス、タイトルや内容等を編集し設定することができます。
Actionsを選択 → Createを選択すると以下の選択画面が表示されます。メール通知設定をする場合はEmail、SlackであればSlackを選択してください。
Nextを押下すると以下の画面に移ります。配信したい先のメールアドレスを入力してください。
Slackの場合、Nextを押下すると以下の画面に移ります。
SlackのApp DirectoryでIncoming Webhookで配信したいチャンネルを選択して追加し、Webhook URLを取得してください。これをSlackで設定するURL Addressに設定します。
補足ですが、最初のAction TypeでTeams等を選択した場合も、同様にTeams等においてIncoming WebhookでURLを発行して設定すれば大丈夫です。
Actionを有効にする場合、メールであれば設定したメールアドレス宛に有効化に関するメールが届きますので、有効化を実施してください。
他に、作成済のAction一覧から、Actionを選択して個別に有効・無効とすることもできます。
③Alert Notification ServiceのManage InstanceでConditionを作成する
次に、Condtionを作成します。条件に一致すれば情報が配信されるようになります。Conditionsを選択 → Createを選択すると以下の画面が表示されます。
今回は、ユーザーがCloud Foundryスペースに追加されるか、スペースに既に存在するユーザーに、開発者ロールが割り当てられたときをトリガーとするため、Condtionを「eventType」「Is Equal To」「audit.user.space_developer_add」とします。他に、ユーザー削除された場合等、パターン別による条件の追加方法はHelp Portal (Documentation)のSAP Alert Notification for SAP BTPで、Built-In Event → User Lifecycle Eventsの一覧から確認してください。
④Alert Notification ServiceのManage InstanceでSubscriptionを作成する
最後に、Subscriptionを作成します。これに先ほどのActionとCondtionを繋げます。Subscriptionsを選択 → Createを選択すると以下の画面が表示されます。
必須項目を入力し、Createを押下すると以下の画面に移ります。
作成済のConditionを選択し、Assignを押下すると以下の画面に移ります。
作成済のActionを選択し、Assignを押下して設定完了です。
⑤Alert Notification ServiceのManage Instanceでイベントを発火させてみる
作成したSubscriptionが機能するかどうか、イベント発火テストをしてみましょう。
作成済Subscriptionを選択し、Send Test Eventを押下します。
"eventType"を"sampleType"から"audit.user.space_developer_add"に修正して、Sendを押下します。
すると、以下のようなメールが飛んでいることが分かります。
Slackに配信すると以下の様になります。
イベント発火テストがうまくいけば、実際のBTPコックピッド上の行動でイベント発火をしてみましょう。Cloud Foundryのtrialサブアカウントからdevスペースに移動し、Membersを選択してください。Cloud FoundryはUS East (VA) で作成しておりますので、Add Membersで技術ユーザ「sap_cp_us10_ans@sap.com
」を追加します。
もし、US East (VA) でない場合(AzureやAWS Japan(Tokyo)等)、Help Portal (Documentation)の、Built-In Event → User Lifecycle Eventsで、対応するユーザーを確認してください。
その後、新たにメンバーを追加するとイベント発火より、メールやSlackに情報が通知されたことが確認できます。
おわりに
以上、簡単ではありますが、Alert Notification Serviceを利用して、Slackやメールに通知する設定方法の基本的な流れを整理しました。国内だけでなく世界的に見ても、SAP BTPの活用は今後も増え続けていくと確実視されますので、私自身も関連する技術情報を習得しどんどん発信していきたいと思います。