質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
AWS Lambda

AWS Lambdaは、クラウド上でアプリを実行できるコンピューティングサービス。サーバーのプロビジョニングや管理を要せず複数のイベントに対してコードを実行します。カスタムロジック用いた他AWSサービスの拡張やAWSの規模やパフォーマンスを用いたバックエンドサービスを作成できます。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

0回答

2473閲覧

AWSでLambda関数を作成するとき、AWS IoTから持ってきたデータが配列だった場合どのようにして一つ一つの値を取り出せばよいか。

awstukaitai

総合スコア15

AWS Lambda

AWS Lambdaは、クラウド上でアプリを実行できるコンピューティングサービス。サーバーのプロビジョニングや管理を要せず複数のイベントに対してコードを実行します。カスタムロジック用いた他AWSサービスの拡張やAWSの規模やパフォーマンスを用いたバックエンドサービスを作成できます。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

0クリップ

投稿2018/11/24 16:06

編集2018/11/25 00:42

指摘されていた点を修正いたしました。どうか回答よろしくお願いします。
はじめまして。

早速ですが質問に移らせていただきます。
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}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

y_waiwai

2018/11/24 23:48

エラーが出るなら、そのエラーメッセージを省略せずにそのまま提示してください。また、コードもそのままでは読めないんで、質門を編集して、<code>ボタン、’’’の枠の中にコードを貼り付けてください
awstukaitai

2018/11/25 00:42

修正完了いたしました。どうかご回答よろしくお願いします。
marukomett

2022/12/20 15:57

print(s)とか途中で挟んで値が取得出来てるか確認していくといいとおもいます。 あと、見るかんじs, st, fsは文字列だと思うんでstr関数で変換する必要はないと思います
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問