Kompira

Menu Menu

Enterprise Technical information

外部との連携 KompiraからSlackに通知する

障害発生や処理終了などの通知は、例えばmailto()関数を使うと電子メールで送る事が出来ますが、APIを持ったメッセージアプリケーションに送信することも可能です。今回はSlackに通知を行ってみましょう。  
動作確認環境
ソフトウェア バージョン
Kompira 1.4.10.post10
LinuxOS CentOS6.10
または
ソフトウェア バージョン
Kompira 1.5.5.post7
LinuxOS CentOS7.8.2003
 
  Slackの設定 お使いのSlackのアカウントにメッセージ受信用のチャネルを作成します。今回は#kompiraを作成します。 kompira_channel   次にSlackに外部からメッセージを送信できるように、”Incoming WebHooks”の設定をします。 More > Apps > 検索窓に”incoming webhooks” これでApp Directoryの”Incoming WebHooks”のページが表示されます。 Incoming Webhooks   左の”Add to Slack”ボタンをクリック   Post to channel   “Post to channel”画面で、チャネル名が”#kompira”になっている事を確認して、”Add Incoming Webhooks Integration”ボタンをクリック “Setup Instructions”画面の”Webhook URL”を別途メモ帳などに記録しておいてください。(Kompiraのジョブフローに設定します。) その他の項目は、続く”Integration Setting”も含めて、最低限はデフォルトでも良いですが、必要に応じて変更してください。 ここでは”Customize Name”を”Kompira2Slack”と変更してみます。   Customize Name   設定が完了したら”Save Setting”ボタンをクリックしてください。   Kompiraジョブフローの作成 続いてKompira側にジョブフロー「Slackへ通知」を次の様に作成します。  
|message = "This is a sample line of text. Does it work?"|
|url = "https://hooks.slack.com/services/xxxxxxxxx/xxxxxxxxxx/xxxxxxxxxxxxxxxxxxxxx" | #Webhook URL

# urlopen()を使用する場合
urlopen(url=url, data={"text": message}, http_method="POST", encode="json", quiet=true) ->

# curlコマンドを使用する場合
# ['''curl -X POST -H 'Content-type: application/json' --data '{"text":"$message"}' $url'''] ->
print("Slackへ送信しました。")
  ここでパラメータ”url”には、Slackのセットアップ画面で表示された”Webhooks URL”を記載してください。 このジョブフローを実行すると、Slackに次のように投稿されます。 Entry on Slack このようにKompiraからSlackのチャネルへの投稿は容易に可能です。 これを他のジョブフローから利用する場合には、例えば以下のように呼び出します。  
[./Slackへ通知:message="緊急事態:至急対応してください" ]
  単純なメッセージ送信以外にもリンクURLの送信やアイコン・色の変更なども行えます。リッチなメッセージ作成の詳細はSlack APIの”Message“をご参照ください。

スタートガイド

Kompiraジョブフローの基礎

ジョブフローの簡単な例

Kompiraの機能

外部との連携