障害発生や処理終了などの通知は、mailto() を用いて電子メールで送ることができます。またKompira Enterprise では、API を持ったメッセージアプリケーションに送信することも可能です。今回は Slack に通知を行ってみましょう。
環境情報
本稿は、以下の環境で検証しています。
ソフトウェア | バージョン |
---|---|
Kompira Enterprise | 1.4.10.post10 |
OS | CentOS 6.10 |
または
ソフトウェア | バージョン |
---|---|
Kompira Enterprise | 1.5.5.post11 |
OS | CentOS 7.8.2003 |
または
ソフトウェア | バージョン |
---|---|
Kompira Enterprise | 1.6.2.post4 |
OS | CentOS 7.8.2003 |
Slack の設定
お使いの Slack のアカウントにメッセージ受信用のチャネルを作成します。今回は #kompira を作成します。
次に Slack に外部からメッセージを送信できるように、”Incoming WebHooks” の設定をします。
「Slack API」にアクセスし、”Creare New App” をクリックします。
“Create an app” が表示されますので、”From scratch” を選択します。
その後、”App Name” に “Kompira2Slack” 、”Pick a workspace to develop your app in:” にご利用の Slack のチームを指定します。
“Add features and functionality” が表示されますので、”Incomming Webhooks” を選択します。
“Activate Incoming Webhooks” を以下のように有効化し、その後 “Add New Webhook to Workspace” をクリックします。
すると、以下のような画面に切り替わりますので、投稿したいチャンネルを選択し、”許可する” を押します。
今回は、”#kompira” を選択します。
画面が切り替わり、”Webhook URL” が表示されます。こちらをコピーしておいてください。
ジョブフローの作成
続いて、Kompira Enterprise 上でジョブフロー「Slackへ通知」を次のように作成します。
| message = "This is a sample line of text. Does it work?" | # Webhook URL | url = "https://hooks.slack.com/services/xxxx/xxxxx/xxxxxxxx" | urlopen( url=url, data={"text": message}, http_method="POST", encode="json", quiet=true ) -> print("Slack へ通知しました。")
ここでパラメータ “url” には、Slack のセットアップ画面で表示された “Webhooks URL” を記載してください。
このジョブフローを実行すると、Slackに次のように投稿されます。
このように、Kompira Enterprise から Slack のチャンネルへの投稿は容易に可能です。
また、これを他のジョブフローから利用する場合には、例えば以下のように呼び出します。
[./Slackへ通知: message="緊急事態: 至急対応してください"]
単純なメッセージ送信以外にもリンク URL の送信やアイコン・色の変更なども行えます。リッチなメッセージ作成の詳細は Slack API の「Messaging for Slack apps」をご参照ください。