Spring Cloud не может преобразовать секрет хранилища в .yml

Я работаю с микросервисной архитектурой, у меня есть облачная служба конфигурации Spring и еще один микросервис.

  profiles:
    active: vault
  cloud:
    # Configuration for a vault server running in dev mode
    vault:
      scheme: http
      host: 127.0.0.1
      port: 8200
      connection-timeout: 5000
      read-timeout: 15000
      authentication: TOKEN
      token: s.E4gdoIYAKxMvCE56MP5Etmvy
      kv:
        enabled: true
        backend: secret
        backend-version: 2
        profile-separator: /
      generic:
          enabled: false
      application-name: myapp

Зависимость от сервера конфигурации

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-vault-config</artifactId>
    <version>2.1.5.RELEASE</version>
</dependency>

это в .yml в службе конфигурации. Затем в .yml для моего микросервиса у меня есть свойство db.username, которое я хочу разрешить из Vault, но не могу. Есть ли у вас какие-либо идеи?

username: db.username
password: secret/apm-transaction-service/dev/db.user

@Value("${db.username}")

это значение разрешается в коде Java, но не в .yml

Теперь для каждого микросервиса, который у меня есть, я хочу разрешить секреты из службы конфигурации, не внося никаких изменений в микросервисы. В настоящее время читаю родной .ymls из службы конфигурации и хочу добавить еще один источник :)

Метод запуска ApplicationStartupRunner Запущен !! root


person sherybedrock    schedule 09.04.2020    source источник
comment
Какая у вас конфигурация сервера конфигурации?   -  person spencergibb    schedule 09.04.2020
comment
что ты имеешь в виду?   -  person sherybedrock    schedule 09.04.2020
comment
Вы используете весенний облачный конфигурационный сервер?   -  person spencergibb    schedule 10.04.2020
comment
да - ›весенний облачный конфигурационный сервер   -  person sherybedrock    schedule 10.04.2020
comment
Пожалуйста, покажите конфигурацию вашего сервера конфигурации   -  person spencergibb    schedule 10.04.2020


Ответы (1)


если вы используете spring -boot, для разрешения значения в файле .yml оно должно быть переменной. вы должны использовать $ {db.username} в файле yaml

person h_ismaili    schedule 09.04.2020
comment
$ {db.username} разрешит этот заполнитель, если конфигурация хранилища находится в микросервисе, но я хочу, чтобы у микросервиса не было никаких конфигураций хранилища, а все конфигурации были в службе конфигурации. Тогда $ {db.username} нельзя преобразовать в файл microservice.yml. - person sherybedrock; 09.04.2020
comment
Сервер конфигурации облака Spring предоставляет конечные точки отдыха для получения свойств. если вы используете клиент конфигурации Spring Cloud, свойства разрешаются так, как если бы они были предоставлены владельцу свойства - person h_ismaili; 09.04.2020