AWS Lambdaを使ってSlackからBacklogの情報を取得してみた

はいどーも!
てりやきです。

とにかくAWS Lambdaを使いたいと思い、
しかし使って一体何を作るんだと考えた結果、
本投稿のタイトルみたいなことをしてみました。

 

何が出来上がったか

 

自分のSlackの任意のチャンネルで、「shinchoku *」
(*にはbacklogのイシュー名を入力)
と入力すると、そのイシューのタイトル、ステータス、アサイニー、期限日が返ってくるというチャットボット(?)を作ることができました。

———————–
Subject: ゆうちょバンク行く
Assignee: teriyakiegg
Status: Open
Due Date: Tue Mar 14 00:00:00 UTC 2017
———————–

↑こんな感じ

↓スクリーンショット

 

ソースコード

 

はGithubにアップしました。

https://github.com/teriyakiegg/lambda-backlog-slack

READMEも書いてみたので、
使い方はこれを読めば分かるはず、です。

 

作った時のメモ

 

『AWS Lambda を使って Slack ボット (命名: Lambot [ランボー]) を低予算で作ろうじゃないか』
http://qiita.com/exabugs/items/e868df55333d0805acb2

Lambdaの設定は主にここを参考にしました。
ただ、LambdaのUIが変わってて結構苦戦しました。
苦戦した時どうやって設定とかしたかはメモしてません:)
とりあえずMapping Templatesが大事です。

 

言語はJavaで以下の記事を参考にしました。

『AWS LambdaがJava対応したので簡単チュートリアル』
http://qiita.com/Keisuke69/items/fc39a2f464d14480a432

Lambda関数ではMap<String,Object>型でSlackのOutgoing Webhooksから送られるPOSTデータを取得できました。

 

あまりよく覚えてませんが、
当時のメモによるとLambda関数実行時外部ライブラリが読み込めなくてハマりました。
maven-shade-pluginを追加していなかったことが原因だったようです。
AWSの公式ドキュメントを読んでハマりを回避。

『Maven および Eclipse IDE を使用した .jar デプロイパッケージの作成 (Java)』
http://docs.aws.amazon.com/ja_jp/lambda/latest/dg/java-create-jar-pkg-maven-and-eclipse.html

 

まとめ

 

進捗を確認する頻度やイシューのステータスの変化具合によってチャットボットに発言するコメントを変えさせるのが今後の課題です。
まずは自分が使うのに便利なものにしてみます。
お暇な方、プルリクお待ちしてます。

 
Posted by てりやき
Twitter→@teriyakiegg

 

<参考URL>

AWS Lambda
https://aws.amazon.com/lambda/

Backlog API
https://github.com/nulab/backlog4j

Slack API (Outgoing Webhooks)
https://api.slack.com/custom-integrations/outgoing-webhooks

Comments are closed.