发布于: Jul 13, 2023

AWS Lambda 现在可以检测并停止 Lambda 函数中的递归循环。客户使用 Lambda 函数构建事件驱动型应用程序,以处理来自 Amazon SQS 和 Amazon SNS 等来源的事件。但是,在某些情况下,由于资源配置错误或代码缺陷,处理过的事件可能会被发送回调用 Lambda 函数的同一服务或资源。这可能会导致意想不到的递归循环,并为客户带来意外使用和成本。通过此次发布,Lambda 将在 16 次递归调用后停止 Amazon SQS、AWS Lambda 和 Amazon SNS 之间的递归调用。

当函数使用支持的 AWS SDK 版本或更高版本向 Amazon SQS 或 Amazon SNS 发送事件时,Lambda 会根据该事件跟踪函数被调用的次数。如果同一个触发事件调用某个函数超过 16 次,Lambda 将停止下一次调用,并将该事件发送到死信队列或故障时目标(如果已配置)。客户还将收到 AWS Health Dashboard 通知,其中包含故障排除步骤。

此功能默认处于开启状态,并在以下 AWS 区域提供:亚太地区(香港、雅加达、大阪、孟买、首尔、新加坡、悉尼、东京)、非洲(开普敦)、加拿大(中部)、欧洲地区(法兰克福、爱尔兰、伦敦、米兰、巴黎、斯德哥尔摩)、南美洲(圣保罗)、美国东部(俄亥俄州、弗吉尼亚州北部)、美国西部(俄勒冈州、北加利福尼亚)。要为您的 AWS 账户关闭该功能,请联系 AWS Support。有关更多信息,请参阅我们的文档或关于此次发布的博客文章