Lambda での Amazon MSK イベントソースの設定
Amazon MSK クラスターを Lambda 関数のイベントソースとして使用するには、2 つのリソースを接続するイベントソースマッピングを作成します。このページでは、Amazon MSK 用にイベントソースマッピングを作成する方法について説明します。
このページの説明は、MSK クラスターおよびそのクラスターが存在する Amazon 仮想プライベートクラウド (VPC) を正しく設定済みであることを前提としています。クラスターまたは VPC をセットアップする必要がある場合は、「Amazon MSK クラスターおよび Amazon VPC ネットワークの Lambda 向け設定」を参照してください。
トピック
イベントソースとしての Amazon MSK クラスターの使用
Apache Kafka クラスターまたは Amazon MSK クラスターを Lambda 関数のトリガーとして追加すると、クラスターはイベントソースとして使用されます。
Lambda は、ユーザーが指定した開始位置に基づいて、CreateEventSourceMapping リクエストで Topics
として指定した Kafka トピックからイベントデータを読み取ります。処理が成功すると、Kafka トピックは Kafka クラスターにコミットされます。
Lambda は、Kafka トピックの各パーティションのメッセージを順番に読み込みます。1 つの Lambda ペイロードに、複数のパーティションからのメッセージを含めることができます。利用可能なレコードが増えると、Lambda は CreateEventSourceMapping リクエストで指定した BatchSize 値に基づいて、関数がトピックに追いつくまでバッチ単位でレコードの処理を継続します。
Lambda は各バッチを処理した後、そのバッチ内のメッセージのオフセットをコミットします。関数がバッチ内のいずれかのメッセージに対してエラーを返すと、Lambda は、処理が成功するかメッセージが期限切れになるまでメッセージのバッチ全体を再試行します。すべての再試行が失敗したレコードを、障害発生時の送信先に送信して、後で処理することができます。
注記
Lambda 関数の最大タイムアウト制限は通常 15 分ですが、Amazon MSK、自己管理型 Apache Kafka、Amazon DocumentDB、および ActiveMQ と RabbitMQ 向け Amazon MQ のイベントソースマッピングでは、最大タイムアウト制限が 14 分の関数のみがサポートされます。