SQSClient 令牌过期;需要自动刷新
SQSClient token expires; need auto refresh
我有以下内容:
AWSCredentialsProvider credentialsProvider = new DefaultAWSCredentialsProviderChain();
final AWSCredentials credentials;
try {
credentials = credentialsProvider.getCredentials();
} catch (Exception e) {
LOGGER.error("AWS profile exception: {}", e);
throw new AmazonClientException(e.getMessage());
}
AmazonSQSClientBuilder sqsClientBuilder = AmazonSQSClientBuilder.standard();
sqsClientBuilder.setCredentials(new AWSStaticCredentialsProvider(credentials));
sqsClientBuilder.setRegion(config.getAwsRegion());
AmazonSQS sqsClient = sqsClientBuilder.build();
然而,过了一会儿,我得到 com.amazonaws.services.sqs.model.AmazonSQSException: The security token included in the request is expired (Service: AmazonSQS; Status Code: 403; Error Code: ExpiredToken
如何设置我的客户端以使其自动刷新客户端?
不要手动设置凭据 (.getCredentials()),如果提供程序作为构造函数参数传递,aws sdk (1.10.x) 将自动刷新令牌。
sqs=new AmazonSQSClient( new DefaultAWSCredentialsProviderChain());
对于您的情况,您可以跳过设置凭据,因为 AmazonSQSClientBuilder
默认情况下根据 doc
从 DefaultAWSCredentialProviderChain()
获取凭据
我有以下内容:
AWSCredentialsProvider credentialsProvider = new DefaultAWSCredentialsProviderChain();
final AWSCredentials credentials;
try {
credentials = credentialsProvider.getCredentials();
} catch (Exception e) {
LOGGER.error("AWS profile exception: {}", e);
throw new AmazonClientException(e.getMessage());
}
AmazonSQSClientBuilder sqsClientBuilder = AmazonSQSClientBuilder.standard();
sqsClientBuilder.setCredentials(new AWSStaticCredentialsProvider(credentials));
sqsClientBuilder.setRegion(config.getAwsRegion());
AmazonSQS sqsClient = sqsClientBuilder.build();
然而,过了一会儿,我得到 com.amazonaws.services.sqs.model.AmazonSQSException: The security token included in the request is expired (Service: AmazonSQS; Status Code: 403; Error Code: ExpiredToken
如何设置我的客户端以使其自动刷新客户端?
不要手动设置凭据 (.getCredentials()),如果提供程序作为构造函数参数传递,aws sdk (1.10.x) 将自动刷新令牌。
sqs=new AmazonSQSClient( new DefaultAWSCredentialsProviderChain());
对于您的情况,您可以跳过设置凭据,因为 AmazonSQSClientBuilder
默认情况下根据 doc
DefaultAWSCredentialProviderChain()
获取凭据