

# Lambda 中 Apache Kafka 轮询和流的起始位置
<a name="kafka-starting-positions"></a>

[StartingPosition 参数](https://docs.aws.amazon.com/lambda/latest/api/API_CreateEventSourceMapping.html#lambda-CreateEventSourceMapping-request-StartingPosition)告诉 Lambda 何时开始从 Amazon MSK 或自托管式 Apache Kafka 流中读取消息。有三个选项可供选择：
+ **最新**：Lambda 从 Kafka 主题中的最新记录之后开始读取。
+ **修剪水平线**：Lambda 从 Kafka 主题中最后一条未修剪的记录开始读取。这也是该主题中最早的记录。
+ **位于时间戳**：Lambda 从时间戳定义的位置开始读取，以 Unix 时间秒为单位。使用 [StartingPositionTimestamp 参数](https://docs.aws.amazon.com/lambda/latest/api/API_CreateEventSourceMapping.html#lambda-CreateEventSourceMapping-request-StartingPositionTimestamp)指定时间戳。

事件源映射创建或更新期间的流轮询最终是一致的：
+ 在事件源映射创建期间，可能需要几分钟才能开始轮询来自流的事件。
+ 在事件源映射更新期间，可能需要长达 90 秒才能停止和重新开始轮询来自流的事件。

此行为意味着，如果您指定 `LATEST` 作为流的起始位置，事件源映射可能会在创建或更新期间错过事件。为确保不会错过任何事件，请指定 `TRIM_HORIZON` 或 `AT_TIMESTAMP`。