Lambda L1已订阅SNS S1。
L1每次被调用时都会返回状态代码和一条消息
我可以在每次独立调用L1响应时检查它,但是当我通过向S1发布消息来调用L1时,如何验证从L1返回的消息?
我需要在Java中以编程方式进行此操作。任何指针都值得赞赏
答案 0 :(得分:3)
Amazon SNS将消息发布给订阅者。成功将消息发送给订阅者(例如,发送给AWS Lambda以触发Lambda函数)后,它就不会等待响应。
因此,无法查看由SNS触发的Lambda函数的响应代码。
您可以查看由Lambda函数生成的CloudWatch Log,但是您可能需要插入代码以将响应推送到日志(例如,通过Print语句)。
答案 1 :(得分:1)
在SNS触发器或任何其他异步触发器中,没有任何“服务器”接收Lambda的返回值。
由于这个原因,Dead Letter Queue是一项可以在这种情况下处理错误的功能,这也许正是您要寻找的。 p>
如果您希望验证返回的每个消息(不仅是Lambda的失败),还可以将其配置为将返回消息发送到另一个队列(SNS / SQS),并使用另一个Lambda进行验证。
如果您只想监视应用程序(因此在验证失败时没有立即采取的行动),则可能会寻找监视解决方案-是否配置CloudWatch指标,Sentry或其他。