以编程方式为SQS设置AWS区域

时间:2017-10-04 15:46:05

标签: java eclipse maven aws-sdk amazon-sqs

我刚开始使用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设置相同的内容,但没有这样的规定。

请建议

2 个答案:

答案 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();