我刚开始使用AWS SDK for Java和.net。
目前我正在创建AWS SQS队列。我能够创建一个队列,列出现有队列,并使用.net SDK与队列通信。
当我尝试使用java时,我遇到以下错误。
无法通过区域提供商链找到区域。必须提供 构建器或设置环境中的显式区域以提供 区域。 我在eclipse中的aws首选项中设置了所有必要的访问键,Region和凭证。
这就是我在Java maven项目中初始化SQS客户端的方法
AmazonSQS sqs = AmazonSQSClientBuilder.defaultClient();
我用google搜索,发现S3中有一个名为withregion()的关键词,我可以指定区域,但不是SQS。
我也尝试将区域设置为
sqs.setRegion(Region.AP_Mumbai);
这显示以下异常
类型中的方法setRegion(com.amazonaws.regions.Region) AmazonSQS不适用于参数 (com.amazonaws.services.s3.model.Region)
我尝试使用com.amazonaws.regions.Region设置相同的内容,但没有这样的规定。
请建议
答案 0 :(得分:4)
我以这种方式设置了aws sqs客户端:
BasicAWSCredentials bAWSc = new BasicAWSCredentials(accessKey, secretKey);
return AmazonSQSClientBuilder.standard().withRegion(region).withCredentials(new AWSStaticCredentialsProvider(bAWSc)).build();
答案 1 :(得分:0)
根据@Francesco的意见,我创建了一个更直观的版本
BasicAWSCredentials bAWSc = new BasicAWSCredentials(accessKey, secretKey);
final AmazonSQS sqs = AmazonSQSClientBuilder.standard()
.withRegion(Regions.US_EAST_1)
.withCredentials(new AWSStaticCredentialsProvider(bAWSc ))
.build();