如何暂停/恢复aws lambda函数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何暂停/恢复aws lambda函数相关的知识,希望对你有一定的参考价值。
例如,我有lambda函数消耗来自Kinesis Stream的消息。如何停止和恢复功能,以便我不会产生费用,我不会在流中丢失数据。
我知道如果事件继续失败,Kinesis将继续重试并且成本可能非常高。
我无法删除该功能,因为CloudFormation周围有很多自动化功能。有没有办法停止并重启功能?
解决方案:http://alestic.com/2015/11/aws-lambda-kinesis-pause-resume
注意:无法使用事件源禁用规则的事件源,日志流。使用SDK调用API时,您不会在列表中获取它。对于那些您必须禁用事件规则或日志订阅。
我们暂时谈谈Kinesis。当您从流中提取记录时,Kinesis将不会“删除”这些记录,直到您“检查”流。您可以反复阅读相同的记录,直到您与Kinesis确认您不再需要它们为止。
AWS Lambda在函数完成执行且没有错误之前不会检查流。 (context.success()
)
如果部署Lambda函数并且它以某种方式中断(出现异常/错误),Lambda函数将不会检查流,并且您的记录将保留在流中很长时间,直到保留期到期(24小时,默认情况下)。然后可以在随后的Lambda执行中读取“未检查点”记录。
在部署期间,同样适用。任何当前正在执行的中断的Lambdas都不会检查流,并且任何正在成功完成的当前正在执行的Lambdas将按预期进行检查。
AWS上更新的Lambda控制台现在在UI中支持此功能。点击提供lambda功能的Kinesis流,切换底部的“Enabled / Disabled”切换,然后保存。这将基本上暂停/恢复你的function.Screenshot - Toggling Kinesis input into Lambda
以上是关于如何暂停/恢复aws lambda函数的主要内容,如果未能解决你的问题,请参考以下文章
在 Activity 内部,如何暂停 for 循环以调用片段,然后在按钮单击片段后恢复循环以重新开始
如何在不使用 SAM 的情况下使用 AWS 代码部署来部署简单的 AWS lambda 函数?