AWS IoTでJSON以外の文字列を送る
もくじ
今回作るもの
はい👻
AWS IoTでJSON以外の形式でデータを送ってLamdaで取得する! です。
全体の構成は自体は以前の記事と全く一緒です。 ただしAWS IoTのルールクエリステートメントとLamdaが変わります。
さて、
使えるところは過去記事を参照していただこうと思います笑 ゴメンナサイ……
構成とは別に、実装方法ですが、、、
IoTルールでJSONではないメッセージをbase64にエンコードしてLamdaに渡します。 そしてLamdaではメッセージをdecodeして取得する、、、そんな流れですね笑
では 作っていきましょう👻
ステップ1
以前の記事のステップ1のLamdaのソースコードだけ下記に変更してください笑
コードはこちら↓
import base64
def lambda_handler(event, context):
message = base64.b64decode(event['message'])
print(message.decode('utf-8'))
return message
コードの意味としてはeventからmessageというキーを取得して、それをbase64でデコード。さらにそれをUTF-8でデコードしてログに吐き出します。
ステップ2
以前の記事のステップ2のルールクエリステートメントを書き換えます。下記な感じです。
SELECT {'message': encode(*, 'base64')} FROM 'AAAA/BBBB/CCCC'
ステップ3
以前の記事のステップ3の下記な感じでテストをします。
「トピックに発行」をクリックして次へ
ステップ4
CloudWatchのログで、下記のような文字列が確認できれば成功です👻
はい👻
お疲れさまでした!