调用后 AWS Lambda 对 SNS 的响应

AWS Lambda to SNS response after invocation

Lambda L1 已订阅 SNS S1。

L1 returns每次调用时的状态码和消息

我可以在每次独立调用时检查 L1 响应,但是当我通过向 S1 发布消息来调用 L1 时,如何验证从 L1 返回的消息?

我需要在 java 中以编程方式执行此操作。感谢任何指点

Amazon SNS 向订阅者发布消息。一旦消息成功发送给订阅者(例如发送给 AWS Lambda 以触发 Lambda 函数),它不会等待响应。

因此,无法查看由 SNS 触发的 Lambda 函数的响应代码。

您可以查看由 Lambda 函数生成的 CloudWatch 日志,但您可能需要插入代码以将响应推送到日志(例如通过 Print 语句)。

在 SNS 触发器或任何其他异步触发器中,没有任何 'server' 接收 Lambda 的 return 值。

因此,Dead Letter Queue 是一项可以在这种情况下处理错误的功能,它可能正是您正在寻找的。

如果您希望验证每条消息 returned(而不仅仅是 Lambda 的失败),您可以将其配置为将 return 消息发送到另一个队列(SNS/SQS) 并使用另一个 Lambda 进行验证。

如果您只是想监控您的应用程序(因此在验证失败时您没有立即采取任何措施),您可能会寻找监控解决方案 - 无论是配置 CloudWatch 指标,Sentry或其他。