Lambda 用のセルフマネージド Apache Kafka をイベントソースの設定 - AWS Lambda

Lambda 用のセルフマネージド Apache Kafka をイベントソースの設定

セルフマネージド Apache Kafka クラスターを Lambda 関数のイベントソースとして使用するには、2 つのリソースを接続するイベントソースマッピングを作成します。このページでは、セルフマネージド Apache Kafka 用にイベントソースマッピングを作成する方法について説明します。

このページの説明は、Kafka クラスターおよびそのクラスターが存在するネットワークを正しく設定済みであることを前提としています。クラスターまたはネットワークをセットアップする必要がある場合は、「Lambda 用のセルフマネージド Apache Kafka クラスターとネットワークの設定」を参照してください。

イベントソースとしてセルフマネージド Apache Kafka クラスターを使用する

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 分の関数のみがサポートされます。