Ho una domanda circa la priorità delle variabili d'ambiente quando si lavora con spring cloud config servercloud Config Primavera Server priorità delle variabili di ambiente
Nel mio servizio ho una proprietà di file locale application.yml
con questo contenuto
foo:
bar: "some"
buz: "some"
joe: "some"
Il il servizio è inoltre connesso a un server di configurazione con un repository di configurazione che contiene un file testservice-api.yml
(dove testservice-api
è il nome dell'applicazione Spring del servizio). Il contenuto di questo file è:
foo:
bar: "some-specific"
Quindi, con questa configurazione la configurazione in fase di esecuzione si tradurrebbe in questo:
{
"foo.bar": "some-specific",
"foo.buz": "some",
"foo.joe": "some"
}
Ora cerco di ignorare foo.bar
e foo.joe
con una variabile d'ambiente.
Così ho avviare il servizio con questo comando:
FOO_BAR=some-env FOO_JOE=some-env gradle bootRun
Da quello che ho letto in this part of the spring boot documentation le variabili d'ambiente dovrebbero avere la priorità rispetto alle file di configurazione - anche la molla di documentazione nuvola config non dichiarare sth diverso - quindi mi aspetterei che il risultato sia:
{
"foo.bar": "some-env",
"foo.buz": "some",
"foo.joe": "some-env"
}
Ma invece ottengo:
{
"foo.bar": "some-specific",
"foo.buz": "some",
"foo.joe": "some-env"
}
Quindi solo la configurazione dal file di configurazione locale all'interno del jar viene sostituita dalla variabile di ambiente: la proprietà dal repository di configurazione sembra avere la priorità sulla variabile di ambiente.
Questo è spiegabile - O è un bug? Qualche suggerimento in questo?
Si prega di trovare il codice di esempio qui:
https://github.com/mduesterhoeft/configserver-test
Il README nella repository elenca il problema descritto qui come Use Case 3
Il server di configurazione ha la priorità più alta. – spencergibb
@spencergibb grazie per il suggerimento - che è documentato da qualche parte? Tutto quello che ho trovato è "Queste sono le stesse regole applicate in un'applicazione Spring Boot standalone". - Quindi ho pensato che si applicassero queste regole - https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html#boot-features-external-config –
Dovrebbe be se non lo è, ma sarebbe nella documentazione del cloud di primavera. – spencergibb