2016-03-22 14 views
0

Google Cloud Deploymentを使用していて、テンプレートに外部入力を取得しようとしています。つまり、(インスタンスの作成時に)自分のインスタンスにメタデータ変数を設定したいが、この値を実行時に提供したい。Google Cloud Deployment Manager:テンプレートに変数を渡す

私が試した

:(。あなたの設定ファイルとしてテンプレートに渡すときプロパティフラグのみを使用する必要があります

gcloud deployment-manager deployments create test-api-backend --config test-api-backend.yaml --properties 'my_value=hello' 

失敗し

私が試してみた:

my_value=hello gcloud deployment-manager deployments create test-api-backend --config test-api-backend.yaml 

そして{{env['my_value']}}を使用しますが、値がピックアップされていません。

は私が.jinjaファイルにプロパティを追加し、私はすべてを実行する前に、このファイルを再書くことができると思いますが、それはハックのように感じています。つまり、シェルから変数をDeploy Managerに渡すという私の考えは、ハックです。私は正直には分かりません。

答えて

1

エラーメッセージが示すように、コマンドラインプロパティはテンプレートでのみ使用できます。基本的には、config yamlファイルを置き換えるものです。行うには

最も簡単な方法は、ただの.pyまたは.jinjaファイルにあなたのYAMLファイルの名前を変更することです。次に、そのテンプレートをyamlファイルの代わりにgcloudコマンドのファイルとして使用します。 新しいテンプレートファイルで、コマンドラインで渡すことができない場合は、デフォルトの任意の値を追加します。 Python用 、のようなもの:

if 'myparam' in context.properties: 
    valuetouse = context.properities['myparam'] 
else: 
    valuetouse = mydefaultvalue 

テンプレートが別のテンプレートを使用している場合、あなたもあなたの代わりにYAMLファイルの存在輸入を行うことができますように、新しい、トップレベルのテンプレートのためのスキーマファイルを作成する必要があります。 このgithubの例のスキーマファイルを参照してください。

https://github.com/GoogleCloudPlatform/deploymentmanager-samples/blob/master/examples/v2/igm-updater/ha-service.py.schema

あなたがしたい場合は、すべてのプロパティを無視し、単に輸入セクションを行うことができます。

+0

私のエラーはエラー「無効な設定ファイルをもたらした、私のテンプレートのスキーマファイルを定義しないでいた:リソース{:X、プロパティ:名前yと}が見つかりませんでした:テンプレートは、失敗したフェッチを追加しましたスキーマと、それは美しく働きました! –

関連する問題