从本地机器发布 SNS 消息并测试 Lambda

Publish SNS message and test Lambda from local machine

我有一个这样的应用程序 - sns -> lambda - 所以每次在 SNS 中发布新消息时都会调用我的 lambda python 函数。 整个代码在 AWS UI 上运行,但我想编写一个测试函数,因此我需要从我的本地计算机发布来自 SNS 主题的消息,这将触发该 lamba 我将在 cloudwatch 中查看日志。

我搜索了很多,但找不到对像我这样的初学者有帮助的东西。我在 VScode 上安装了 awscli,扩展并安装了 Docker。我的本地机器是 debian(10) pc。在 VScode 上未找到 SNS 的任何选项。 非常感谢任何帮助。

如果您想手动测试设置的行为,请从终端使用 AWS cli 发布测试消息。请参阅页面底部的示例:https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sns/publish.html

您可以使用 AWS SAM CLI 针对模拟 SNS 事件在本地测试您的函数,而不是使用订阅实际 SNS 主题的函数。

使用 AWS SAM CLI,您可以使用此命令生成示例事件

sam local generate-event sns

然后您可以对其进行修改、保存并与 sam local invoke --event mockEvent.json 一起使用。然后您应该能够看到您的代码将如何运行并查看函数的日志。

AWS SAM CLI 'generate-event' 文档:
https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-cli-command-reference-sam-local-generate-event.html