変更ストリームでの AWS Lambda の使用 - Amazon DocumentDB

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

変更ストリームでの AWS Lambda の使用

Amazon DocumentDB は AWS Lambda と連携している、Lambda 関数を使用して変更ストリームのレコードを処理できます。Lambda イベントソースマッピングは、Lambda を直接呼び出さない Amazon DocumentDB イベントを処理する際の Lambda 関数の呼び出しに使用できるリソースです。Amazon DocumentDB 変更ストリームをイベントソースとして利用すると、データの変更に対応するイベント駆動型アプリケーションを構築できます。例えば、Lambda 関数を使用して、新しいドキュメントを処理したり、既存のドキュメントの更新を追跡したり、ドキュメントの削除を記録したりできます。

イベントソースマッピングの設定では、Amazon DocumentDB 変更ストリームから Lambda 関数にレコードを送信するようにできます。イベントは一度に 1 つずつ送信することも、バッチ処理して効率を上げるもでき、その場合は順番に処理されます。イベントソースマッピングのバッチ処理動作は、特定のウィンドウ時間(0~300 秒)またはバッチレコード数(最大 10000 レコード)に基づいて設定できます。複数のイベントソースマッピングを作成することで、複数の Lambda 関数で同じデータを処理したり、1 つの関数で複数のストリームの項目を個別に処理したりできます。

関数からエラーが返された場合、Lambda は成功するまでバッチの実行を再試行します。変更ストリームのイベントの有効期限が切れた場合は、イベントソースマッピングを無効にします。この場合は、新しいイベントソースマッピングを作成し、任意の開始位置に設定できます。Lambda イベントソースマッピングは、ポーラーに備わる分散性が理由で、少なくとも 1 回イベントを処理します。その結果、まれに Lambda 関数が重複するイベントを受け取ることがあります。AWS Lambda 関数の使用に関するベストプラクティスに従い、冪等性関数を作成して、同じイベントに関連する問題が発生するのを回避してください。詳細については「AWS Lambda デベロッパーガイド」の「Amazon DocumentDB での AWS Lambda console の使用」を参照してください。

パフォーマンスのベストプラクティスとして、Lambda 関数は存続期間を短くする必要があります。また、不必要な処理の遅延が発生するのを防ぐため、複雑なロジックは実行しないでください。特に高速ストリームの場合は、同期的に長時間実行する Lambda よりも、非同期的な後処理ステップ関数ワークフローをトリガーすることをお勧めします。AWS Lambda の詳細については、「AWS Lambda デベロッパーガイド」を参照してください。

制限事項

Amazon DocumentDB および AWS Lambda を使用する際は、以下の制限事項を考慮してください。

  • AWS Lambda は現在、Amazon DocumentDB 4.0 および 5.0 でのみサポートされている。

  • AWS Lambda は現在、エラスティッククラスターおよびグローバルクラスターではサポートされていない。

  • AWS Lambda のペイロードサイズは 6 MB を超えることはできない。Lambda バッチサイズの詳細については、AWS Lambda 開発者ガイドの「Lambda イベントソースマッピング」セクションの「バッチの動作」を参照してください。