2017-09-19 14 views
0

私はawa lambdaを実行しています。これはmaria DBからデータをフェッチし、取り出された行をJSONオブジェクトとして返します。 JSON配列のアイテムの総数は64Kです。Aws Lambdaの応答エラー

私はこのエラーを取得しています:

{ "error": "body size is too long" } 

は、私は、ラムダへ設定の変更を行うことにより、全ての64K行を送ることができる方法はありますか?

答えて

1

あなたはラムダに設定を変更する(6メガバイト本体のペイロードサイズlimitを超えて)64K行を送信することはできません。いくつかの代替オプションがあります。

  • クエリデータ及び全ての行/ tmpにラムダ内のディレクトリ(最大512MB)とJSONファイルをビルドし、S3にアップロードしてデータにアクセスするためにCloudFront Signed URLを返します。
  • データセットを複数のページに分割し、複数のクエリを実行します。
  • ラムダの代わりにEC2インスタンスまたはECSを使用します。

注:クエリされたデータの目的に基づいて、そのサイズは&などです。他のAWSサービスを効率的に使用して、さまざまなメカニズムを使用できます。

+0

親愛なるあなたの3番目のポイントをもっと詳しく説明できますか?エクスプレスでノードjsにAPIを書き、EC2インスタンスで公開することを意味しますか? –

+0

はい。 EC2インスタンスでNodeJS(ExpressJSまたはその他の適切なフレームワークを使用)を使用するか、Dockerコンテナを使用するか、コンテナクラスタでサービスをホストします。 – Ashan

+0

提案してくれてありがとう@Ashan、今私はそれに取り組んでいます...乾杯 –

1

最大6 MBの応答サイズの厳しい限界に遭っているようです。ハードな制限のため、残念ながらこれを増やす方法はありません。

最大6MBを送信できるようにラムダを設定し、すべての64Kをフェッチするまで、異なる呼び出しで取得する必要がある行をページ付けする必要があります。

源: https://docs.aws.amazon.com/lambda/latest/dg/limits.html#limits-list

https://forums.aws.amazon.com/thread.jspa?threadID=230229