在 Serverless 架构中,AWS SNS 是一种非常常见的消息传递服务。服务端开发人员通常会在本地开发环境上使用 LocalStack 编写和测试 SNS 相关的业务逻辑。serverless-localstack-sns 这个 npm 包可以模拟 SNS 服务,并在开发环境中使用。
1. 安装与配置
首先,需要安装 serverless-localstack-sns。可以使用 npm 命令进行安装:
npm install --save-dev serverless-localstack-sns
接下来,需要在项目中配置 LocalStack。创建一个 localstack.yml
文件,配置 LocalStack 所需要的所有服务(在本文中,我们只关心 SNS):
-- -------------------- ---- ------- --------- ---- ------ --------------------- ------------ - ------------ - ------- - ------------------------ ------ - ----------- -------- --- -- ----------- -------
在 serverless.yml
文件中,需要添加以下地方,以与 serverless-localstack-sns 进行集成:
plugins: - serverless-localstack-sns custom: custom: localstack: host: localhost sns: "4575"
这个时候,SNS 服务就可以本地测试了。
2. 使用 LocalStack SNS
首先,需要安装 aws-sdk
npm install aws-sdk --save
接下来,创建一个 SNS 实例并发布消息到它:
-- -------------------- ---- ------- ----- --- - ------------------ --- --- - --- --------- --------- ------------------------ ------- ------------ ------------ ------- ---------------- ------- ----------- ----- -- ------------- -------- ----- --------- --------- ------------ -- ----- ----- -- - ------------------- ---- -------------------- ----- --
上述代码将向 test-topic
发布一条消息。
3. 总结
通过本文的介绍,您已经了解了如何在本地使用 LocalStack SNS。serverless-localstack-sns
对于在本地开发和测试阶段非常方便。在实际工作中,我们可以在本地先进行小规模的测试和调试,然后再将代码部署到 EC2 实例或者其他的 AWS 服务中。
总之,这个 npm 包带来了很大的便利性,并且开发工作流程中不再需要使用真实的 SNS 服务,避免了花费繁琐的申请操作。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005626b81e8991b448dfb48