如何暂停/恢复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 循环以调用片段,然后在按钮单击片段后恢复循环以重新开始

如何查看 AWS Lambda 中先前创建的函数的代码

如何在不使用 SAM 的情况下使用 AWS 代码部署来部署简单的 AWS lambda 函数?

AWS CloudFormation:如何从另一个AWS账户为Lambda代码指定存储桶?

如何从 JAVA 调用 AWS lambda 函数?

DynamoDB 流 和 AWS Lambda 触发器