Spring Boot 2.6.8使用AWS Secrets Manager配置值注入失败排查
Spring Boot集成AWS Secrets Manager配置注入失效问题
问题场景
在Spring Boot 2.6.8版本中搭配使用2.4.1版本的spring-cloud-starter-aws-secrets-manager-config组件时出现配置不生效问题,多次调整配置后仍无法正常读取密钥,需要对应的配置技巧、使用建议及可参考的实现示例。
已执行的操作与配置
- 依赖配置:已在项目中引入
spring-cloud-starter-aws-secrets-manager-config组件与gson依赖 - 应用配置:在
application.yaml配置文件中添加如下配置,对配置路径写法、use-legacy-processing参数的影响存在疑问:
spring: config: import: optional:aws-secretsmanager:/secret/kube-ns/service-name/test-secret # 该路径写法是否正确?是否受aws.secretsmanager.*路径下的配置项影响? use-legacy-processing: true # 不开启该配置时项目其余配置完全无法加载,不确定该参数是否会导致Secrets Manager的配置读取异常
- 密钥准备:已在AWS平台创建名称为
/secret/kube-ns/service-name/test-secret的密钥,存储两组键值对:key1=value1、key2=value2 - 注入验证逻辑:在标注
@Configuration的配置类中编写如下测试代码,验证密钥值是否能正常注入:
@Value("${key1:not-set}") private String key1; @Value("${key2:not-set}") private String key2; @Bean public Map testingMap(){ log.info("key1:{}, key2:{}", key1, key2); return Map.of("key1", key1, "key2", key2); }
故障表现
项目启动后查看日志,输出内容为key1:not-set, key2:not-set,密钥中存储的配置值未被成功注入到Spring环境中。
后续说明
该问题已完成排查定位与修复,对应的配置验证可运行示例已整理完成,可供遇到同类问题的开发者参考。
内容的提问来源于stack exchange,提问作者Micke
相关产品推荐
相关产品推荐

