应用程序中的Localstack AWS端点

Pra*_*lar 4 java amazon-web-services amazon-sns atlassian-localstack

我想为我的应用程序运行功能测试,该应用程序尝试将消息发布到AWS SNS。我尝试了LocalStack,发现它可以完成我在本地模拟和发布消息所需的一切。但是我的应用程序将amazon sdk客户端用于java,当我在本地运行它时,它仍然尝试将请求发布到亚马逊区域而不是LocalStack

确保应用程序与本地堆栈而不是与AWS URL交互的配置是什么?我们可以在AWS config中指定端点URL吗?我发现这是AWS CLI https://github.com/aws/aws-cli/issues/1270中的一个开放问题

是否有人为此实施了任何解决方法?

Gui*_*ert 7

要使用您的本地堆栈,必须设置EndpointConfiguration

AmazonSNS amazonSNS = AmazonSNSClientBuilder.standard()
  .withEndpointConfiguration(new EndpointConfiguration("http://localhost:4575", "eu-west-1")) 
  .build();
Run Code Online (Sandbox Code Playgroud)

您还应该使用localstack / localstack而不是atlassian / localstack(不再进行主动维护)。