

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 為 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)，從 Kafka 主題 (您在 [CreateEventSourceMapping](https://docs.aws.amazon.com/lambda/latest/api/API_CreateEventSourceMapping.html) 請求中指定為 `Topics`) 讀取事件資料。處理成功後，您的 Kafka 主題將遞交給 Kafka 叢集。

Lambda 會依序讀取每個 Kafka 主題分割區的訊息。單一 Lambda 承載可以包含來自多個分割區的訊息。有更多記錄可用時，Lambda 會根據您在 [CreateEventSourceMapping](https://docs.aws.amazon.com/lambda/latest/api/API_CreateEventSourceMapping.html) 請求中指定的 BatchSize 值，繼續以批次方式來處理記錄，直到函式追上主題的進度為止。

Lambda 處理每個批次後，會遞交該批次中訊息的偏移量。如果函數針對批次中的任何訊息傳回錯誤，Lambda 會重試整個批次的訊息，直至處理成功或訊息過期。您可以將所有重試嘗試失敗時的記錄傳送至失敗時的目的地，以便稍後處理。

**注意**  
雖然 Lambda 函數的逾時上限通常為 15 分鐘，但 Amazon MSK、自我管理的 Apache Kafka、Amazon DocumentDB 以及 Amazon MQ for ActiveMQ 和 Amazon MQ for RabbitMQ 的事件來源映射只支援 14 分鐘逾時限制上限的函數。