2016-05-19 6 views
5

私のサービスではspring cloud config server春クラウド構成サーバーの優先順位

で作業するとき、私は私が地元の性質がこのコンテンツ

foo: 
    bar: "some" 
    buz: "some" 
    joe: "some" 

application.ymlファイルの環境変数の優先順位について質問がありますしていますサービスは、ファイルtestservice-api.ymltestservice-apiはサービスのバリュー・アプリケーション名)を含む構成リポジトリーを持つ構成サーバーにも接続されています。このファイルの内容は次のとおりです。

foo: 
    bar: "some-specific" 

したがって、このセットアップを実行時の設定は、このことになる:

{ 
    "foo.bar": "some-specific", 
    "foo.buz": "some", 
    "foo.joe": "some" 
} 

今、私は環境変数でfoo.barfoo.joeを上書きしてみてください。

だから私は、このコマンドを使用してサービスを開始します。

FOO_BAR=some-env FOO_JOE=some-env gradle bootRun

私は環境変数が設定ファイルよりも優先されなければならないthis part of the spring boot documentationで読んだから - また、春の雲の設定のドキュメントがかなった別の状態はありません - 私は結果があることを期待する:

{ 
    "foo.bar": "some-env", 
    "foo.buz": "some", 
    "foo.joe": "some-env" 
} 

しかし、その代わりに、私は得る:

{ 
    "foo.bar": "some-specific", 
    "foo.buz": "some", 
    "foo.joe": "some-env" 
} 

jar内のロー​​カル設定ファイルの設定だけが環境変数によって上書きされます - config repoのプロパティは環境変数よりも優先されているようです。

これは説明できますか?これはバグですか?この中のヒント?

ここではサンプルコードを見つけてください:

https://github.com/mduesterhoeft/configserver-test

Use Case 3

+2

設定サーバが最も優先度が高くなります。 – spencergibb

+0

@spencergibbヒントのおかげで - それはどこかに書かれていますか?私が見つけたのは、 "これは、スタンドアロンのSpring Bootアプリケーションに適用されるのと同じルールです。" - 私はこれらのルールが適用されると思ったので - https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html#boot-features-external-config –

+0

もしそうでないならば、それは春の雲の文書になります。 – spencergibb

答えて

7

が設定サーバのソースとして(Gitのレポで次のプロパティを定義すると、リポジトリ内のREADMEは、ここで説明する問題を示しています)[指定のプロファイルの場合]: spring.cloud.config: overrideSystemProperties: false overrideNone: true

プロパティ(特にoverrideSystemProperties & overrideNone)は、デフォルトでconfig-serverのものによって上書きされます。

+2

個々のアプリケーション(configクライアント)のgit repo configファイルに入れて、configサーバーのgit repo configファイルに入れたときにうまくいきませんでしたが、これは私にとってはうまくいきました – Matt

+1

私はそれが可能であることが涼しいことを認識しましたが、それはおそらく良い考えではありません。 *集中化された*構成要素を引き出すのは、集中化された*構成だけを得ることです。あなたが* distributed * configになることを許可し始めるならば、物事が間違ってしまう101の方法があります。 env var経由で提供されたAPIキーを変更する必要がある場合、どうなるか考えてみてください。サービスを再起動する必要があります。それでは、サーバーの設定にはどんな点がありますか?慎重に使用してください! – demaniak

関連する問題