2016-11-01 10 views
0

私は変数の値をパラメータ化するために探しています - 以下の例ではhttp_proxyに似:パラメータ化YAMLファイル

(1)どのように私は、「パラメータ化」の操作を行います。

parameters: 
    - string: 
     name: http_proxy 
     default: 'http://myproxy.company.com' 

私は2つの質問を持っていますデフォルト値('http://myproxy.company.com')?

default: %proxy_url% 

(2)上記正しければ、私は「プロパティ」でそれを設定します(または同等の)ファイル:私は、それは同様に行うことができたと?もしそうなら、yamlファイルを "プロパティ"ファイルからproxy_urlで読み込むように設定するには?ありがとうございました。

+0

YAMLファイルの内容は何ですか? YAML自体は、あなたが記述しているように魔法のようにパラメータ化することはできません。それはすべてYAMLの処理内容に依存します。あなた自身のPythonコードでそれを読んでいるのであれば、ドキュメント内の '%proxy_url%'のような変数を探して適切な置換を実行することがあなたの仕事です。 – larsks

答えて

1

プレーンYAMLでは、これはではなく、です。

  • 編集しYAMLパーサは%proxy_url%を認識し、それを埋める
  • ファイルを読んで、ご希望のURLを%proxy_url%を交換し、その後、パーサーに結果を与える:

    次のオプションを持っています

  • 使用YAMLs node anchors

は、最初の2つのソリューションは、仕事をし、そしてあなたができない場合(またはしない)を保存YAMLファイル内では、これらを回避することはできません。

の場合、YAMLファイルに保存することができます。ノードアンカーを使用してください - 素晴らしいので、これを使用してください!

私はあなたに非常に基本的な例を与える:

defaults: 
    proxy_url: &anchor_proxy_url http://myproxy.company.com 
server: 
    [... i don`t know how your file looks so just an example here] 
    parameters: 
    - string: 
    name: http_proxy 
    default: *anchor_proxy_url 

サイドノート:あなたは次のエントリは、一種stringであることを示すために- string:を使用する場合は 、私はYAML tagsを使用することをお勧めいたしますよ - 彼らも素晴らしいですから。

+0

Mijagoありがとうございます。私はこれをPythonの代わりにシェルスクリプトを使って行うことができるのだろうか?しかし、私は新しい質問を投稿し、これを閉じます。 – punsoca

関連する問題