前提・実現したいこと
S3へのCSVファイルのアップロードをトリガーにlambdaの関数を起動させ、
lambdaの関数内でアップしたS3のファイルの中身を読み取りたいです。
ちなみに読み取りたいのはCSVファイルです。
お手数ですが、どなたか思い当たる節を書いていただけると幸いですm(_ _)m
発生している問題・エラーメッセージ
get_objectのメソッド自体はエラーなくいけてるが、readしても何もはいってない。
該当のソースコード
ruby
1def hogehoge(event:, context:) 2 s3 = Aws::S3::Client.new(region: "hogehogeregion") 3 # ファイル情報の取得 4 record = event["Records"][0]['s3'] 5 get_object = s3.get_object(bucket: record["bucket"]["name"], key: record["object"]["key"]) 6 get_object_body_read = s3.get_object(bucket: record["bucket"]["name"],key: record["object"]["key"]).body.read 7# 実際にはlambdaのログをcloudwatchで見てるため、ロガーではいてます 8puts get_obuject_body_read 9end
試したこと
全ての変数をログで吐いてみたところ、s3、get_object、get_object.bodyまでは、ログに出てるのですが、
get_object_body_read を出力してみると、何も出力されません。
ただ、エラーにもなりません。
イベントの中身を見てみると、アップロードされたファイルのkeyなどは正しく取得できてるので、
S3→lambdaへのevent設定はうまくいってるように見えます。
また、lambda関数側に、S3のgetObjectの許可設定はしてありました。
補足情報(FW/ツールのバージョンなど)
s3クライアント経由でバケット名の取得などはできてるのですが、配下のオブジェクト一覧を表示しても何も表示されませんでした。
あなたの回答
tips
プレビュー