ソラコムの安川です。
本日はイベントハンドラ関係の新機能の発表を2つお届けします!
有効期限切れ時のイベントハンドラと expiryAction
SORACOM Air の各 SIM カードには有効期限を設定することが可能で、有効期限が切れた SIM カードはそれ以降新規のセッションが張れなくような設定がこれまでも可能でした。
本日発表する新機能は、この有効期限切れというイベントをトリガにして、イベントハンドラを使ってアクションを起こす機能です。
これにより、例えば一定期間おきに継続利用の確認が必要なケースなどで、イベントハンドラ経由で通知のメールを送ったり、AWS Lambda のロジックを起動して何らかのロジックを走らせることなどが可能になります。
また、これまで有効期限が切れても既存の接続は維持されたため、その時点で通信を行っているデバイスは通信が継続できてしまうという仕様であったことから、有効期限切れで既存セッションが切断されることを期待されていたお客様には期待にと異なる挙動となってしまっていました。その挙動を今回変更し、期限切れと同時にセッションを切断する動作がデフォルトとなるよう変更しました。
なお、この挙動は各 SIM に設定する expiryAction
というパラメータで制御可能です。
expiryAction
に下記のいずれかを設定することで挙動を変えることができます。
doNothing
– 何もしない(既存の有効期限設定のデフォルト)deleteSession
– セッションを切断する(今後の有効期限設定のデフォルト)deactivate
– SIMを休止terminate
– SIMを解約(但し、Termination Protection が無効化されている必要有り)
イベントハンドラが Webhook に対応
タイトルのとおりですが、イベントハンドラのアクションとして、Webhook を設定することが可能になりました!
これにより、例えばSIMの通信量が一定量を超えた場合や、(本日発表の機能と合わせて)有効期限が切れた場合などに、Slack に通知をしたり、Web API に対応したサーバの処理などを起動することが可能になります。
様々な応用が考えられますので是非ご活用の上、面白い使い方を見つけたらブログやイベント等で発表していただけたら嬉しいです。
おわりに
余談ですが、最近は少々出張が多くて、expiryAction
周りは飛行機の中で書いてました。(イベントハンドラそのものや Webhook は片山がメインで開発をしてくれてますが、イベントを発呼する部分の話)
ソラコムでは DynamoDB を使っていて、今回の有効期限切れのイベントを発行する部分でも DynamoDB が活躍しているのですが、DynamoDB Local があるおかげで Wi-Fi がないハードモードの飛行機でも難なく開発を続けることが可能でありがたかったです。
さて、今回発表した機能もやはり、お客様のフィードバックや、お客様側の既存のAPIを使った実装で苦労されている点などを受けて開発しました。
引き続きお客様のフィードバックを聞きながら SORACOM は進化し続けていきますので、皆様のご要望を随時お聞かせください!