Cloudformation jsonテンプレートのパラメーターで、いくつかのPolicy/Loadbalancersタグ名のショートカットを使用したいと思います。
"SomeScalingGroupName": {
"Type": "String",
"Default": {"Fn::Join": ["", ["Process-", {"Ref": "Env"}, "-Some-Worker-Name"]]}
},
そして私はエラーになります:
テンプレート検証エラー:テンプレート形式エラー:すべてのデフォルトメンバーは文字列でなければなりません。
パラメータで関数結合を使用する適切な方法かどうか私の質問ですか?それとも他に方法がありますか?それとも、それを使用するためのより良い提案がありますか?
ありがとう!
テンプレートのパラメーターセクション内で組み込み関数を使用することはできません。
組み込み関数は、テンプレートの特定の部分でのみ使用できます。現在、リソースプロパティ、メタデータ属性、および更新ポリシー属性で組み込み関数を使用できます。
http://docs.aws.Amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference.html
リソースのプロパティ内でこの関数を使用する必要があります。例えば:
"Parameters" : {
"Env" : {
"Type" : "String",
"Default" : "test"
},
"WorkerName" : {
"Type" : "String",
"Default" : "my-worker"
}
}
"Resources" : {
"LoadBalancer" : {
"Type" : "AWS::ElasticLoadBalancing::LoadBalancer",
...
"Properties" : {
"Tags" : [
{ "Key" : "Name", "Value": { "Fn::Join" : [ "-", [ "process", { "Ref" : "Env" }, { "Ref" : "SomeWorkerName" }]]}},
]
}
}
}
これにより、「名前」タグがロードバランサーに適用され、値は「process-test-my-worker」になります。リソースのプロパティ内の他の場所でも同じ関数を使用できます。