簡體   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