Kompira Enterprise から Slack に通知する

障害発生や処理終了などの通知は、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」をご参照ください。

TOP