为了向SNS发布消息,我需要扮演正确的角色。因此,在使用AWS SDK时,我会创建一个名为AmazonSNS的bean,如下所示:
@Bean
public AmazonSNS amazonSnsClient(
@Value("${cloud.aws.credentials.accessKey}") String accessKey,
@Value("${cloud.aws.credentials.secretKey}") String secretKey,
@Value("${cloud.aws.role.publisherArn}") String publisherRoleArn
) {
AWSSecurityTokenService stsClient = AWSSecurityTokenServiceClientBuilder.standard()
.withRegion(EU_CENTRAL_1)
.withCredentials(new AWSStaticCredentialsProvider(new BasicAWSCredentials(accessKey, secretKey)))
.build();
STSAssumeRoleSessionCredentialsProvider credentialsProvider = new STSAssumeRoleSessionCredentialsProvider
.Builder(publisherRoleArn, SESSION_NAME)
.withStsClient(stsClient)
.build();
return AmazonSNSClientBuilder.standard()
.withRegion(EU_CENTRAL_1)
.withCredentials(credentialsProvider)
.build();
}
我正在尝试使用Spring Cloud AWS Messaging & Autoconfiguration实现同样的功能,但到目前为止,我还没有找到任何相关信息。我的application.yml文件如下:
cloud:
aws:
credentials:
accessKey: ***
secretKey: ***
instanceProfile: true
region:
static: eu-central-1
这个功能在Spring中是否有支持,我只是没有找到呢?还是应该继续使用AWS SDK?