当前位置: 首页 > 知识库问答 >
问题:

亚马逊Kinesis和AWS Lambda重试

慕金林
2023-03-14

我的问题是,如果出于某种原因,一些格式错误的数据被生产者放到碎片上,当Lambda函数提取它时,它会出错,然后不断地重试,会发生什么?这意味着该错误将阻止该特定碎片的处理24小时。

处理这样的应用程序错误的最佳实践是将问题包装在自定义错误中,并将此错误与所有成功处理的记录一起发送到下游,让使用者处理它吗?当然,如果出现无法恢复的错误,程序就像空指针一样崩溃,这仍然没有帮助:在接下来的24小时内,我们将再次回到阻塞重试循环

共有1个答案

林国安
2023-03-14

别想太多了,动力只是一个队列。您必须成功地使用一条记录(即从队列中弹出),才能继续下一条记录。就像FIFO堆栈一样。

适当的做法应该是:

  • 从流中获取记录。
  • 在try-catch-finally块中处理它。
  • 如果记录处理成功,没有问题。<-try
  • 但如果失败了,请将其记录到另一个地方,以调查失败的原因。<-catch
  • 并且在逻辑块的末尾,始终将该位置保存到Dynamodb。<-finally
  • 如果您的系统发生内部错误(内存错误、硬件错误等),那就另当别论了;因为它可能会影响处理所有记录,而不仅仅是一个记录。
 类似资料:
  • 我在推记录的时候检查过了,如果我们有2个碎片,说Shard1 我有几个问题: 如果多个出版商说两个lambda正在用一个碎片推送到一个kinesis流,这会导致任何竞争条件吗?两个不同的源是否可能推送到单个碎片 建议每个制作人使用不同的碎片,还是多个制作人使用单个碎片

  • 我刚刚开始使用AWS EC2。我明白EC2就像一台远程计算机,在那里我可以做几乎所有我想做的事情。然后我发现了ECS的事。我知道它使用Docker,但我对这两者之间的关系感到困惑。 ECS只是EC2中的Docker安装吗?如果我已经有一个EC2并且我启动了一个ECS,这是否意味着我有两个实例?

  • 亚马逊云 图 1.20.2.1 - AWS AWS,即 Amazon Web Services,是亚马逊(Amazon)公司的 IaaS 和 PaaS 平台服务。AWS 提供了一整套基础设施和应用程序服务,使用户几乎能够在云中运行一切应用程序:从企业应用程序和大数据项目,到社交游戏和移动应用程序。AWS 面向用户提供包括弹性计算、存储、数据库、应用程序在内的一整套云计算服务,能够帮助企业降低 IT

  • 我想问alexa各种各样的问题,最后我想让它问“你还有什么想知道的吗?”当我说“是”(yes是工作建议)时,它应该根据我的意图来建议我。就像我在

  • --编辑-- 值得一提的是,我在我的应用程序中同时使用了KCL和KPL。

  • 但有些多重问题, 如何在.NET中对Amazon Cognito用户池执行身份验证。我以以下方式启动Auth: 他们的文档非常非常糟糕,当我想回应挑战时,我似乎找不到该通过什么。 我假设它只是用默认的JWT中间件配置OWIN,还是应该期待其他东西?