複数の DynamoDB ストリームがイベント ソースとして設定されている Lambda 関数があり、これはより大きなパイプラインの一部です。チェックを行っているときに、ダウンストリーム コンポーネントの 1 つで欠落しているデータを見つけました。前述の DynamoDB ストリームの 1 つに対するイベント ソースとして設定された、より単純な Lambda 関数を作成したいと考えています。これにより、DynamoDB ストリームの 1 つに 2 つの Lambda 関数が読み取られます。これでいいのかな?と思いました。両方の Lamdba 関数は、ストリームに配置されたすべてのレコードを受け取ることが保証されていますか?また、注意が必要なリソース (読み取り/書き込みスループット) の制限はありますか? AWS Web サイトでこれに関する関連ドキュメントを見つけることができませんでしたが、シャードの処理に関してこれを見つけました
ストリームにアクセスしてストリーム内のレコードを処理するには、次の手順を実行する必要があります。
- アクセスするストリームの一意の Amazon リソースネーム (ARN) を決定します。
- ストリーム内のどのシャードに、関心のあるストリーム レコードが含まれているかを判断します。
- シャードにアクセスして、必要なストリーム レコードを取得します。
注 同じ Streams シャードから同時に読み取るプロセスは、最大で 2 つまでです。シャードごとに 2 つを超えるリーダーがあると、スロットリングが発生する可能性があります。
上記が、API を使用してストリームから手動で読み取るのではなく、ストリームが Lambda へのイベント ソースとして構成されている場合にどのように関連するかはわかりません。