如何暂停/恢复aws lambda函数

问题描述 投票:9回答:2

例如,我有lambda函数消耗来自Kinesis Stream的消息。如何停止和恢复功能,以便我不会产生费用,我不会在流中丢失数据。

我知道如果事件继续失败,Kinesis将继续重试并且成本可能非常高。

我无法删除该功能,因为CloudFormation周围有很多自动化功能。有没有办法停止并重启功能?

解决方案:http://alestic.com/2015/11/aws-lambda-kinesis-pause-resume

注意:无法使用事件源禁用规则的事件源,日志流。使用SDK调用API时,您不会在列表中获取它。对于那些您必须禁用事件规则或日志订阅。

amazon-web-services amazon-dynamodb aws-lambda amazon-kinesis
2个回答
6
投票

我们暂时谈谈Kinesis。当您从流中提取记录时,Kinesis将不会“删除”这些记录,直到您“检查”流。您可以反复阅读相同的记录,直到您与Kinesis确认您不再需要它们为止。

AWS Lambda在函数完成执行且没有错误之前不会检查流。 (context.success()

如果部署Lambda函数并且它以某种方式中断(出现异常/错误),Lambda函数将不会检查流,并且您的记录将保留在流中很长时间,直到保留期到期(24小时,默认情况下)。然后可以在随后的Lambda执行中读取“未检查点”记录。

在部署期间,同样适用。任何当前正在执行的中断的Lambdas都不会检查流,并且任何正在成功完成的当前正在执行的Lambdas将按预期进行检查。


2
投票

AWS上更新的Lambda控制台现在在UI中支持此功能。点击提供lambda功能的Kinesis流,切换底部的“Enabled / Disabled”切换,然后保存。这将基本上暂停/恢复你的function.Screenshot - Toggling Kinesis input into Lambda

© www.soinside.com 2019 - 2024. All rights reserved.