Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

768 views

Published on

Geek Women Japan 2016のLT資料です

Published in: Engineering
  • Be the first to comment

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

  1. 1. # お天気情報を botで通知する Bluemix OpenWhisk 2016/11/03
  2. 2. 作ったもの
  3. 3. 朝・昼・夕・夜に、 お天気情報を通知してくれるbot 作ったもの
  4. 4. 永井 里奈 TIS株式会社 プラットフォームサービス本部 クラウドエンジニア 7年目 今は業務で、IoTやってます 自己紹介
  5. 5. BluemixのOpenWhiskを使ったら 簡単に天気通知アプリができた 今日言いたいこと
  6. 6. BluemixのOpenWhiskを使ったら 簡単に天気通知アプリができた 今日言いたいこと OpenWhiskをつかえば何ができるの? すごいの?おいしいの?をお話します。
  7. 7. オープンソース・Bluemixのマネージドサービス として提供されるイベント駆動型 アプリケーション実行基盤 OpenWhiskって何? 画像引用:https://developer.ibm.com/openwhisk/
  8. 8. オープンソース・Bluemixのマネージドサービス として提供されるイベント駆動型 アプリケーション実行基盤 OpenWhiskって何? 画像引用:https://developer.ibm.com/openwhisk/ 処理をChainで 繋いでいく
  9. 9. OpenWhiskの要素 OpenWhiskって何? トリガー: 実行のきっかけは何か アクション: 何をするのか ルール: トリガーとアクションの結びつけ
  10. 10. 指定した時間になると 天気情報を取得して、 Slackに表示するメッセージを作成して メッセージをSlackに送信する OpenWhiskでお天気bot
  11. 11. 指定した時間になると 天気情報を取得して、 Slackに表示するメッセージを作成して、 メッセージをSlackに送信する OpenWhiskでお天気bot トリガー アクション アクション アクション
  12. 12. 指定した時間になると 天気情報を取得して、 Slackに表示するメッセージを作成して、 メッセージをSlackに送信する OpenWhiskでお天気bot トリガー アクション アクション アクション
  13. 13. OpenWhiskでお天気bot
  14. 14. OpenWhiskでお天気bot 実行する順番は 上から下です。 Web画面の操作で 自由に設定できます
  15. 15. OpenWhiskでお天気bot
  16. 16. OpenWhiskでお天気bot Bluemixのカタログから Weather Company Dataサービスを申し込めば、 すぐに利用できます。 無料プランでも、1月あたり 1万回まで利用できます。
  17. 17. OpenWhiskでお天気bot パッケージとしてすでに動く ものが用意されているので、 サービス申し込みで発行さ れたユーザ名とパスワード、 天気情報を知りたい経度 と緯度を指定するだけ!
  18. 18. OpenWhiskでお天気bot
  19. 19. OpenWhiskでお天気bot みんな大好きSlack。 こちらも、Webhookの URLとチャンネル、ユーザ名 とメッセージを入力するだけ で動きます
  20. 20. OpenWhiskでお天気bot
  21. 21. OpenWhiskでお天気bot ここが、今回唯一、 自前で実装した部分
  22. 22. 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 }
  23. 23. 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 } 変換する 何か
  24. 24. OpenWhiskでお天気bot アクションをつくります。
  25. 25. OpenWhiskでお天気bot つくりました(雑コード) なお、アクションは、現在、Swift、Node.js、 Python、Dockerが使えます
  26. 26. OpenWhiskでお天気bot アクション周りは とりあえず完成!
  27. 27. 指定した時間になると 天気情報を取得して、 Slackに表示するメッセージを作成して、 メッセージをSlackに送信する OpenWhiskでお天気bot トリガー アクション アクション アクション
  28. 28. 指定した時間になると 天気情報を取得して、 Slackに表示するメッセージを作成して、 メッセージをSlackに送信する OpenWhiskでお天気bot トリガー アクション アクション アクション
  29. 29. OpenWhiskでお天気bot 自動実行の設定をします。
  30. 30. OpenWhiskでお天気bot 自動実行の設定をします。
  31. 31. OpenWhiskでお天気bot 起動時間を指定すると、先ほど作成した アクションの上に、トリガーが追加されました。
  32. 32. OpenWhiskでお天気bot 指定した時間になると、Slackにお天気情報を 通知してくれます。
  33. 33. POINT
  34. 34.  面倒なのでサーバは立てない  使えるものを使って作るものは最低限に  お財布に優しい(最重要) POINT
  35. 35.  面倒なのでサーバは立てない →Web画面の設定だけ  使えるものを使って作るものは最低限に →コーディングは投稿メッセージ作成だけ  お財布に優しい(最重要) →発生する課金は、実行に必要な計算時間だけ (今回は一回あたり1.7sec) POINT
  36. 36.  面倒なのでサーバは立てない →Web画面の設定だけ  使えるものを使って作るものは最低限に →コーディングは投稿メッセージ作成だけ  お財布に優しい(最重要) →発生する課金は、実行に必要な計算時間だけ (今回は一回あたり1.7sec) POINT マネージドサービスを活用した サーバレスアーキテクチャ
  37. 37. サーバは、それ自身が価値を生み出すもので はない。あくまでも、その上で動くアプリケーショ ンの要件を実現するために必要とされる サーバレスアーキテクチャ
  38. 38. サーバは、それ自身が価値を生み出すもので はない。あくまでも、その上で動くアプリケーショ ンの要件を実現するために必要とされる サーバレスアーキテクチャ →マネージドサービスを組み合わせて、 最低限必要なロジックのみを OpenWhiskで実装すれば、 低価格/ハイスピードな アプリケーションの実現ができる
  39. 39. お天気情報といいながら、気温と湿度しか取 れてないよね? 補足1
  40. 40. お天気情報といいながら、気温と湿度しか取 れてないよね? 補足1 Weather Companyは、現在まだ日本の天気「予報」情報 が取得できないようです。最高気温、最低気温、降水確率な どのパラメータはnull(空)でした。 ニューヨークの緯度と経度を指定すると、予報情報の他にも、 天気に関する一言、のようなメッセージ情報なども取得できま す。サービスの日本展開、はよ
  41. 41. どうやってトリガーやルールを作るの? トリガーやルールの作成ボタンがないんだけど 補足2
  42. 42. どうやってトリガーやルールを作るの? トリガーやルールの作成ボタンがないんだけど 補足2 まずアクションを作ります →アクションのページ下のほう「新規シーケンスのリンク」で シーケンス(アクションの繋がり)を作成する →シーケンスからページ下のほう「自動化」で トリガーの作成をする →あとは右下の「適切なようです」「完了」と 押していけば、トリガーとルールが紐付きます
  43. 43. 参考にして作ってみたけど、Weather Companyからデータ取れないよ 補足3
  44. 44. 参考にして作ってみたけど、Weather Companyからデータ取れないよ 補足3 Weather Companyサービスを申し込むと、OpenWhiskの bind設定で、申し込んだサービスをbindに選択できるようにな ります。が、なぜか、うまく動きません。新規bind設定を作成 する、を選択して、パラメータにusernameとpasswordだけ 入力すると動きました。 自動bindする前に他に必要な設定があったのか、自動bind で登録されるパラメータに不備があるのかは、不明です。
  45. 45. トリガーのcronが思った時間に動いてくれな いよ 補足4
  46. 46. トリガーの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 * * * を指定しました。
  47. 47. ご清聴ありがとうございました

×