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

Preview:

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 * * * を指定しました。

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

Recommended