LoginSignup
1
0

More than 1 year has passed since last update.

【IBM Cloud】Event Notificationsを使ってSlackと連携し、通知を飛ばしてみた

Posted at

はじめに

今回はIBM Cloudのサービスの中で、Event NotificationsをSlackと連携し、通知を受けるテストを行ってみました。
まだ一度も触れたことのない初心者目線で記述していますので、初めての方がいたら参考にしていただければと思います。

今回の内容にはIBM Cloudのアカウント(無料利用可能)が前提となっています。

Event Notificationsとは

概要

IBM Cloud® Event Notifications は、 IBM Cloud アカウントで発生する重大なイベントについてユーザーに提供したり、Webhook を使用して自動化アクションをトリガーしたりするルーティング・サービスです。 Monitoringなどの IBM Cloud サービスから、E メール、SMS、Webhook などの通信チャネルにイベント通知をフィルタリングしてルーティングできます。
スクリーンショット 2022-11-21 14.48.47.png

Event Notificationsの概念

  • ソース
    • イベント通知を送信したり Event Notifications サービス内のトピックにイベント通知をパブリッシュしたりする IBM Cloud のサービスまたはリソース
  • 宛先
    • イベント通知の配信ターゲット(Eメール、Webhook、プッシュなどの宛先)
  • トピック
    • トピックによって対象になる一連の着信イベント通知を保持します。 各ソースは、ユーザー定義フィルター経由でトピックに接続されます。 トピックに渡された通知は、サブスクライブしているすべての宛先にプッシュされます。(複数のソースに接続可能)
  • サブスクリプション
    • サブスクリプションによって、トピックを宛先に接続します。 サブスクリプションは 1つのトピックを1つの宛先に接続しますが、トピックには複数の宛先が設定できます。 通知がトピックに到達すると、サブスクライブしているすべての宛先にそのトピックから通知が送信されます。
  • SDK
    • イベント通知でサービスを構成できます。
  • サービス資格情報
    • アプリまたは外部利用者を IBM Cloud サービスに手動で接続する場合は、資格情報の新しいセットを生成できます。
  • プラン
    • プランには無料プランと標準プランがあります。(今回は無料プランにて実施)
      スクリーンショット 2022-11-21 14.57.34.png

Event Notifications インスタンスの作成方法

IBM Cloudのコンソールに入ってカタログをクリックします。
スクリーンショット 2022-11-21 15.01.16.png

Event Notificationsを検索し、アクセスします。
スクリーンショット 2022-11-21 15.01.31.png

ライトプラン選択し、ロケーション、サービス名などを設定します。ここでEndpointなどの設定も可能です。
ロケーションはダラス、ロンドン、フランクフルト、シドニーの中から選べます。
その後、作成ボタンをクリックします。
FireShot Capture 050 - Event Notifications - IBM Cloud - cloud.ibm.com.png

作成されたEvent Notificationsの画面です。
FireShot Capture 049 - IBM Cloud Event Notifications - cloud.ibm.com.png

Slack Webhook設定の流れ

Event NotificationsとSlackを連携するには、SlackのWebhook機能を使います。
(詳しい手順はこちらにも記載されています。)

まず、Slack Help Centerにアクセスし、着信Webhookの設定手順が記載されています。
スクリーンショット 2022-11-21 16.13.16.png

メッセージを投稿する新しいワークスペースを作成していきます。
「Create a new Slack app」をクリックすると、Slack API画面に移ります。
「Create New App」をクリックし、アプリケーション名やSlackのワークスペースを選択します。
その後、「Create App」をクリックすると作成完了です。
スクリーンショット 2022-11-21 16.16.21.png
スクリーンショット 2022-11-21 16.16.39.png

アプリケーションを作成したら、「Incoming Webhook」ボタンをクリックします。
スクリーンショット 2022-11-21 16.22.25.png
Incoming Webhooks画面で「Activate Incoming Webhooks」offからonに変えます。
すると、変更すると非表示になっていた画面が表示されるので、
下の「Add New Webhook to Work space」をクリックします。
スクリーンショット 2022-11-21 16.28.07.png
投稿先のチャンネルを選択する画面が表示されるので、プルダウンし任意のチャンネルを選択し許可をクリックします。
スクリーンショット 2022-11-21 16.29.43.png

再度Incoming画面に戻り、Webhook URLが作成されたことが確認できます。
スクリーンショット 2022-11-21 16.32.03.png
一度テストとして、ターミナルにてメッセージを投げてみます。
「Sample curl request to post to a channel」のコマンドをコピーしターミナルに打ちます。

Sample curl request to post to a channel
curl -X POST -H 'Content-type: application/json' --data '{"text":"Hello, World!"}' https://hooks.slack.com/services/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

ターミナルにOK表示がされたら成功した意味であり、SlackにもHello Worldメッセージが届きました。
スクリーンショット 2022-11-21 16.37.42.png
スクリーンショット 2022-11-21 16.37.11.png

これでSlackアプリのWebhookに関する設定は完了です。

IBM Cloudサービスとの連携 - Secrets Managerとの連携

Slackアプリの設定が完了したので、ここからはIBM Cloudのサービスインスタンスと連携し、通知を飛ばしてみます。
Event Notificationsには冒頭で記載したとおり、さまざまなインスタンスと連携することができますが、今回はIBm CloudのSecrets Managerと連携したいと思います。

まず、カタログでSecrets Managerのインスタンスを作成します。Secrets Managerは無料版もありますので試してみましょう。
スクリーンショット 2022-11-22 18.57.01.png
スクリーンショット 2022-11-22 18.57.23.png

その次には、管理画面にてアクセス権限を設定する必要があります。IBM Cloudでのアクセス権限の管理はIBM Cloud Identity and Access Management(IAM)を使いますが、IAMは、IBM Cloud内でユーザーおよび管理対象のリソースを一貫して制御するための仕組みです。
管理画面のIAMタブをクリックします。
スクリーンショット 2022-11-22 18.57.45.png
左メニューの中のアクセス管理タブをクリックし、右側の作成ボタンを押すと以下の画面が表示されます。
ここでソース・サービスをSecrets Manager、ターゲット・サービスをEvent Notificationsに設定し、サービス・アクセス権限はリーダーEvent Source Manager両方チェックします。
スクリーンショット 2022-11-22 19.07.16.png
これでアクセス権限の付与は完了ですが、詳しい内容はこちらに記載されています。

最初作成したEvent Notificationsのインスタンスにアクセスし、通知が流れる道を設定していきます。
まず、ソースタブで先ほどアクセス権限を付与したSecrets Managerが適用・有効化されているか確認を行います。
スクリーンショット 2022-11-22 18.59.00.png

その次は通知の到着地(宛先)の設定を行います。今回はSlackへの通知を行う前提ですので、Slackの設定を行います。
タイプをプルダウンしSlackを設定し、URLにはSlackのWebhook設定時に取得したWebhook URLをコピペします。
その後追加ボタンをクリックします。
スクリーンショット 2022-11-22 18.59.45.png
スクリーンショット 2022-11-22 18.59.57.png

今度はトピックを設定します。
ソースでSecrets Managerのインスタンスを選び、作成ボタンをクリックします。
スクリーンショット 2022-11-22 19.00.25.png

最後にサブスクリプションを設定します。
上で設定したトピック(Secrets Manager)と宛先(Slack)のインスタンスを設定し、添付ファイルの色を設定します。
添付ファイルの色は通知の際にSlackに適用される色ですが、自由に選択可能です。
設定が完了したら作成ボタンをクリックします。
スクリーンショット 2022-11-22 19.00.51.png

これでEvent Notificationsの設定が完了し、Secrets ManagerとSlackが連携されましたので、そのテストを行います。
すでに作成したSecrets Managerインスタンスにアクセスし、左メニューの設定からテスト・イベントの送信をクリックします。
スクリーンショット 2022-11-22 19.01.54.png

設定されていたSlackのワークスペースに通知が来たことが確認できます。
また、サブスクリプションで設定した通知色も赤色になっていることも確認できます。
スクリーンショット 2022-11-22 19.02.29.png

最後に

今回はEvent Notificaionsを使ってSecrets ManagerとSlackを連携し、通知を飛ばす流れについて整理しました。
全く関係性のないサービスをEvent Notificationsを使うことでつながることが非常に興味深く面白い検証でした。
今回のようにSecrets ManagerやSlack以外にも様々なソースと宛先を選択することができるので、ぜひ試してみたらと思います。

参考

IBM Cloud Docs - Event Notifications

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0