gpt4 book ai didi

amazon-web-services - 运动数据流不是实时的?

转载 作者:行者123 更新时间:2023-12-05 05:08:48 25 4
gpt4 key购买 nike

在运动流消息 (serverless.yml) 上触发了一个函数:

functions:
kinesis-handler:
handler: kinesis-handler.handle
events:
- stream:
type: kinesis
arn:
Fn::Join:
- ':'
- - arn
- aws
- kinesis
- Ref: AWS::Region
- Ref: AWS::AccountId
- stream/intercom-stream
startingPosition: LATEST
batchSize: 100
enabled: true

该函数最终会被触发(消息发送后 2-5 秒),但不会立即触发。这是设计使然吗?我可以假设运动数据流不适合(近)实时事件驱动架构吗?

当触发器是运动流时,究竟是什么触发了 lambda?看起来每隔 1-2 秒就会进行一次后台定期轮询,如果在流中发现新消息,则会触发 lambda。

最佳答案

您将批量大小设置为 100,这会告诉 Lambda 在调用您的函数之前读取 100 条记录。

批量相关的设置有2个。

  • 批量大小——从每个分片中读取的记录数批处理,最多 10,000 个。 Lambda 将批处理中的所有记录传递给该函数在一次调用中,只要事件不超过同步调用的负载限制(6MB)。
  • 批处理窗口 – 指定收集记录的最长时间在调用函数之前,以秒为单位。

在调用您的函数之前,Lambda 会继续从流中读取记录,直到它收集到完整的批处理,或者直到批处理窗口到期。

我还没有用这 2 个设置进行性能测试,但我会首先将大小设置为 1,将窗口设置为 0。但是,启动大量 Lambda 可能会有副作用,但它应该会给你可能的最小延迟。

关于amazon-web-services - 运动数据流不是实时的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58091043/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com