【AWS Lambdaの基本コードその4】 AWS IoTにメッセージをPublish

こんにちは、Michaelです。
今回は、AWS LambdaからAWS IoTにメッセージをPublishしてみます。

今回の構成

Lambdaが起動されると、AWS IoTのトピック「test/pub」に対してメッセージをPublishします。IoTデバイス側で「test/pub」をSubscribeすることで、Lambdaからのメッセージを受け取ることができます。

IAMロールの設定

LambdaからAWS IoTにPublishするため、以下のポリシーを作成し、Lambdaに適用するIAMロールにアタッチします。

コード

コードは以下のようになります。

コードの説明

コードの内容は以下の通りです。

t

項番 項目 内容
ライブラリのimpor 処理に必要なライブラリを指定してインポートします。
Functionのロードをログに出力 Lambdaのコードがロードされたことが分かるようにログにメッセージを出力します。
AWS IoT Data Planeオブジェクトを取得 AWS IoTに対してメッセージを送信できるようにインスタンスを生成します。
Lambdaのメイン関数 トリガーにより実行される関数。
トピックを指定 Publish先のトピックを設定します
メッセージの内容 AWS IoTにPublishされるメッセージ内容です。
メッセージをPublish AWS IoTにメッセージをPublishします。

実行結果

Lambdaのコードエディタの上部にある[テスト]をクリックすると、テスト実行されます。
AWS IoTのテストコンソールでトピック「test/pub」をSubscribeした状態でLambdaをテスト実行すると、「⑥メッセージの内容」に設定したメッセージが出力されました。


また、IoTデバイスとしてMQTT.fxクライアントで「test/pub」をSubscribeし、テスト実行をすると、MQTT.fxクライアント側でも同じメッセージを受け取ることができました。

まとめ

Lambdaはトリガー設定次第で様々な挙動ができるため、IoTデバイスに対して意図したタイミングでメッセージを飛ばすといった運用ができます。
例えば、CloudWatch Eventsで1時間に1回デバイスにメッセージを飛ばしたり、AWS IoTをトリガーとしてIoTデバイスからのメッセージに応答させたりといった応用が可能です。
今回は以上となります。次回もお楽しみに!