@Bean
public DynamoDbClient amazonDynamoDB() {
final AssumeRoleRequest assumeRoleRequest = AssumeRoleRequest.builder().roleSessionName(UUID.randomUUID().toString()).roleArn("roleArn").build();
final StsAssumeRoleCredentialsProvider stsAssumeRoleCredentialsProvider = StsAssumeRoleCredentialsProvider.builder().refreshRequest(assumeRoleRequest).build();
return DynamoDbClient.builder().credentialsProvider(stsAssumeRoleCredentialsProvider).region(Region.EU_WEST_1)
.build();
}
出现错误
引起的:org.springframework.beans.BeanInstantiationException:
实例化失败
[software.amazon.awssdk.services.dynamodb.DynamoDbClient]:工厂
方法“amazonDynamoDB”引发异常;嵌套异常是
java.lang.NullPointerException:STS客户端不能为空。在[电子邮件受保护] /cdn-cgi/l/email-protection/org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:185)
在[电子邮件受保护] /cdn-cgi/l/email-protection/org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:650)
... 58 个常见帧被遗漏 造成原因:
java.lang.NullPointerException:STS客户端不能为空。
在承担角色请求中需要设置 sts 客户端并且它有效
@Bean
@Primary
public DynamoDbClient amazonDynamoDB() {
final AssumeRoleRequest assumeRoleRequest = AssumeRoleRequest.builder().roleSessionName(UUID.randomUUID().toString()).roleArn("roleArn").build();
final StsClient stsClient = StsClient.builder().region(Region.EU_WEST_1).build();
final StsAssumeRoleCredentialsProvider stsAssumeRoleCredentialsProvider = StsAssumeRoleCredentialsProvider.builder().stsClient(stsClient).refreshRequest(assumeRoleRequest).build();
return DynamoDbClient.builder().credentialsProvider(stsAssumeRoleCredentialsProvider).region(Region.EU_WEST_1)
.build();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)