電車遅延を slack に投稿する lambda を作りました

以前書いた記事

電車の遅延情報をslackに投稿するbotをつくりました

が、サーバーにインストールして使う形だったので、

もっとお金をかけずに動かそうと思って、AWS lambda で動くプログラムを作成しました。

設定

まずはこちらを手元の PC にクローンしてください。

github:

https://github.com/acchanAlexander/notice-train-delay-to-slack-lambda

 

レポジトリのトップディレクトリで

npm i

とコマンドを打ってください。(npm のインストールが必要です。)

 

次に、落としてきたレポジトリの中にある、target_train.json に通知したい電車の情報を記載していきます。

 

name は、路線の名前です。

ここで設定しないといけないのは https://rti-giken.jp/fhc/api/train_tetsudo/ の路線名に合致する命名でなければなりません。

 

link は、詳細情報が載っているリンクを設定します。

通知されるメッセージ内に詳細リンクを貼るために設定します。

https://www.tetsudo.com/traffic/ にあるリンク先を設定するなどして使ったらいいかと思ってます。

ここの値はなくてもかまわないので、その場合は空文字列 ” などを入れてください。

 

roomId は、通知先の slack のroomIdを設定します。

roomIdについては、ブラウザでルームを開きURL末尾の messages/XXXXXXXXX/ となっている

XXXXXXXXX の部分です。

 

ここまで完了したら、lambda にデプロイする zip ファイルを作成します。

レポジトリのトップディレクトリで

zip -r notice-train-delay-to-slack-lambda.zip *

とコマンドを打ってください。

 

環境設定

lambda の画面の、「関数の作成」から関数を作成します。

関数名は適当な名前をつけてください

ランタイムは Node.js の 10 系を設定してください

実行ロールを設定してください。

lambda を実行できるパーミッションがついたロールなら OK だと思います。

今回は、基本的なロールを選択しました。

lambda の画面に移るので、

「関数コード」の「コードエントリタイプ」を「.zip ファイルをアップロード」に設定します。

「アップロード」のボタンより、先ほどの zip ファイルをアップロードしてください。

 

環境変数を下記のように設定します。

ADMIN_CHANNEL_ID は、エラー通知が飛ぶ部屋の ID です。

SLACK_TOKEN には、slack bot のAPIキーを登録してください

基本設定のタイムアウト時間は、10 秒くらいにしておいてください。

ここまでで、lambda の設定は完了です。

次に、lambda を動かす Cloud Watch Event の設定です。

Cloud Watch Event の画面より、「ルールの作成」をクリックします。

イベントソースを設定してください。

今回は cron 式で設定しました。ここの時刻は GMT になるので注意してください。

今回は 8:00 と 17:00 にしたかったので、下記のようにしています。

名前と説明に適当な内容を入力します。

以上で環境設定は完了です。

何か不具合があった場合は、Cloud Watch Logs にログが出力されますので、そちらをご確認ください。

電車の遅延情報をslackに投稿するbotをつくりました

githubに公開しています。

使い方は REAME.md に書いてあり、特に難しいことをしなくてもいいのですぐに使えると思います。

github

https://github.com/acchanAlexander/notice-train-delay-to-slack

 

チャットワーク用はこちら

ブログ:電車の遅延情報をチャットワークに投稿するボットをつくりました。

github:https://github.com/acchanAlexander/notice-train-delay-to-chatwork

 

電車の遅延情報をチャットワークに投稿するボットをつくりました。

こんな感じで通知が来て通知キャプチャ

こんな感じで投稿されます。

投稿キャプチャ_ぼかし入れ

githubに公開しています。

使い方は REAME.md に書いてあり、特に難しいことをしなくてもいいのですぐに使えると思います。

github

https://github.com/acchanAlexander/noticeTrainDelayToChatWork

 

家を出る1時間前くらいに、電車遅延の情報を得たいと思いました。

ボットは slack でも twitter でもよかったのですが、

会社でチャットワークを使っているので

会社の人にも電車の遅延情報を伝えたいなぁと思ってチャットワークにしました。

あと、帰る時間帯くらいにも通知が欲しかったので

チャットワークに通知されるようにすれば仕事中に自然に遅延情報が確認できるなと思いました。

 

追記

slack版も作りました

ブログ:電車の遅延情報をslackに投稿するbotをつくりました

github:https://github.com/acchanAlexander/notice-train-delay-to-slack