Upload
rina0521
View
349
Download
0
Embed Size (px)
Citation preview
#
お天気情報を 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に送信する
OpenWhiskでお天気bot
指定した時間になると
天気情報を取得して、
Slackに表示するメッセージを作成して、
メッセージをSlackに送信する
OpenWhiskでお天気bot
トリガー
アクション
アクション
アクション
指定した時間になると
天気情報を取得して、
Slackに表示するメッセージを作成して、
メッセージをSlackに送信する
OpenWhiskでお天気bot
トリガー
アクション
アクション
アクション
OpenWhiskでお天気bot
OpenWhiskでお天気bot
実行する順番は
上から下です。
Web画面の操作で
自由に設定できます
OpenWhiskでお天気bot
OpenWhiskでお天気bot
BluemixのカタログからWeather Company Dataサービスを申し込めば、すぐに利用できます。
無料プランでも、1月あたり1万回まで利用できます。
OpenWhiskでお天気bot
パッケージとしてすでに動くものが用意されているので、サービス申し込みで発行されたユーザ名とパスワード、天気情報を知りたい経度と緯度を指定するだけ!
OpenWhiskでお天気bot
OpenWhiskでお天気bot
みんな大好きSlack。
こちらも、WebhookのURLとチャンネル、ユーザ名とメッセージを入力するだけで動きます
OpenWhiskでお天気bot
OpenWhiskでお天気bot
ここが、今回唯一、
自前で実装した部分
OpenWhiskでお天気bot Weather Companyの
出力パラメータ Slackの入力パラメータ
{ "metadata":{
“latitude”: 35.7,
"longitude": 139.61, “
},
"observation": {
"dewPt": 5,
"feels_like": 15,
・
・
{ "channel": AAAAA,
"text": BBBBBB,
“url”: CCCCCC,
"username": DDDDDD
}
OpenWhiskでお天気bot Weather Companyの
出力パラメータ Slackの入力パラメータ
{ "metadata":{
“latitude”: 35.7,
"longitude": 139.61, “
},
"observation": {
"dewPt": 5,
"feels_like": 15,
・
・
{ "channel": AAAAA,
"text": BBBBBB,
“url”: CCCCCC,
"username": DDDDDD
} 変換する 何か
OpenWhiskでお天気bot
アクションをつくります。
OpenWhiskでお天気bot
つくりました(雑コード)
なお、アクションは、現在、Swift、Node.js、Python、Dockerが使えます
OpenWhiskでお天気bot
アクション周りは
とりあえず完成!
指定した時間になると
天気情報を取得して、
Slackに表示するメッセージを作成して、
メッセージをSlackに送信する
OpenWhiskでお天気bot
トリガー
アクション
アクション
アクション
指定した時間になると
天気情報を取得して、
Slackに表示するメッセージを作成して、
メッセージをSlackに送信する
OpenWhiskでお天気bot
トリガー
アクション
アクション
アクション
OpenWhiskでお天気bot
自動実行の設定をします。
OpenWhiskでお天気bot
自動実行の設定をします。
OpenWhiskでお天気bot
起動時間を指定すると、先ほど作成した
アクションの上に、トリガーが追加されました。
OpenWhiskでお天気bot
指定した時間になると、Slackにお天気情報を
通知してくれます。
POINT
面倒なのでサーバは立てない
使えるものを使って作るものは最低限に
お財布に優しい(最重要)
POINT
面倒なのでサーバは立てない →Web画面の設定だけ
使えるものを使って作るものは最低限に →コーディングは投稿メッセージ作成だけ
お財布に優しい(最重要)
→発生する課金は、実行に必要な計算時間だけ
(今回は一回あたり1.7sec)
POINT
面倒なのでサーバは立てない →Web画面の設定だけ
使えるものを使って作るものは最低限に →コーディングは投稿メッセージ作成だけ
お財布に優しい(最重要)
→発生する課金は、実行に必要な計算時間だけ
(今回は一回あたり1.7sec)
POINT
マネージドサービスを活用した サーバレスアーキテクチャ
サーバは、それ自身が価値を生み出すものではない。あくまでも、その上で動くアプリケーションの要件を実現するために必要とされる
サーバレスアーキテクチャ
サーバは、それ自身が価値を生み出すものではない。あくまでも、その上で動くアプリケーションの要件を実現するために必要とされる
サーバレスアーキテクチャ
→マネージドサービスを組み合わせて、
最低限必要なロジックのみを
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 * * * を指定しました。
ご清聴ありがとうございました