亚马逊网络服务(AWS)是一个功能强大且受欢迎的云计算平台,但是它的成本对于许多用户来说可能是不可承受的。在开发和测试时使用它也可能会使项目变得更加耗时和复杂。不过,好消息是,现在有一个解决方案,使用Localstack Sqs和Sns在本地仿真AWS服务。

Localstack是一个用于在本地环境中模拟AWS云服务的工具。它可以通过命令行或Docker容器进行部署,允许您在本地测试Lambda功能、S3存储桶、SNS主题、SQS队列、API网关和许多其他AWS服务。最好的是,您可以免费使用它。

Sqs是Amazon Simple Queue Service的缩写,它是一种分布式消息队列服务。Sns是Amazon Simple Notification Service的缩写,它是一种消息通知服务,允许您向终端用户或其他应用程序发送实时通知。

使用Localstack Sqs和Sns时,您可以在本地环境中模拟这些服务,以便测试您的应用程序是否按预期工作。在这里,我们将学习如何使用Localstack Sqs和Sns在本地仿真AWS服务。

首先,您需要在本地计算机上安装并启动Localstack,您可以从GitHub上下载它并按照安装说明进行操作。一旦安装成功,您应该能够在终端窗口中启动Localstack。

接下来,您需要创建一个Sqs队列。您可以通过使用AWS CLI或本地UI来创建。要使用CLI,请在终端中运行以下命令:

aws –endpoint-url=http://localhost:4566 sqs create-queue –queue-name testqueue

如果您希望使用本地UI,则可以在本地浏览器中访问 http://localhost:8080 ,并选择”Sqs”选项卡。您应该能够在这里创建新队列。

一旦您成功创建了Sqs队列,现在您可以创建Sns主题。同样,您可以使用AWS CLI或本地UI来创建。要使用CLI,请在终端中运行以下命令:

aws –endpoint-url=http://localhost:4566 sns create-topic –name testtopic

如果您希望使用本地UI,则可以在本地浏览器中访问 http://localhost:8080 ,并选择”Sns”选项卡。您应该能够在这里创建新主题。

现在,您已经创建了Sqs队列和Sns主题,您可以开始测试它们是否按预期工作。要测试Sqs队列,请使用以下CLI命令:

aws –endpoint-url=http://localhost:4566 sqs send-message –queue-url http://localhost:4566/queue/testqueue –message-body “hello world”

这将向您的Sqs队列发送一条消息。您可以使用如下命令从队列中接收消息:

aws –endpoint-url=http://localhost:4566 sqs receive-message –queue-url http://localhost:4566/queue/testqueue

这将返回您的队列中的一条消息。

要测试Sns主题,请使用以下CLI命令:

aws –endpoint-url=http://localhost:4566 sns publish –topic-arn arn:aws:sns:us-east-1:123456789012:testtopic –message “hello world”

这将向您的Sns主题发送一条消息。您可以使用如下命令从主题中接收消息:

aws –endpoint-url=http://localhost:4566 sns subscribe –topic-arn arn:aws:sns:us-east-1:123456789012:testtopic –protocol sqs –notification-endpoint arn:aws:sqs:us-east-1:123456789012:testqueue

这将创建一个Sqs订阅,允许您从Sns主题中接收消息。一旦有新消息发布到主题上,它将被推送到您的Sqs队列中。

使用Localstack Sqs和Sns在本地仿真AWS服务是一种神奇而简单的方式。它使您能够在没有任何实际成本和复杂度的情况下测试AWS服务,使您能够更好地开发和测试您的应用程序。如果您是开发人员或测试人员,那么Localstack绝对是一个必备的工具。尝试它,您将无法回到先前的方式。

详情参考

了解更多有趣的事情:https://blog.ds3783.com/