当前位置:  开发笔记 > 前端 > 正文

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

如何解决《我可以在AWSCloudformationjson模板的"参数"中使用"Fn::Join"吗?》经验,为你挑选了1个好方法。

我想在一些Policy/Loadbalancers标签名称的参数Cloudformation json模板快捷方式中使用,如下所示:

"SomeScalingGroupName": {
            "Type": "String",
            "Default": {"Fn::Join": ["", ["Process-", {"Ref": "Env"}, "-Some-Worker-Name"]]}
        },

我得到错误:

模板验证错误:模板格式错误:每个默认成员必须是字符串.

所以我的问题是,在参数中使用函数连接的正确方法是什么?或者我还有其他办法吗?或者你有什么更好的建议来使用它?

谢谢!



1> Jason..:

您不能在模板的参数部分中使用内部函数.

您只能在模板的特定部分使用内部函数.目前,您可以在资源属性,元数据属性和更新策略属性中使用内部函数.

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'.您还可以在资源属性中的任何其他位置使用此相同的功能.

推荐阅读
臭小子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有