イベントハンドラー機能がサブスクリプションコンテナに対応しました。

2020/07/14

こんにちは。エンジニアの kaz です。

突然ですが、みなさんイベントハンドラー機能はご利用頂いているでしょうか? イベントハンドラーとは、データ通信量、SIM のステータス変更や有効期限などを条件に設定し、この条件を満たした場合にアクションを実行することができます。アクションには、メール通知、速度クラスの変更、AWS Lambda ファンクションなどを実行できます。大量の通信が発生して想定外の料金になってしまった、といったことを防ぐこともできるので、ぜひ一度試してみて頂ければと思います。 そして本日は、このイベントハンドラー機能に新しく追加された機能についてご紹介したいと思います。

ターゲットに SIM を追加

本日、Discovery で発表されたサブスクリプションコンテナ機能に合わせて、イベントハンドラーの監視対象として従来のサブスクライバ (IMSI) だけでなく SIM ID も指定できるようになりました。

TargetSimId

対象を SIM に指定した場合、以下のルールが指定できます。

SimRules

この中で、サブスクライバを指定した時には存在しない、SIM 固有のルールについて説明します。

データ通信量の監視

先ほどの画面に表示されていた最初の3つのルールは、SIM にひもづく全てのサブスクリプション(plan01s, planP1など)のデータ通信量の合計が指定した値を超えた時にアクションが実行されます。そのため、利用中のサブスクリプションに関わらず純粋にその SIM がどれだけ通信したかを監視することができます。

サブスクリプションの追加イベントの監視

サブスクリプションコンテナを追加する際のイベントも監視することができるようになります。このイベントが発生する契機としては、「サブスクリプションの追加を開始」「サブスクリプションの追加が成功」「サブスクリプションの追加が失敗」の3つのタイミングがあります。どのイベントを監視するか指定することもできますし、全てのイベントを対象とすることもできます。 また、イベントハンドラーでアクションを実行する時は、変数を指定することができ、例えばメールで通知する際にどの SIM のイベントだったかを示すことができます。${imsi}を指定した場合に出力される値は以下のようになります。

  • サブスクリプションの追加を開始:plan01s の IMSI
  • サブスクリプションの追加が成功:追加されたサブスクリプション の IMSI
  • サブスクリプションの追加が失敗:plan01s の IMSI

イベントの内容に関わらずサブスクリプションコンテナを追加する元の plan01s の IMSI を変数として使いたい場合は、${primaryImsi} という変数が利用できます。${subscription} という変数を利用すると、サブスクリプションの追加が成功した時にどのサブスクリプション(planP1 または planX1)が追加されたかを知ることもできます。また、${otaStatus}という変数を利用すると、サブスクリプションの追加を示すstarted、成功を示すfinished、失敗を示すfailedのいずれかを取得することができます。

simId 変数の追加

従来はどの SIM のイベントが発生したかを知る方法として、変数に ${imsi} が利用できましたが、今回新たに ${simId} の変数も利用できるようになりました。 SIM ID は SIM そのものを指すため、今後はこちらの変数を利用することでサブスクリプションに関わらず、より明確に SIM を示すことができるようになります。

その他のアップデート

サブスクリプションコンテナ以外にもいくつかアップデートがありますので、紹介いたします。

SubscriberFirstTrafficRule の追加

従来より、製品に SORACOM の IoT SIM を組み込んで出荷するような場合に、製品がエンドユーザーの手元に届いて利用が開始されたタイミングで通知を受けたいというニーズをお聞きしておりました。製品に IoT SIM を組み込んでそのまま出荷する場合は、SIM のステータスが ready から active に変わったタイミングで通知すれば良かったのですが、IoT SIM を組み込んだあと、一度工場で出荷検査をしてから出荷するような場合だと、ステータスがすでに active になっているため、ステータスを監視するルールではニーズを満たせないことが分かりました。 そこでこのたび、SubscriberFirstTrafficRule を新たに追加しました。こちらのルールを使うと、イベントハンドラーを作成してから初めて通信が発生したタイミングで通知が来るため、工場で出荷検査をするようなケースでもニーズを満たすことができます。このようなケースで悩まれていた方は、ぜひご検討頂ければと思います。 注意点として、こちらのルールは「再評価を行うタイミング」に「再評価を行わない」しか指定できませんのでご注意ください。

オフセット(分)の追加

一度ルールにマッチしてイベントハンドラーのアクションを実施したあとに再度評価を行うタイミングや、ルールにマッチしてからアクションを行うタイミングの指定は、それぞれ「即時」「翌日開始時」などの固定値しか指定できませんでした。しかし、お客様から「利用開始から30日後に IoT SIM の利用を停止したい。ただし、25日目に一度通知を出したい」というようにより柔軟にイベントハンドラーを設定したいという要望がありました。そこで、今回ルールとアクションのそれぞれにオフセットが指定できるように改善しました。

Offset

注意点として、ルールの評価やアクションを実施するタイミングにはタイムラグがあり、厳密にその時間に実施することを保証していない点についてはあらかじめご承知頂ければと思います。

最後に

SORACOM のイベントハンドラーは、自身で SIM を監視することができる非常にユニークな機能です。ぜひうまく使いこなして頂き、フィードバックが頂けますと幸いです。 今後もお客様の声を元に、機能を拡張していく予定です。ぜひご期待ください!

ソラコム 中西 (kaz)


Posted by kaz at 2020/07/14