指摘されていた点を修正いたしました。どうか回答よろしくお願いします。
はじめまして。
早速ですが質問に移らせていただきます。
AWSでLambda関数を作成するとき、AWS IoTから持ってきたデータが配列だった場合にはどのようにして一つ一つの値を取り出せばよいのかわかりません。
私は今、IoTデバイスから持ってきたデータをLambdaで加工してS3のバケットに保存するという処理を書いているのですが、上記のことが原因でうまくいっていません。AWS IoTのRuleでメッセージをLambda関数に渡すという処理を行っているため、lambda-handlerのeventに送られてきた各種データが保存されている...はずです。Lambda関数のランタイムはPython2.7を使用しています。
普段このレベルのプログラムもまともに書いたことがないため、なぜ動かないのかよくわからないです。
どうか知識のある方のお力をお借りしたいと思っています。よろしくお願いします。
以下はLambda関数を作成するときに打ったコードです。(エラーが出ています。)
{ "errorMessage": "Syntax error in module 'lambda_function'" }
python2.7
1import json 2import boto3 3 4bucket_name = "s3bucketname" 5filename = "filename.txt" 6 7def s3_put(bucketName, key, body): 8 s3 = boto3.resource('s3') 9 bucket = s3.Bucket(bucketName) 10 obj = bucket.Object(key) 11 resp = obj.put(Body=body) 12 print('Uploaded ' + key + ' to ' + bucketName) 13 14def lambda_handler(event, context): 15 s = event["s"] 16 st = event["st"] 17 fs = event["fs"] 18 m1 = str(s) 19 m2 = str(st) 20 m3 = str(fs) 21 finmess = m1+","+m2+","+m3 22 23 s3_put(bucket_name,filename,finmess) 24 25 return True
Lambda関数で行ったテストイベントのコード
1{ 2 "s": "A", 3 "st": "1", 4 "fs": "20" 5}
あなたの回答
tips
プレビュー