Lambda结合DDB流翻滚窗口的重试机制及DLQ投递疑问
Lambda结合DDB触发器、翻滚窗口与DLQ的行为解析
DLQ接收的数据范围:当第n次Lambda执行失败时,DLQ只会接收第n次执行对应的那10条DDB流批次数据,不会包含第1到n-1次的批次数据。原因是DDB流的每个批次都是独立触发Lambda执行的,翻滚窗口只是让Lambda在指定时间内复用执行环境并维护状态,但每个批次的失败重试、DLQ转发都是针对该批次本身的,和其他批次无关。
状态信息是否会发送到DLQ:你在翻滚窗口内维护的状态x不会随元数据一同发送到DLQ。DLQ中的消息仅包含触发本次Lambda执行的原始DDB流事件、Lambda执行失败的错误详情(如堆栈跟踪、错误代码)以及基础请求元数据(如请求ID、执行时间),自定义的状态数据属于Lambda执行环境内的私有数据,不会被自动附加到DLQ消息中。
额外补充:如果同一个翻滚窗口内有多批次执行失败,每一次失败的批次都会作为独立消息被发送到DLQ,彼此互不干扰。
内容的提问来源于stack exchange,提问作者itrat jameel
相关产品推荐
相关产品推荐

