在设置AWS Lambda时,默认情况下我们有一个最大重试次数为2。 但是,当我给它添加DynamoDB触发器时,有一个10,000次的重试选项 那么哪个设置是正确的?如果出现异常,重试次数是10,000次还是2次。能否有人指导一下。谢谢!
你所描述的是两件不同的事情。第一种情况(2次重试)适用于Lambda的异步调用,这意味着你(或某个服务)调用Lambda函数并且不等待结果。在这种情况下,Lambda服务将尝试在后台调用你的函数2次,前提是原始调用失败。第二种情况(10000次重试)适用于事件源映射(Event Source Mapping)。这是Lambda服务中的一个特殊过程,它监视数据源(在本例中是DynamoDB流)并代表你调用你的函数。在此过程中,除了设置映射之外,你无需参与。在这种情况下,事件源映射会同步调用你的Lambda函数。如果发生错误,它将尝试执行此操作10000次。这是与用于异步调用的重试设置不同的设置。希望这可以帮到你。
那么哪些设置是正确的呢?如果发生异常,重试次数是10,000次还是2次?两个重试具有不同的目的和含义。1. Lambda 重试意味着您的 Lambda 函数已被触发,并且在处理事件期间发生了某些错误,因此它将再次重试以处理相同的事件。 在此情况下,您的 Lambda 函数尚未被触发,因为在从事件源中拉取流时出现了错误。 Lambda从事件源读取项目并触发函数。这个术语不是在函数的上下文中使用的。一旦它从流中获取事件,它就会使用所需的流事件触发Lambda。您可以查看下面的图表,这是Kinesis流的相同示例(下面的图表)。您可以阅读更多关于此的信息{{link3:异步调用}},{{link4:创建事件源映射}}和{{link5:了解Lambda事件重试}}。 使用DynamoDB Stream的Lambda