現象
以前毎日2時間置き(1:00, 3:00, 5:00, ... 23:00)に LINE のボットチャネルに送信されるように設定していたある通知が、気づいたら来なくなっていた。おかしなことに、来なくなった日が数日続いたかと思えばまた突如再開し、さらにまた数日して来なくなり、、を何回か繰り返しているような状態が続いた。
この LINE ボットは2年ほど前から稼働させており、過去にこのようなことはなかった。
そこで、(この通知がなくてもさして困ることはないが)気になったので原因を調べてみたので、その時の手順をメモしたいと思う。
前提
何の通知か?
- 最新の仮想通貨(暗号資産)のレート(1コインあたり何円か)を LINE のボットチャネルに通知してくれるもの。
- 対象の仮想通貨はビットコイン(BTC), イーサリアム(ETH), ビットコインキャッシュ(BCH), リップル(XRP) の4種である。
アーキテクチャ
AWS のサービスを主に使用しており、それぞれの簡易な説明は以下の通り。
-
EventBridge
で定期的な実行をキックする(2時間ごと)。 -
API Gateway
を挟み、Lambda
で通貨レートの通知に必要な諸々を処理している。- 通貨レート情報は、GMO コイン の API をコールして取得している。
- 通貨レートと共に、前回通知(2時間前)からの差分も表示するようにしているのだが、その時前回レートを保持しておく必要があり、その目的に
DynamoDB
を使用している。 - Lambda 処理に関するログなどは
CloudWatch
でウォッチしている。 - レート情報を
LINE Messaging API
を使用して LINE のボットチャネルにプッシュ通知する。
通知イメージ
調査
Lambda の実行ログ確認(Cloud Watch)
- 仮想通貨 API は問題なくコールできている。
- LINE Messaging API のコールは、429 エラーで、レートリミット超過だった(全然そんなにコールしていないにも関わらず、である)。
LINE Messaging API に関する情報をコンソールで確認
Developers コンソール
-
プッシュ通知先のボットチャネルの統計情報を
https://developers.line.biz/console/channel/{channelID}/statistics/messages
で確認すると、8/17 に少し減少し、8/18 以降は通知ゼロとなっている。 -
詳しい統計は LINE Official Account Manager をみてねということなので、そうする。
LINE Official Account Manager
- 「メッセージ通数」ページでは、さらに過去の通知状況を確認することができたので、7月と6月の状況を表示してみた。すると、実際の通知送信数に特定の規則があることがわかった。
- 各月 17日前後を境に通知されなくなり、翌月には再度復活していた。
- この現象は 2023/6 月から起こっていた。
- また、画面下の方に表があり、実際に配信されたメッセージ数が 200 となっていたのが気になった。これに関しても、2023/6月以前は、368 などとなっていた。
- 。。。。
- 今年の6月から何か変更を加えただろうか?いや、ソースコードは全く触っていない。もしやと思い、「line messaging api 無料メッセージ数」などの検索ワードでググる。
原因
LINE Messaging API の料金プランが変更され、無料プラン(コミュニケーションプラン)の場合、200通/月までとなったことにより、今年の6月以降各月で、200通をプッシュ通知を超えた分については送信されなかったようである。
結論
3rd パーティ製のインフラを利用してサービスを展開する場合は、料金プランや利用規約の変更を把握する必要がある。
本記事のリポジトリ