【问题标题】:How to know that an AWS kinesis event has been successfully sent to a client via a lambda function?如何知道 AWS 运动事件已通过 lambda 函数成功发送到客户端?
【发布时间】:2022-12-09 07:08:46
【问题描述】:

我有一个架构,其中 lambda 函数将运动流中的事件传递给客户端。如果事件成功传递,则该事件应该从运动流中的队列中弹出。如果事件未成功传递,则它将在 x 分钟后重试。

  1. 如何判断事件是否发送成功?
  2. 如何从数据流队列中手动弹出一个事件?
  3. 如果不成功,如何安排重新运行?

【问题讨论】:

  • 通过调用put_record / put_records,你可以从kinesis中得到一个答案。例如,您在这里有一个格式响应:AWS Doc - Kinesis put_record,您将收到一个 200 响应。您无法从 Kinesis 手动获取记录,如果您想查看结果,可以使用一个小的 lambda 函数来获取响应。根据“put_record”/“put_records”收到的响应,您可以在函数内使用选定的重试次数进行一些递归调用。

标签: amazon-web-services aws-lambda amazon-kinesis amazon-kinesis-firehose data-stream


【解决方案1】:

我认为您将 SQS 与 Kinesis 混淆了。 Kinesis 没有任何“队列”,您也不能“弹出”来自 Kinesis 的任何消息。你必须等到它们自己过期。

此外,您无法控制客户端从 Kinesis 流读取消息的内容和是否读取消息。管理它的是客户责任,而不是作为生产者的你。

【讨论】:

    猜你喜欢
    • 2019-07-31
    • 2017-12-29
    • 2016-10-21
    • 2020-10-11
    • 2017-06-22
    • 2013-04-27
    • 2017-01-12
    • 2022-01-20
    • 2018-01-31
    相关资源
    最近更新 更多