[英]AWS SDK 2 assume role
@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();
}
getting error出错
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [software.amazon.awssdk.services.dynamodb.DynamoDbClient]: Factory method 'amazonDynamoDB' threw exception;
引起:org.springframework.beans.BeanInstantiationException:无法实例化[software.amazon.awssdk.services.dynamodb.DynamoDbClient]:工厂方法'amazonDynamoDB'抛出异常; nested exception is java.lang.NullPointerException: STS client must not be null.
嵌套异常为 java.lang.NullPointerException:STS 客户端不得为 null。 at spring.beans@5.2.7.RELEASE/org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:185) at spring.beans@5.2.7.RELEASE/org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:650)... 58 common frames omitted Caused by: java.lang.NullPointerException: STS client must not be null.
at spring.beans@5.2.7.RELEASE/org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:185) at spring.beans@5.2.7.RELEASE/org.springframework.beans.factory. support.ConstructorResolver.instantiate(ConstructorResolver.java:650)...省略了58个常见的帧原因:java.lang.NullPointerException:STS客户端不能是19DFF7A625ECC29
In assume role request need to set sts client & it worked在假设角色请求中需要设置 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();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.