scalaでbacklogの通知bot作ったで

24
ScalaでBacklogの 通知bot作ったで Abe Asami

Upload: asami-abe

Post on 26-Jan-2017

518 views

Category:

Engineering


0 download

TRANSCRIPT

ScalaでBacklogの 通知bot作ったでAbe Asami

自己紹介

Abe Asami “きの子 ” (大阪のフリーランスプログラマ)

http://nocono.net/@aa7thScala、Andorid(Java/Kotlin) Scala関西やってます

• 2016/10/8 (土) 大阪産業創造館 にて開催!

http://summit.scala-kansai.org

PlayFramework翻訳 少しお手伝いしています

• 私は最近サボり気味ですが・・・

• Gitterチャンネル

• https://gitter.im/playframework-ja/translation-project

今日の内容

• Scala関西SummitのタスクはBacklogで管理しています。

• Backlogの更新をSlackへ通知するbotをScalaでつくってAWS Lambdaで動かしているので、その紹介をします。

AWS Lambda採用の経緯

• 去年はHeroku+hubotで通知botを作っていたけど、フリープランが24時間うごかなくなった。

• 「AWS LambdaいいよLambda!Lambdaでやりなよ!」って知人にいわれた。

• よーし!せっかくだしScalaで作ってLambdaで動かしてやんよ!

構成

準備

AWS Lambda + Gateway準備

• 詳細は省略

• Slackの Incoming Webhooks は application/x-www-form-urlencoded なので、扱いやすいようにGatewayのMapping Templates にJsonに変換するスクリプトを書いた。

Slack Incoming Webhooks

Scalaプロジェクト作成

• 素のSBTプロジェクトから、がりがり作りました。 (activator new)

• 参考

• Writing AWS Lambda Functions in Scala | AWS Compute Blog https://aws.amazon.com/jp/blogs/compute/writing-aws-lambda-functions-in-scala/

実際のコード

テスト

BacklogのWebhookテスト

• Backlogの プロジェクト設定 → Webhookでテスト送信できる

実際のWebhook送信履歴

取得したJSONを使ってテスト作成

デプロイ

jarを作成してアップロード

• sbt-assemblyを使用してjarファイル作成

• https://github.com/sbt/sbt-assembly

• AWS Lambdaにアップロード

• AWS CLIを使うとお手軽

実際の画面

完成!

まとめ

• Botを作るときは是非 AWS Lambda + ScalaかGASで!

ご静聴ありがとう ございました

\10/8 Scala関西Summit ぜひ来てね!/