AWS - 创建一个 AmazonSNSClient

en *_*ris 1 java amazon-web-services amazon-sns

我想创建一个 AmazonSNSClient,我使用这段代码:

AmazonSNSClient snsClient = (AmazonSNSClient) AmazonSNSClientBuilder.standard().withCredentials(new AWSStaticCredentialsProvider(new PropertiesCredentials(is))).build();
Run Code Online (Sandbox Code Playgroud)

但我收到此错误:

线程“main”中的异常 java.lang.UnsupportedOperationException:客户端在使用构建器创建时是不可变的。

在 com.amazonaws.AmazonWebServiceClient.checkMutability(AmazonWebServiceClient.java:937)
在 com.amazonaws.AmazonWebServiceClient.setRegion(AmazonWebServiceClient.java:422)

Sam*_*y93 6

如果你能把你传递的参数放在那里会更好,is否则你可以尝试构建客户端,如下所示,

如果您is指的是凭证文件,那么您可以通过此方法直接使用凭证,

BasicAWSCredentials basicAwsCredentials = new BasicAWSCredentials(AccessKey,SecretAccessKey);
AmazonSNS snsClient = AmazonSNSClient
                      .builder()
                      .withRegion(your_region)
                      .withCredentials(new AWSStaticCredentialsProvider(basicAwsCredentials))
                      .build();
Run Code Online (Sandbox Code Playgroud)

否则,如果您要通过 IAM 角色授予权限,那么您可以使用 InstanceProfileCredentialProvider,如下所示,

AmazonSNS sns = AmazonSNSClientBuilder
                 .standard()
                 .withCredentials(new InstanceProfileCredentialsProvider(true))
                 .build();
Run Code Online (Sandbox Code Playgroud)