

# 为 Lambda 配置自托管式 Apache Kafka 事件源
<a name="with-kafka-configure"></a>

要使自托管式 Apache Kafka 集群作为 Lambda 函数的事件源，您需要创建连接这两个资源的[事件源映射](invocation-eventsourcemapping.md)。此页面介绍如何为自托管式 Apache Kafka 创建事件源映射。

此页面假设您已经正确配置 Kafka 集群及其所在的网络。如果您需要设置集群或网络，请参阅[为 Lambda 配置自托管式 Apache Kafka 集群和网络](with-kafka-cluster-network.md)。

**Topics**
+ [将自托管式 Apache Kafka 集群作为事件源](#kafka-esm-overview)
+ [在 Lambda 中配置集群身份验证方法](kafka-cluster-auth.md)
+ [为自托管式 Apache Kafka 事件源创建 Lambda 事件源映射](kafka-esm-create.md)
+ [Lambda 中的所有自托管式 Apache Kafka 事件源配置参数](kafka-esm-parameters.md)

## 将自托管式 Apache Kafka 集群作为事件源
<a name="kafka-esm-overview"></a>

当您添加 Apache Kafka 或 Amazon MSK 集群作为 Lambda 函数的触发器时，该集群将用作[事件源](invocation-eventsourcemapping.md)。

Lambda 根据您指定的[起始位置](kafka-starting-positions.md)，从您在 [CreateEventSourceMapping](https://docs.amazonaws.cn/lambda/latest/api/API_CreateEventSourceMapping.html) 请求中指定为 `Topics` 的 Kafka 主题读取事件数据。成功进行处理后，会将 Kafka 主题提交给 Kafka 集群。

Lambda 按顺序读取每个 Kafka 主题分区的消息。单个 Lambda 负载可以包含来自多个分区的消息。当有更多记录可用时，Lambda 根据您在 [CreateEventSourceMapping](https://docs.amazonaws.cn/lambda/latest/api/API_CreateEventSourceMapping.html) 请求中指定的 BatchSize 值，继续对记录进行批处理，直到函数赶上主题的速度。

Lambda 处理各个批次后，会提交该批次中消息的偏移量。如果函数为批处理中的任何消息返回错误，Lambda 将重试整批消息，直到处理成功或消息过期为止。您可以将所有重试都失败的记录发送到失败时的目标，以供日后处理。

**注意**  
尽管 Lambda 函数的最大超时限制通常为 15 分钟，但 Amazon MSK、自行管理的 Apache Kafka、Amazon DocumentDB、Amazon MQ for ActiveMQ 和 RabbitMQ 的事件源映射，仅支持最大超时限制为 14 分钟的函数。