【发布时间】:2020-03-07 15:20:46
【问题描述】:
我有大约 3 个采用以下形式的 AWS Lambda 函数:
- Lambda 函数 1:从 SQS 队列读取并将消息放入 SQS 队列(传入和传出消息格式不同)
- Lambda 函数 2:从 Lambda 函数 1 读取消息,并将消息放入 SQS 队列(传入和传出消息格式不同)
- Lambda 函数 3:从 Lambda 函数 3 读取消息,并更新存储。
涉及3个队列,每个队列中的消息格式(结构)不同,但是它们有一个uniqueId,它们是相同的,可以用来相互关联。这么多的问题是,在 SQS 上或其他一些工具中是否有任何方法可以跟踪消息,我特别关注的是:
- 消息进入队列的时间
- 消息被 Lambda 函数处理的时间
我的问题是 3 个 Lambda 函数在几毫秒内单独执行,但端到端执行所花费的时间太长,我怀疑消息在传输过程中花费的时间太长。
我愿意接受任何其他关于优化的想法。
【问题讨论】:
-
我认为sqs and x-ray 可能会有所帮助。可能必须将
annotations添加到您的uniqueId的 X 射线片段中,以便您以后可以过滤掉您想要的消息。 -
谢谢,我确实看到了,但这意味着我现在需要更改我的代码以包含这些额外的标题?
-
是的。我的脑海中没有这一切的全貌,但这是我首先要考虑的事情。或者,您可以为每个 lambda 中的每条消息添加一个时间,并手动检查从第一个 lambda 到最后一个 lambda 所需的时间。
-
“太长了”有多长?也许还有其他原因,例如您是在延迟消息还是在使用延迟队列?
标签: amazon-web-services aws-lambda amazon-sqs