電車遅延を 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 にログが出力されますので、そちらをご確認ください。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です