SORACOMの便利な通知サービスの中でも利用料金に関する通知は閾値を超えたアラートが中心です。日々の利用状況を把握し、予期せぬ高額請求を防ぎたい。そんな思いから、SORACOM Fluxを活用して、毎日の利用料金をメールで受け取れる仕組みを作ってみました。

SORACOM Fluxで構築作業
新規にFluxアプリを作成します。今回は「SORACOM利用状況通知」という名前にしました。

名前を入力し、「作成」をクリックすると以下画面になるので「+チャネルを作成する」をクリックします。

今回は1日1回通知してほしいので「インターバルタイマー」を利用します。なお、Fluxの有償プランを契約すると「スケジュールタイマー」を利用するも可能です。
インターバルタイマーを設定することで、毎日決まった時間に処理が実行されます。
有償プランのため、利用したことはありませんが、特定の曜日や時間に通知したい場合は、スケジュールタイマーが便利だと思われます。

新しいチャネル作成画面に遷移します。今回は1日1回通知してほしいため、以下のように設定し、「+チャネルを作成」を選択します。
インターバルタイマー:有効
スケジュール定義:1日
イベントペイロード:(空白)
説明:(任意)
作成したチャネルをクリックし、「アクション」タブ内にある「+アクションを追加」をクリックします。

ここではどのような処理を行うか選択します。今回はSORACOMの利用料を取得する際に、SORACOM APIを利用するため「SORACOM API」を選択し、「OK」をクリックします。

APIの設定を行います。今回は以下の通り指定しました。
名前:今月の利用料を取得:SORACOM API(任意の名称)
概要:(空白)
CONDITION:有効
API:getLatestBilling(今月の利用料金を取得する)
URL:/v1/bills/latest(自動入力)
APIを実行するSAMユーザ:新しくUserを作成する※
アクションのアウトプットを別のチャネルに送信する;有効
送信先チャネル:CostOutput(任意の名称)
※セキュリティの観点からも、適切な権限を持つ SAM ユーザーを作成することの重要性です。



すると新たに「CostOutput」というチャネルが出来上がるので選択、「アクション」タブから「+アクションを追加」をクリックします。

「Email通知」を選択し「OK」をクリックします。

Email通知の設定を行います。今回は以下の通り指定しました。
名前:SORACOM利用料通知:Email 通知(任意の名称)
概要:(空白)
CONDITION:有効
アクションの実行条件:(空白)
TO:<メールの送信先(TO)>
CC:<メールの送信先(CC)>(任意)
BCC:<メールの送信先(BCC)>(任意)
件名:SORACOM利用料通知(任意の件名)
本文:${payload}
アクションのアウトプットを別のチャネルに送信する:無効

ここまで作成し、1度テストを実施します。以下のようなパイプラインが完成しているので「インターバルタイマー」をクリックします。

「テスト実行」をクリック、今回はBodyには何も設定せず初期値のまま「実行」をクリックします。

正常終了すると以下メールが指定したアドレスに送信されます。

無事にメールが送信されましたが、人間には少しやさしくないメールです。そのため、Email通知の本文を以下の通り変更します。

本日までの利用料金をお知らせします。
利用料:${payload.amount}
${payload.amount}と記述することで、APIのレスポンスに含まれる amount というキーで利用料金を取得できます。
同様にテストを実施すると以下のようにわかりやすいメールが送信されました。

これで、SORACOMの利用料金を毎日手軽に把握できるようになりました。
まとめ
今回、SORACOM Fluxを活用して、SORACOMの現在の利用料金を毎朝自動でメール通知する仕組みを構築してみました。これまで、利用料金のアラート通知はありましたが、日々の利用状況を手軽に把握するには、このような定期的な通知が役立ちます。
SORACOM FluxとSORACOM API連携、そしてEmail通知機能を組み合わせることで、プログラミングの知識がなくても、簡単にこのような自動化処理が実現できるのが魅力です。
コメント