繁体   English   中英

我可以在 AWS Cloudformation json 模板的“参数”中使用“Fn::Join”吗

[英]Can I use "Fn::Join" in "Parameters" of AWS Cloudformation json template

我想在一些 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" }]]}},
      ]
    }
  }
}

这会将“名称”标签应用到您的负载均衡器,其值为“process-test-my-worker”。 您还可以在资源属性内的任何其他位置使用相同的功能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM