2016-11-01 45 views
0

我期待參數變量的值 - 就像HTTP_PROXY在下面的例子:參數化YAML文件

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

我有兩個問題:

(1)我怎麼「參數」的默認值('http://myproxy.company.com')?我想它可以像做:

default: %proxy_url% 

(2)如果以上是正確的,我只是將它設置在「屬性」(或同等)文件?如果是這樣,我該如何配置它以使我的yaml文件從「properties」文件中的proxy_url中讀取?謝謝。

+0

什麼是閱讀你的YAML文件? YAML本身不能像你所描述的那樣神奇地被參數化,這一切都取決於處理YAML的內容。如果您正在用自己的Python代碼閱讀它,那麼在文檔中查找像'%proxy_url%'這樣的變量並執行適當的替換是您的工作。 – larsks

回答

1

在純YAML中,這是而不是可能。

您有以下選擇:

  • 編輯您的YAML解析器承認%proxy_url%並填寫
  • 讀取這個文件,你想要的網址取代%proxy_url%然後給結果解析器
  • 使用YAMLs node anchors

前兩種解決方案做的工作,如果你不能(或不願)拯救proxy_url在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。我想知道我們是否可以使用shell腳本來代替python?但我會發佈一個新問題並關閉這個問題。 – punsoca