首页 > 解决方案 > Spring Cloud + RDS(spring-cloud-starter-aws-jdbc)尽管存在但无法在启动时加载凭据

问题描述

我正在使用spring-cloud-starter-aws-jdbc连接到 RDS 实例。我最初走的是传统spring.datasource路线,但我需要使用只读副本,并且想在不引入任何奇怪代码的情况下对其进行配置。

我得到的错误是:

Caused by: com.amazonaws.SdkClientException: Unable to load AWS credentials from any provider in the chain: [com.amazonaws.auth.EC2ContainerCredentialsProviderWrapper@47acd13b: Failed to connect to service endpoint: , com.amazonaws.auth.profile.ProfileCredentialsProvider@6f8e9d06: profile file cannot be null]

| at com.amazonaws.auth.AWSCredentialsProviderChain.getCredentials(AWSCredentialsProviderChain.java:136)

最初我尝试AmazonRDS在我的配置中添加一个 bean 并直接提供凭据,但这还不够好。我在里面设置了一个断点getCredentials(),可以看到它被调用了两次:第一次有 5 个凭据提供程序,其中一个包含我通过环境变量传入的 AWS 凭据。

第二次,只有两个提供者,它们都不包含我的凭据,因此应用程序崩溃了。有没有人曾经使用过这个库并取得了成功?当我已经提供 RDS 客户端甚至尝试使用 bean 提供凭据时,我无法弄清楚为什么它会两次获取凭据。

标签: amazon-web-servicesspring-bootamazon-rds

解决方案


推荐阅读