Spring Cloud Config Server对接S3后端时property sources缺失问题咨询
Spring Cloud Config S3后端配置加载不全问题解答
根因说明
该问题并非配置遗漏,是spring-cloud-aws 2.3.2版本中S3配置后端的原生实现bug。spring-cloud-config的Git后端默认按照优先级从高到低加载四个维度的配置源:
{应用名}-{环境}.ymlapplication-{环境}.yml{应用名}.ymlapplication.yml
符合特定配置覆盖通用配置的规则。而spring-cloud-aws 2.3.x版本的S3后端实现没有和Git逻辑对齐,仅做了最精确的{应用名}-{环境}单维度匹配,没有实现通用配置的降级加载逻辑,因此调用接口只会返回一个property source。
修复方案
- 方案一:升级
spring-cloud-aws依赖版本到2.4.0及以上。该版本已经修复了S3后端的加载逻辑,和Git后端对齐,会自动加载全量四个维度的配置源。Spring Cloud 2020.0.3版本兼容spring-cloud-aws 2.4.x,不需要调整Spring Boot、Spring Cloud的主版本。 - 方案二:如果暂时无法升级依赖,可自定义
S3PropertySourceLocator实现类,在原有匹配逻辑的基础上补充加载其余三个通用维度的配置文件,手动设置优先级和Git后端保持一致即可。 - 方案三:临时将通用配置内容合并到对应服务的环境配置文件中,仅作为过渡方案使用,会产生配置冗余,不推荐长期使用。
内容的提问来源于stack exchange,提问作者David Geary
相关产品推荐
相关产品推荐

