48
# お天気情報を botで通知する Bluemix OpenWhisk 2016/11/03

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

Embed Size (px)

Citation preview

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

#

お天気情報を botで通知する

Bluemix OpenWhisk

2016/11/03

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

作ったもの

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

朝・昼・夕・夜に、

お天気情報を通知してくれるbot

作ったもの

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

永井 里奈

TIS株式会社 プラットフォームサービス本部

クラウドエンジニア 7年目

今は業務で、IoTやってます

自己紹介

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

BluemixのOpenWhiskを使ったら

簡単に天気通知アプリができた

今日言いたいこと

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

BluemixのOpenWhiskを使ったら

簡単に天気通知アプリができた

今日言いたいこと

OpenWhiskをつかえば何ができるの?

すごいの?おいしいの?をお話します。

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

オープンソース・Bluemixのマネージドサービス

として提供されるイベント駆動型

アプリケーション実行基盤

OpenWhiskって何?

画像引用:https://developer.ibm.com/openwhisk/

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

オープンソース・Bluemixのマネージドサービス

として提供されるイベント駆動型

アプリケーション実行基盤

OpenWhiskって何?

画像引用:https://developer.ibm.com/openwhisk/

処理をChainで

繋いでいく

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

OpenWhiskの要素

OpenWhiskって何?

トリガー:

実行のきっかけは何か

アクション:

何をするのか

ルール:

トリガーとアクションの結びつけ

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

指定した時間になると

天気情報を取得して、

Slackに表示するメッセージを作成して

メッセージをSlackに送信する

OpenWhiskでお天気bot

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

指定した時間になると

天気情報を取得して、

Slackに表示するメッセージを作成して、

メッセージをSlackに送信する

OpenWhiskでお天気bot

トリガー

アクション

アクション

アクション

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

指定した時間になると

天気情報を取得して、

Slackに表示するメッセージを作成して、

メッセージをSlackに送信する

OpenWhiskでお天気bot

トリガー

アクション

アクション

アクション

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

OpenWhiskでお天気bot

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

OpenWhiskでお天気bot

実行する順番は

上から下です。

Web画面の操作で

自由に設定できます

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

OpenWhiskでお天気bot

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

OpenWhiskでお天気bot

BluemixのカタログからWeather Company Dataサービスを申し込めば、すぐに利用できます。

無料プランでも、1月あたり1万回まで利用できます。

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

OpenWhiskでお天気bot

パッケージとしてすでに動くものが用意されているので、サービス申し込みで発行されたユーザ名とパスワード、天気情報を知りたい経度と緯度を指定するだけ!

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

OpenWhiskでお天気bot

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

OpenWhiskでお天気bot

みんな大好きSlack。

こちらも、WebhookのURLとチャンネル、ユーザ名とメッセージを入力するだけで動きます

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

OpenWhiskでお天気bot

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

OpenWhiskでお天気bot

ここが、今回唯一、

自前で実装した部分

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

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

}

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

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

} 変換する 何か

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

OpenWhiskでお天気bot

アクションをつくります。

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

OpenWhiskでお天気bot

つくりました(雑コード)

なお、アクションは、現在、Swift、Node.js、Python、Dockerが使えます

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

OpenWhiskでお天気bot

アクション周りは

とりあえず完成!

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

指定した時間になると

天気情報を取得して、

Slackに表示するメッセージを作成して、

メッセージをSlackに送信する

OpenWhiskでお天気bot

トリガー

アクション

アクション

アクション

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

指定した時間になると

天気情報を取得して、

Slackに表示するメッセージを作成して、

メッセージをSlackに送信する

OpenWhiskでお天気bot

トリガー

アクション

アクション

アクション

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

OpenWhiskでお天気bot

自動実行の設定をします。

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

OpenWhiskでお天気bot

自動実行の設定をします。

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

OpenWhiskでお天気bot

起動時間を指定すると、先ほど作成した

アクションの上に、トリガーが追加されました。

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

OpenWhiskでお天気bot

指定した時間になると、Slackにお天気情報を

通知してくれます。

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

POINT

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

面倒なのでサーバは立てない

使えるものを使って作るものは最低限に

お財布に優しい(最重要)

POINT

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

面倒なのでサーバは立てない →Web画面の設定だけ

使えるものを使って作るものは最低限に →コーディングは投稿メッセージ作成だけ

お財布に優しい(最重要)

→発生する課金は、実行に必要な計算時間だけ

(今回は一回あたり1.7sec)

POINT

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

面倒なのでサーバは立てない →Web画面の設定だけ

使えるものを使って作るものは最低限に →コーディングは投稿メッセージ作成だけ

お財布に優しい(最重要)

→発生する課金は、実行に必要な計算時間だけ

(今回は一回あたり1.7sec)

POINT

マネージドサービスを活用した サーバレスアーキテクチャ

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

サーバは、それ自身が価値を生み出すものではない。あくまでも、その上で動くアプリケーションの要件を実現するために必要とされる

サーバレスアーキテクチャ

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

サーバは、それ自身が価値を生み出すものではない。あくまでも、その上で動くアプリケーションの要件を実現するために必要とされる

サーバレスアーキテクチャ

→マネージドサービスを組み合わせて、

最低限必要なロジックのみを

OpenWhiskで実装すれば、

低価格/ハイスピードな

アプリケーションの実現ができる

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

お天気情報といいながら、気温と湿度しか取れてないよね?

補足1

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

お天気情報といいながら、気温と湿度しか取れてないよね?

補足1

Weather Companyは、現在まだ日本の天気「予報」情報が取得できないようです。最高気温、最低気温、降水確率などのパラメータはnull(空)でした。

ニューヨークの緯度と経度を指定すると、予報情報の他にも、天気に関する一言、のようなメッセージ情報なども取得できます。サービスの日本展開、はよ

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

どうやってトリガーやルールを作るの? トリガーやルールの作成ボタンがないんだけど

補足2

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

どうやってトリガーやルールを作るの? トリガーやルールの作成ボタンがないんだけど

補足2

まずアクションを作ります

→アクションのページ下のほう「新規シーケンスのリンク」で シーケンス(アクションの繋がり)を作成する

→シーケンスからページ下のほう「自動化」で トリガーの作成をする

→あとは右下の「適切なようです」「完了」と

押していけば、トリガーとルールが紐付きます

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

参考にして作ってみたけど、Weather Companyからデータ取れないよ

補足3

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

参考にして作ってみたけど、Weather Companyからデータ取れないよ

補足3

Weather Companyサービスを申し込むと、OpenWhiskのbind設定で、申し込んだサービスをbindに選択できるようになります。が、なぜか、うまく動きません。新規bind設定を作成する、を選択して、パラメータにusernameとpasswordだけ入力すると動きました。

自動bindする前に他に必要な設定があったのか、自動bindで登録されるパラメータに不備があるのかは、不明です。

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

トリガーのcronが思った時間に動いてくれないよ

補足4

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

トリガーの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 * * * を指定しました。

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

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