我有几个在AWS云的EC2实例上运行的应用程序。我正在使用AmazonS3Client
来获取用于读取和加载到S3存储桶的配置设置。
我希望应用程序在本地计算机上运行时使用提供的访问密钥和秘密密钥,而在EC2实例上运行时使用InstanceProfileCredentialsProvider
。我怎样才能做到这一点?
我在https://cloud.spring.io/spring-cloud-aws/spring-cloud-aws.html上读到,我们可以同时使用实例和简单凭据,但是我无法使用dsl而不是xml配置找到该实现的任何实现。
到目前为止,这是我将应用程序部署到AWS时可以正常使用的功能。
AmazonS3Client s3Client;
protected AmazonS3Client getS3Client() {
if (s3Client == null) {
s3Client = new AmazonS3Client();
}
return s3Client;
}
这是我使用它在本地运行应用程序的方式:
protected AmazonS3Client getS3Client() {
if (s3Client == null) {
AWSCredentials cred = new BasicAWSCredentials(awsAccessKey, awsSecretKey);
s3Client = new AmazonS3Client(cred);
}
return s3Client;
}
我如何合并两者,以便它足够聪明以了解何时使用哪个?