如何解决如何仅为本地主机创建SQS客户端
我有以下客户端实例化代码,在部署到AWS时可以使用:
pom.xml
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk</artifactId>
<version>1.11.888</version>
</dependency>
application.properties
aws.sqs.endpoint=https://sqs.us-west-2.amazonaws.com
SQSConfiguration.java
public AmazonSQS buildAWSClient() {
String region = getRegionFromHost(endpoint.getHost());
return AmazonSQSClientBuilder.standard()
.withRegion(region)
.build();
}
现在,我想要一个客户端来访问本地SQS端点(例如ElasticMQ)。
application.properties
aws.sqs.endpoint=http://localhost:9300
SQSConfiguration.java
public AmazonSQS buildLocalClient() {
BasicAWSCredentials credentials = new BasicAWSCredentials("not-a-real-key","not-a-real-secret");
return AmazonSQSClientBuilder.standard()
.withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration(endpoint.toString(),Regions.DEFAULT_REGION.getName()))
.withCredentials(new AWSStaticCredentialsProvider(credentials))
.build();
}
但是,在运行应用程序时出现以下错误:
Caught an AmazonServiceException,which means your request made it to Amazon SQS,but was rejected with an error response for some reason.
The security token included in the request is invalid. (Service: AmazonSQS; Status Code: 403; Error Code: InvalidClientTokenId; Request ID: 68c103c1-b848-5cb9-8bbc-5bd2035aa586; Proxy: null)
我希望开发人员能够提取此代码并在本地运行它,而无需在其个人资料中设置任何内容,传递环境变量等。
我是否可以(如果需要的话)以不需要AWS连接/权限的方式设置AWS客户端?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。