amazon-web-services - 如何暂停/恢复AWS Lambda函数

标签 amazon-web-services amazon-dynamodb aws-lambda amazon-kinesis

例如,我有使用来自KinesisStream的消息的lambda函数。如何停止和恢复该功能,以免产生费用,也不会丢失流中的数据。

我知道,如果事件继续失败,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执行中读取“未检查点”记录。

在部署期间,同样的事情适用。当前被中断的任何正在执行的Lambda都不会对流进行检查,而成功完成的所有当前正在执行的Lambda将按您的期望进行检查。

关于amazon-web-services - 如何暂停/恢复AWS Lambda函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37971987/

相关文章:

amazon-web-services - "type mismatch error, expected type LIST"用于查询 AppSync 中的一对多关系

java - 如何使用AWS Lambda Java函数调用第三方REST API?

java - AWS Lambda - 回调 ("some error type") 相当于 Java 8

python - Boto3 中的异常 - botocore.exceptions.EndpointConnectionError

amazon-web-services - 创建 EKS 集群时用于加密的 k8s 资源和提供程序无效

amazon-web-services - 如何为巨大的静态 dynamodb 表中的每个项目触发 lambda

node.js:创建表时如何在 DynamoDB 中添加非键属性?

amazon-web-services - 从 AWS Lambda 发送 RabbitMQ 消息

python - 从 boto3 访问 DynamoDB Local

amazon-web-services - AWS Lambda 层能否在函数/处理程序不调用该层的情况下拦截 Lambda 函数处理程序?