Amazon Kinesis データストリームを処理するとき、AWS Lambda 関数は 1 回の呼び出しで Kinesis イベントソースで設定したバッチサイズよりも少ないレコードを受信します。何故ですか?

Lambda 関数が処理する実際のバッチサイズは、次のいくつかの要因によって決まります。

  • イベントソースをポーリングするときに Lambda が行う GetRecords 呼び出しから受信したレコード数。
  • ユーザー設定のバッチサイズ。これは、ストリームから同時に読み取られるレコードの最大数です。詳細については、「イベントソースマッピングの作成」を参照してください。
  • Lambda 呼び出しペイロードのサイズ制限 6 MB 以内に収まるレコード数。レコードサイズが大きいほど、ペイロードに収めることができるレコードが少なくなります。制限の詳細については、「AWS Lambda の制限」を参照してください。

ストリーム内のデータ量も重要です。つまり、Lambda 関数は、呼び出す前にレコード数が増えるまで待機しません。レコードは通常の速度で引き出され、関数は使用可能なレコードを処理します。ストリーム上のトラフィックが少ない場合は、バッチサイズも小さくなります。

次の式でおおよそのバッチサイズを見積もります。

6000 KB / record size in KB

たとえば、バッチ内の各レコードが 64 KB の場合、1000 レコードのバッチサイズを設定したとしても、1 つのバッチに表示されるのは約 90 レコードとなります。


このページは役に立ちましたか? はい | いいえ

AWS サポート ナレッジ センターに戻る

サポートが必要ですか? AWS サポートセンターをご覧ください。

公開日: 2019 年 1 月 30 日