狠狠撸

狠狠撸Share a Scribd company logo
#
お天気情報を
botで通知する
Bluemix OpenWhisk
2016/11/03
作ったもの
朝?昼?夕?夜に、
お天気情報を通知してくれるbot
作ったもの
永井 里奈
?TIS株式会社
プラットフォームサービス本部
?クラウドエンジニア 7年目
?今は業務で、IoTやってます
自己紹介
BluemixのOpenWhiskを使ったら
簡単に天気通知アプリができた
今日言いたいこと
BluemixのOpenWhiskを使ったら
簡単に天気通知アプリができた
今日言いたいこと
OpenWhiskをつかえば何ができるの?
すごいの?おいしいの?をお話します。
オープンソース?Bluemixのマネージドサービス
として提供されるイベント駆動型
アプリケーション実行基盤
OpenWhiskって何?
画像引用:https://developer.ibm.com/openwhisk/
オープンソース?Bluemixのマネージドサービス
として提供されるイベント駆動型
アプリケーション実行基盤
OpenWhiskって何?
画像引用:https://developer.ibm.com/openwhisk/
処理をChainで
繋いでいく
OpenWhiskの要素
OpenWhiskって何?
トリガー:
実行のきっかけは何か
アクション:
何をするのか
ルール:
トリガーとアクションの結びつけ
指定した時間になると
天気情報を取得して、
Slackに表示するメッセージを作成して
メッセージをSlackに送信する
翱辫别苍奥丑颈蝉办でお天気产辞迟
指定した時間になると
天気情報を取得して、
Slackに表示するメッセージを作成して、
メッセージをSlackに送信する
翱辫别苍奥丑颈蝉办でお天気产辞迟
トリガー
アクション
アクション
アクション
指定した時間になると
天気情報を取得して、
Slackに表示するメッセージを作成して、
メッセージをSlackに送信する
翱辫别苍奥丑颈蝉办でお天気产辞迟
トリガー
アクション
アクション
アクション
翱辫别苍奥丑颈蝉办でお天気产辞迟
翱辫别苍奥丑颈蝉办でお天気产辞迟
実行する順番は
上から下です。
Web画面の操作で
自由に設定できます
翱辫别苍奥丑颈蝉办でお天気产辞迟
翱辫别苍奥丑颈蝉办でお天気产辞迟
Bluemixのカタログから
Weather Company
Dataサービスを申し込めば、
すぐに利用できます。
無料プランでも、1月あたり
1万回まで利用できます。
翱辫别苍奥丑颈蝉办でお天気产辞迟
パッケージとしてすでに動く
ものが用意されているので、
サービス申し込みで発行さ
れたユーザ名とパスワード、
天気情報を知りたい経度
と緯度を指定するだけ!
翱辫别苍奥丑颈蝉办でお天気产辞迟
翱辫别苍奥丑颈蝉办でお天気产辞迟
みんな大好きSlack。
こちらも、Webhookの
URLとチャンネル、ユーザ名
とメッセージを入力するだけ
で動きます
翱辫别苍奥丑颈蝉办でお天気产辞迟
翱辫别苍奥丑颈蝉办でお天気产辞迟
ここが、今回唯一、
自前で実装した部分
翱辫别苍奥丑颈蝉办でお天気产辞迟
Weather Companyの
出力パラメータ
Slackの入力パラメータ
{ "metadata":{
“latitude”: 35.7,
"longitude": 139.61, “
},
"observation": {
"dewPt": 5,
"feels_like": 15,
?
?
{ "channel": AAAAA,
"text": BBBBBB,
“url”: CCCCCC,
"username": DDDDDD
}
翱辫别苍奥丑颈蝉办でお天気产辞迟
Weather Companyの
出力パラメータ
Slackの入力パラメータ
{ "metadata":{
“latitude”: 35.7,
"longitude": 139.61, “
},
"observation": {
"dewPt": 5,
"feels_like": 15,
?
?
{ "channel": AAAAA,
"text": BBBBBB,
“url”: CCCCCC,
"username": DDDDDD
}
変換する
何か
翱辫别苍奥丑颈蝉办でお天気产辞迟
アクションをつくります。
翱辫别苍奥丑颈蝉办でお天気产辞迟
つくりました(雑コード)
なお、アクションは、現在、Swift、Node.js、
Python、Dockerが使えます
翱辫别苍奥丑颈蝉办でお天気产辞迟
アクション周りは
とりあえず完成!
指定した時間になると
天気情報を取得して、
Slackに表示するメッセージを作成して、
メッセージをSlackに送信する
翱辫别苍奥丑颈蝉办でお天気产辞迟
トリガー
アクション
アクション
アクション
指定した時間になると
天気情報を取得して、
Slackに表示するメッセージを作成して、
メッセージをSlackに送信する
翱辫别苍奥丑颈蝉办でお天気产辞迟
トリガー
アクション
アクション
アクション
翱辫别苍奥丑颈蝉办でお天気产辞迟
自動実行の設定をします。
翱辫别苍奥丑颈蝉办でお天気产辞迟
自動実行の設定をします。
翱辫别苍奥丑颈蝉办でお天気产辞迟
起動時間を指定すると、先ほど作成した
アクションの上に、トリガーが追加されました。
翱辫别苍奥丑颈蝉办でお天気产辞迟
指定した時間になると、Slackにお天気情報を
通知してくれます。
POINT
? 面倒なのでサーバは立てない
? 使えるものを使って作るものは最低限に
? お財布に優しい(最重要)
POINT
? 面倒なのでサーバは立てない
→Web画面の設定だけ
? 使えるものを使って作るものは最低限に
→コーディングは投稿メッセージ作成だけ
? お財布に優しい(最重要)
→発生する課金は、実行に必要な計算時間だけ
(今回は一回あたり1.7sec)
POINT
? 面倒なのでサーバは立てない
→Web画面の設定だけ
? 使えるものを使って作るものは最低限に
→コーディングは投稿メッセージ作成だけ
? お財布に優しい(最重要)
→発生する課金は、実行に必要な計算時間だけ
(今回は一回あたり1.7sec)
POINT
マネージドサービスを活用した
サーバレスアーキテクチャ
サーバは、それ自身が価値を生み出すもので
はない。あくまでも、その上で動くアプリケーショ
ンの要件を実現するために必要とされる
サーバレスアーキテクチャ
サーバは、それ自身が価値を生み出すもので
はない。あくまでも、その上で動くアプリケーショ
ンの要件を実現するために必要とされる
サーバレスアーキテクチャ
→マネージドサービスを組み合わせて、
最低限必要なロジックのみを
OpenWhiskで実装すれば、
低価格/ハイスピードな
アプリケーションの実現ができる
お天気情報をBotで通知する(Bluemix OpenWhisk)
?お天気情報といいながら、気温と湿度しか取
れてないよね?
補足1
?お天気情報といいながら、気温と湿度しか取
れてないよね?
補足1
Weather Companyは、現在まだ日本の天気「予報」情報
が取得できないようです。最高気温、最低気温、降水確率な
どのパラメータはnull(空)でした。
ニューヨークの緯度と経度を指定すると、予報情報の他にも、
天気に関する一言、のようなメッセージ情報なども取得できま
す。サービスの日本展開、はよ
?どうやってトリガーやルールを作るの?
トリガーやルールの作成ボタンがないんだけど
補足2
?どうやってトリガーやルールを作るの?
トリガーやルールの作成ボタンがないんだけど
補足2
まずアクションを作ります
→アクションのページ下のほう「新規シーケンスのリンク」で
シーケンス(アクションの繋がり)を作成する
→シーケンスからページ下のほう「自動化」で
トリガーの作成をする
→あとは右下の「適切なようです」「完了」と
押していけば、トリガーとルールが紐付きます
?参考にして作ってみたけど、Weather
Companyからデータ取れないよ
補足3
?参考にして作ってみたけど、Weather
Companyからデータ取れないよ
補足3
Weather Companyサービスを申し込むと、OpenWhiskの
bind設定で、申し込んだサービスをbindに選択できるようにな
ります。が、なぜか、うまく動きません。新規bind設定を作成
する、を選択して、パラメータにusernameとpasswordだけ
入力すると動きました。
自動bindする前に他に必要な設定があったのか、自動bind
で登録されるパラメータに不備があるのかは、不明です。
?トリガーのcronが思った時間に動いてくれな
いよ
補足4
?トリガーのcronが思った時間に動いてくれな
いよ
補足4
左から以下のパラメータ指定になっています。
?Seconds: 0-59
?Minutes: 0-59
?Hours: 0-23
?Day of Month: 1-31
?Months: 0-11
?Day of Week: 0-6
また、UTCなので、日本時間は+9時間してください。
今回は、 0 0 3,9,13,22 * * * を指定しました。
ご清聴ありがとうございました

More Related Content

お天気情報をBotで通知する(Bluemix OpenWhisk)