如何阻止Azure App Config将Spring激活配置文件用作标签?
如何强制Azure AppConfig不使用Spring配置文件作为标签过滤器?
我有一个可正常运行的Spring Boot应用,能够从Azure AppConfig服务加载配置。以下是我的bootstrap.yml配置:
spring: cloud: azure: appconfiguration: stores[0]: feature-flags: enabled: true selects[0]: key-filter: ${key-filter} connection-string: ${connection-string}
原本一切运行正常,但当激活Spring配置文件(Spring profile)时,Azure AppConfig会自动将其用作标签过滤器,启用配置文件后配置无法正常加载。从应用日志中能看到BootstrapPropertySource的变化:
- 无配置文件时:
BootstrapPropertySource {name='bootstrapProperties-${key-filter}/${your_link}/ '} - 有配置文件时:
BootstrapPropertySource {name='bootstrapProperties-${key-filter}/${your_link}/profile'}
我尝试添加label-filter: ,的配置,但没有效果。请问是否有办法强制Azure AppConfig完全不使用Spring配置文件?
可以通过配置profile-tagging-enabled: false来禁用Azure AppConfig自动将Spring Profile用作标签过滤器的行为,这个配置需要放在对应AppConfig Store的层级下。
修改后的bootstrap.yml示例:
spring: cloud: azure: appconfiguration: stores[0]: feature-flags: enabled: true selects[0]: key-filter: ${key-filter} connection-string: ${connection-string} # 禁用自动将Spring Profile作为标签的功能 profile-tagging-enabled: false # 可选:如果需要指定固定标签过滤器,可在此设置,留空则不筛选标签 label-filter: ""
profile-tagging-enabled: false会彻底关闭Spring Profile与Azure AppConfig标签的关联,无论激活哪个Spring Profile,AppConfig都不会自动添加对应的标签过滤器。- 之前添加
label-filter: ,无效是因为默认情况下profile-tagging的优先级更高,禁用该功能后,label-filter的配置才会生效。如果不需要任何标签过滤,直接设置label-filter: ""或者不配置即可。
内容的提问来源于stack exchange,提问作者aws_acc_quest
相关产品推荐
相关产品推荐

