前提・実現したいこと
- 環境: AWS APIGateway, Lambda(言語はruby), csv用s3
LambdaのトリガーとしてAPI Gatewayを設定し、Lambdaの中ではs3からcsvファイルを読み込み,
検索を行ってレスポンスで結果を返します。
上記の処理を0.3秒ぐらいで終わらせたいです。
Lambdaのメモリを増やす以外の方法はないでしょうか、、
発生している問題・エラーメッセージ
この過程が2秒以上掛かってしまうのが問題です。
tsv(tab区切りのtxtファイルです)の大きさは3mbで5000行ぐらいです。
下記該当のソースコードのCSV.parseのところで2秒ぐらい掛かってるのはないかと思われます
該当のソースコード
ruby
1body = s3.bucket('bucket name').object('ファイルキー').get.body.string 2CSV.parse(body, col_sep: "\t")
試したこと
- Lambdaのメモリが128mb(default)になっておりますが、メモリを増やしたら確かに早くなりました。
- csvを読み込むのが遅いからLambdaのin memoryを利用するためglobal変数に指定しましたが、10分後には初期化されてました。
- aws Athenaを使ってcsvにクエリを投げてみましたが、結局レスポンスまで2~3秒かかるのは同じでした。
補足情報(FW/ツールのバージョンなど)
- rubyバージョンは2.5.0です
回答1件
あなたの回答
tips
プレビュー