我想在一些Policy/Loadbalancers标签名称的参数Cloudformation json模板快捷方式中使用,如下所示:
"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" }]]}}, ] } } }
这将为您的Load Balancer应用一个'Name'标签,其值为'process-test-my-worker'.您还可以在资源属性中的任何其他位置使用此相同的功能.