SlideShare una empresa de Scribd logo
1 de 24
Descargar para leer sin conexión
ScalaでBacklogの
通知bot作ったで
Abe Asami
自己紹介
Abe Asami “きの子 ” 

(大阪のフリーランスプログラマ)
http://nocono.net/
@aa7th
Scala、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 ぜひ来てね!/

Más contenido relacionado

La actualidad más candente

Scala Warrior and type-safe front-end development with Scala.js
Scala Warrior and type-safe front-end development with Scala.jsScala Warrior and type-safe front-end development with Scala.js
Scala Warrior and type-safe front-end development with Scala.js
takezoe
 
元インフラエンジニアが
Scalaを触ってつまづいたところ。
元インフラエンジニアが
Scalaを触ってつまづいたところ。元インフラエンジニアが
Scalaを触ってつまづいたところ。
元インフラエンジニアが
Scalaを触ってつまづいたところ。
takako onoue
 
関数型もモナドも分からなくてもScalaと言う言語は便利らしい
関数型もモナドも分からなくてもScalaと言う言語は便利らしい関数型もモナドも分からなくてもScalaと言う言語は便利らしい
関数型もモナドも分からなくてもScalaと言う言語は便利らしい
ke-m kamekoopa
 
Scalaで萌える関数型プログラミング[エッセンシャル版]
Scalaで萌える関数型プログラミング[エッセンシャル版]Scalaで萌える関数型プログラミング[エッセンシャル版]
Scalaで萌える関数型プログラミング[エッセンシャル版]
Ra Zon
 
SIerでScalaを使うために私がしたこと
SIerでScalaを使うために私がしたことSIerでScalaを使うために私がしたこと
SIerでScalaを使うために私がしたこと
takezoe
 

La actualidad más candente (20)

20150207 何故scalaを選んだのか
20150207 何故scalaを選んだのか20150207 何故scalaを選んだのか
20150207 何故scalaを選んだのか
 
頑張りすぎないScala
頑張りすぎないScala頑張りすぎないScala
頑張りすぎないScala
 
Scala Warrior and type-safe front-end development with Scala.js
Scala Warrior and type-safe front-end development with Scala.jsScala Warrior and type-safe front-end development with Scala.js
Scala Warrior and type-safe front-end development with Scala.js
 
とりあえず使えるSBT
とりあえず使えるSBTとりあえず使えるSBT
とりあえず使えるSBT
 
Railsエンジニアが サーバーレスアーキテクチャに 手を出したよ - 川崎Ruby会議01
Railsエンジニアが サーバーレスアーキテクチャに 手を出したよ - 川崎Ruby会議01Railsエンジニアが サーバーレスアーキテクチャに 手を出したよ - 川崎Ruby会議01
Railsエンジニアが サーバーレスアーキテクチャに 手を出したよ - 川崎Ruby会議01
 
元インフラエンジニアが
Scalaを触ってつまづいたところ。
元インフラエンジニアが
Scalaを触ってつまづいたところ。元インフラエンジニアが
Scalaを触ってつまづいたところ。
元インフラエンジニアが
Scalaを触ってつまづいたところ。
 
ScalaにまつわるNewsな話
ScalaにまつわるNewsな話ScalaにまつわるNewsな話
ScalaにまつわるNewsな話
 
関数型もモナドも分からなくてもScalaと言う言語は便利らしい
関数型もモナドも分からなくてもScalaと言う言語は便利らしい関数型もモナドも分からなくてもScalaと言う言語は便利らしい
関数型もモナドも分からなくてもScalaと言う言語は便利らしい
 
Scala超入門 - 2014/12/13 Scala関西勉強会
Scala超入門 - 2014/12/13 Scala関西勉強会Scala超入門 - 2014/12/13 Scala関西勉強会
Scala超入門 - 2014/12/13 Scala関西勉強会
 
Scalaで萌える関数型プログラミング[エッセンシャル版]
Scalaで萌える関数型プログラミング[エッセンシャル版]Scalaで萌える関数型プログラミング[エッセンシャル版]
Scalaで萌える関数型プログラミング[エッセンシャル版]
 
Lets scala
Lets scalaLets scala
Lets scala
 
[Scalamatsuri2016]あ、社内コミュニティ
[Scalamatsuri2016]あ、社内コミュニティ[Scalamatsuri2016]あ、社内コミュニティ
[Scalamatsuri2016]あ、社内コミュニティ
 
Dark vol4 for_slideshare
Dark vol4 for_slideshareDark vol4 for_slideshare
Dark vol4 for_slideshare
 
第二回tento.tech定例会
第二回tento.tech定例会第二回tento.tech定例会
第二回tento.tech定例会
 
SIerでScalaを使うために私がしたこと
SIerでScalaを使うために私がしたことSIerでScalaを使うために私がしたこと
SIerでScalaを使うために私がしたこと
 
こわくないScala
こわくないScalaこわくないScala
こわくないScala
 
Overview of Scala ~ Hacker Tackle
Overview of Scala ~ Hacker TackleOverview of Scala ~ Hacker Tackle
Overview of Scala ~ Hacker Tackle
 
ぼくのかんがえたさいきょうの Rails スタートダッシュ
ぼくのかんがえたさいきょうの Rails スタートダッシュぼくのかんがえたさいきょうの Rails スタートダッシュ
ぼくのかんがえたさいきょうの Rails スタートダッシュ
 
Atami
AtamiAtami
Atami
 
iOSエンジニアのためのScala入門
iOSエンジニアのためのScala入門iOSエンジニアのためのScala入門
iOSエンジニアのためのScala入門
 

Destacado

アジャイルプラクティス_プラニングポーカー
アジャイルプラクティス_プラニングポーカーアジャイルプラクティス_プラニングポーカー
アジャイルプラクティス_プラニングポーカー
Yasuyuki Fujikawa
 
因果関係図で現場課題を捉えようワークショップ
因果関係図で現場課題を捉えようワークショップ因果関係図で現場課題を捉えようワークショップ
因果関係図で現場課題を捉えようワークショップ
toshihiro ichitani
 
Instructional Methods Paper Power Point 2
Instructional Methods Paper Power Point 2Instructional Methods Paper Power Point 2
Instructional Methods Paper Power Point 2
perezedaisyrn
 
THE CONCEPT OF THE TARGET PROGRAM FOR COLLECTION, STORAGE AND DISPOSAL OF USE...
THE CONCEPT OF THE TARGET PROGRAM FOR COLLECTION, STORAGE AND DISPOSAL OF USE...THE CONCEPT OF THE TARGET PROGRAM FOR COLLECTION, STORAGE AND DISPOSAL OF USE...
THE CONCEPT OF THE TARGET PROGRAM FOR COLLECTION, STORAGE AND DISPOSAL OF USE...
State Enterprise Ukrecoresursy
 

Destacado (20)

2015/11/15 Javaでwebアプリケーション入門
2015/11/15 Javaでwebアプリケーション入門2015/11/15 Javaでwebアプリケーション入門
2015/11/15 Javaでwebアプリケーション入門
 
makeのススメ
makeのススメmakeのススメ
makeのススメ
 
アジャイルプラクティス_プラニングポーカー
アジャイルプラクティス_プラニングポーカーアジャイルプラクティス_プラニングポーカー
アジャイルプラクティス_プラニングポーカー
 
Earned value management
Earned value managementEarned value management
Earned value management
 
育てる!かんばん - bring up Kanban.
育てる!かんばん - bring up Kanban.育てる!かんばん - bring up Kanban.
育てる!かんばん - bring up Kanban.
 
因果関係図で問題の根本原因を突き止めよう
因果関係図で問題の根本原因を突き止めよう因果関係図で問題の根本原因を突き止めよう
因果関係図で問題の根本原因を突き止めよう
 
第44回勉強会「なぜなぜ分析でスッキリ!問題解決ワークショップ」資料
第44回勉強会「なぜなぜ分析でスッキリ!問題解決ワークショップ」資料第44回勉強会「なぜなぜ分析でスッキリ!問題解決ワークショップ」資料
第44回勉強会「なぜなぜ分析でスッキリ!問題解決ワークショップ」資料
 
Javaプログラミングをスッキリ学ぶ10のコツ
Javaプログラミングをスッキリ学ぶ10のコツJavaプログラミングをスッキリ学ぶ10のコツ
Javaプログラミングをスッキリ学ぶ10のコツ
 
因果関係図で現場課題を捉えようワークショップ
因果関係図で現場課題を捉えようワークショップ因果関係図で現場課題を捉えようワークショップ
因果関係図で現場課題を捉えようワークショップ
 
3 idiots life’s learning
3 idiots   life’s learning3 idiots   life’s learning
3 idiots life’s learning
 
Instructional Methods Paper Power Point 2
Instructional Methods Paper Power Point 2Instructional Methods Paper Power Point 2
Instructional Methods Paper Power Point 2
 
Fizyka
FizykaFizyka
Fizyka
 
Rsi Aegis 8 02 12
Rsi  Aegis 8 02 12Rsi  Aegis 8 02 12
Rsi Aegis 8 02 12
 
Retail
RetailRetail
Retail
 
Dreamworks
Dreamworks Dreamworks
Dreamworks
 
Nahdet El Mahrousa's Incubator Information session
Nahdet El Mahrousa's Incubator Information session Nahdet El Mahrousa's Incubator Information session
Nahdet El Mahrousa's Incubator Information session
 
150603 教育学特殊(学級規模) 第7講
150603 教育学特殊(学級規模) 第7講150603 教育学特殊(学級規模) 第7講
150603 教育学特殊(学級規模) 第7講
 
151202 教育評価論(三田)第9講
151202 教育評価論(三田)第9講151202 教育評価論(三田)第9講
151202 教育評価論(三田)第9講
 
THE CONCEPT OF THE TARGET PROGRAM FOR COLLECTION, STORAGE AND DISPOSAL OF USE...
THE CONCEPT OF THE TARGET PROGRAM FOR COLLECTION, STORAGE AND DISPOSAL OF USE...THE CONCEPT OF THE TARGET PROGRAM FOR COLLECTION, STORAGE AND DISPOSAL OF USE...
THE CONCEPT OF THE TARGET PROGRAM FOR COLLECTION, STORAGE AND DISPOSAL OF USE...
 
Mike baker imagenes
Mike baker imagenesMike baker imagenes
Mike baker imagenes
 

Similar a ScalaでBacklogの通知bot作ったで

ネタじゃないScala.js
ネタじゃないScala.jsネタじゃないScala.js
ネタじゃないScala.js
takezoe
 
Functional Programming in Scala Reading #2
Functional Programming in Scala Reading #2Functional Programming in Scala Reading #2
Functional Programming in Scala Reading #2
Naoyuki Yamada
 
Scala.jsはじめました!
Scala.jsはじめました!Scala.jsはじめました!
Scala.jsはじめました!
K Kinzal
 
Rubyで作るクローラー Ruby crawler
Rubyで作るクローラー Ruby crawlerRubyで作るクローラー Ruby crawler
Rubyで作るクローラー Ruby crawler
Takuro Sasaki
 

Similar a ScalaでBacklogの通知bot作ったで (20)

ScalaでASICやFPGA用の回路を設計するChisel
ScalaでASICやFPGA用の回路を設計するChiselScalaでASICやFPGA用の回路を設計するChisel
ScalaでASICやFPGA用の回路を設計するChisel
 
Awsでつくるapache kafkaといろんな悩み
Awsでつくるapache kafkaといろんな悩みAwsでつくるapache kafkaといろんな悩み
Awsでつくるapache kafkaといろんな悩み
 
Skinny Framework 進捗どうですか? #fud_scala
Skinny Framework 進捗どうですか? #fud_scalaSkinny Framework 進捗どうですか? #fud_scala
Skinny Framework 進捗どうですか? #fud_scala
 
DWANGO by ドワンゴ
DWANGO by ドワンゴDWANGO by ドワンゴ
DWANGO by ドワンゴ
 
ネタじゃないScala.js
ネタじゃないScala.jsネタじゃないScala.js
ネタじゃないScala.js
 
PlaySQLAlchemyORM2017.key
PlaySQLAlchemyORM2017.keyPlaySQLAlchemyORM2017.key
PlaySQLAlchemyORM2017.key
 
Seasar ユーザだったプログラマが目指す OSS の世界展開 #seasarcon
Seasar ユーザだったプログラマが目指す OSS の世界展開 #seasarconSeasar ユーザだったプログラマが目指す OSS の世界展開 #seasarcon
Seasar ユーザだったプログラマが目指す OSS の世界展開 #seasarcon
 
ビッグじゃなくても使えるSpark Streaming
ビッグじゃなくても使えるSpark Streamingビッグじゃなくても使えるSpark Streaming
ビッグじゃなくても使えるSpark Streaming
 
Functional Programming in Scala Reading #2
Functional Programming in Scala Reading #2Functional Programming in Scala Reading #2
Functional Programming in Scala Reading #2
 
SageMakerでもAUTOMATIC1111したい
SageMakerでもAUTOMATIC1111したいSageMakerでもAUTOMATIC1111したい
SageMakerでもAUTOMATIC1111したい
 
Scala.jsはじめました!
Scala.jsはじめました!Scala.jsはじめました!
Scala.jsはじめました!
 
クラウド環境でのロギングと、AlibabaCloudでのロギングソリューション
クラウド環境でのロギングと、AlibabaCloudでのロギングソリューションクラウド環境でのロギングと、AlibabaCloudでのロギングソリューション
クラウド環境でのロギングと、AlibabaCloudでのロギングソリューション
 
ACRi HLSチャレンジ紹介
ACRi HLSチャレンジ紹介ACRi HLSチャレンジ紹介
ACRi HLSチャレンジ紹介
 
Devops4cloudlbuilder ja
Devops4cloudlbuilder jaDevops4cloudlbuilder ja
Devops4cloudlbuilder ja
 
【LT】 怖くない恐怖のScala.js
【LT】 怖くない恐怖のScala.js【LT】 怖くない恐怖のScala.js
【LT】 怖くない恐怖のScala.js
 
Skinny Framework で始めた Scala
Skinny Framework で始めた ScalaSkinny Framework で始めた Scala
Skinny Framework で始めた Scala
 
Scalaの現状と課題
Scalaの現状と課題Scalaの現状と課題
Scalaの現状と課題
 
Scalaプロダクトのビルド高速化
Scalaプロダクトのビルド高速化Scalaプロダクトのビルド高速化
Scalaプロダクトのビルド高速化
 
Rubyで作るクローラー Ruby crawler
Rubyで作るクローラー Ruby crawlerRubyで作るクローラー Ruby crawler
Rubyで作るクローラー Ruby crawler
 
OpenStack Osloを使おう - cliff編
OpenStack Osloを使おう - cliff編OpenStack Osloを使おう - cliff編
OpenStack Osloを使おう - cliff編
 

Más de Asami Abe (6)

フリーランスエンジニアになって1年が経ちました - 俺聞け4
フリーランスエンジニアになって1年が経ちました - 俺聞け4フリーランスエンジニアになって1年が経ちました - 俺聞け4
フリーランスエンジニアになって1年が経ちました - 俺聞け4
 
SkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kb
SkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kbSkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kb
SkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kb
 
Introduction of Scala Kansai Beginners (ScalaMatsuri2014LT)
Introduction of Scala Kansai Beginners (ScalaMatsuri2014LT)Introduction of Scala Kansai Beginners (ScalaMatsuri2014LT)
Introduction of Scala Kansai Beginners (ScalaMatsuri2014LT)
 
Play2+Scala事始め
Play2+Scala事始めPlay2+Scala事始め
Play2+Scala事始め
 
【俺聞け5】私とflashとhtml5&java script
【俺聞け5】私とflashとhtml5&java script【俺聞け5】私とflashとhtml5&java script
【俺聞け5】私とflashとhtml5&java script
 
20121222 scalaビギナーズ
20121222 scalaビギナーズ20121222 scalaビギナーズ
20121222 scalaビギナーズ
 

ScalaでBacklogの通知bot作ったで