SORACOM AirのSpeed ClassをLambdaで操作する

2016年02月10日
投稿者:土持 昌志
カテゴリ:Amazon Web Services, Lambda タグ:

IoT向けデータ通信サービスを提供しているSORACOMさんはAPIを公開されていて、通信速度や使用状況などを取得することができます。
夜間は通信速度にかかわらず値段が一定なので、今回は夜になったら通信速度アップさせることを想定しAWS Lambda(Python)でAPIを操作してみます。

SORACOMのSDKはRubyとGo (beta)が提供されていますが、非公式ながらPythonのSDKがあったのでこれを使います。

Lambdaで外部ライブラリを使う場合、ZIP化しないといけないので -t をつけて現在のディレクトリにインストールします。
pip install requests -t .
pip install soracom -t .

以下のようなコードを書きます。
SORACOM AirのSIM一覧を取得し、速度をs1.fastに変更しています。

コードをライブラリをまとめてzipにします。
zip -r function.zip *

作成したzipファイルをLambdaにPythonスクリプトとしてアップロードします。
スクリーンショット 2016-02-10 0.46.13
スクリーンショット 2016-02-10 0.51.01

テスト実行してみます。

START RequestId: 1bcdc080-cf45-11e5-8890-db7a0d32535f Version: $LATEST
Received event: {“key3”: “value3”, “key2”: “value2”, “key1”: “value1”}
[{u’speedClass’: u’s1.fast’, u’imsi’: u’44010xxxxxxxxxx’}]
END RequestId: 1bcdc080-cf45-11e5-8890-db7a0d32535f
REPORT RequestId: 1bcdc080-cf45-11e5-8890-db7a0d32535f Duration: 919.02 ms Billed Duration: 1000 ms Memory Size: 128 MB Max Memory Used: 31 MB

速度がスクリプト中で指定したs1.fastに変更されました。あとは速度を落とすLambda Functionも用意して、Scheduled Eventで定期的に実行させればよさそうです。


コメントを残す

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