在多个AWS SQS队列上跟踪消息

问题描述 投票:0回答:1

我大约有3个采用以下形式的AWS Lambda函数:

  • Lambda函数1:从SQS队列读取并将消息放入SQS队列(传入和传出消息格式不同)
  • Lambda函数2:从Lambda函数1读取消息,并将消息放入SQS队列(传入和传出消息的格式不同)
  • Lambda函数3:从Lambda函数3读取消息,并更新存储。

涉及3个队列,每个队列中的消息格式(结构)不同,但是它们具有相同的uniqueId,可以相互关联使用。如此多的问题是,SQS上是否有其他方法或其他工具来跟踪消息,我专门查看的是类似这样的东西:

  • 将消息输入队列的时间
  • Lambda函数处理消息的时间

我的问题是3个Lambda函数分别在几毫秒内执行,但是端到端执行所花费的时间太长,我怀疑消息的传输时间太长。

我愿意接受其他有关优化的想法。

amazon-web-services aws-lambda amazon-sqs
1个回答
0
投票

AWS Step Functions专为在Lambda函数之间传递信息和协调整个过程而设计。

但是,您需要更改编写函数的方式,才能利用“步进功能”。

由于您唯一真正的愿望是探究为什么需要花费太长的时间,所以AWS X射线应该是收集此信息的好方法。它可以在每个过程中端到端跟踪单个事务。我认为这只是包含一个库并激活X射线的问题。

参见:AWS Lambda and AWS X-Ray - AWS X-Ray

或者,只需开始进行一些日志文件中的手动调查。该日志显示了每个函数运行所花费的时间,因此您应该能够确定所花费的时间是否在特定的Lambda函数中,或者是否花费了时间在函数之间,等待它们完成操作。触发。

© www.soinside.com 2019 - 2024. All rights reserved.