我想在一些Policy / Loadbalancers标签名称的参数Cloudformation json模板快捷方式中使用,如:
"SomeScalingGroupName": {
"Type": "String",
"Default": {"Fn::Join": ["", ["Process-", {"Ref": "Env"}, "-Some-Worker-Name"]]}
},
我得到错误:
模板验证错误:模板格式错误:每个默认值 成员必须是一个字符串。
所以我的问题是,在参数中使用函数连接的正确方法是什么?或者我还有其他办法吗?或者你有更好的建议来使用它吗?
谢谢!
答案 0 :(得分:13)
您不能在模板的参数部分中使用内部函数。
您只能在模板的特定部分使用内部函数。 目前,您可以在资源属性中使用内部函数, 元数据属性和更新策略属性。
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" }]]}},
]
}
}
}
这会将“Name”标记应用于Load Balancer,其值为“process-test-my-worker”。您还可以在资源属性中的任何其他位置使用此功能。