在 CloudFormation 模板中参数化资源名称?

Parameterizing Resource Names in CloudFormation Template?

这里的答案: 并没有真正帮助我设置物理名称,而不是逻辑名称。我希望在参数列表中设置参数,例如:

"ELBName": {
  "Type": "String",
  "Default": "xxx",
  "Description": "The Production Number for this stack (e.g. xxx)"
}

然后

"LoadBalancerName": "prod" + {Ref: "ELBName"}

虽然直接串联是不可能的。有什么办法可以做我想做的事吗?我的最终目标是采用我创建的模板并使用它创建自身的多个副本,每个副本具有相同的资源,但名称不同,可能通过嵌套堆栈。

使用 Fn::Join 函数来执行此操作:

            "LoadBalancerName":{
           "Fn::Join":[
              "",
              [
                 "prod",
                 {
                    "Ref":"ELBName"
                 }
              ]
           ]
        }

假定 ELBName 参数已传递值 01,这会将名称命名为 prod01