【问题标题】:CloudFormation: Is it possible to Fn::Join a CommaDelimitedList and a String?CloudFormation:是否可以 Fn::Join 一个 CommaDelimitedList 和一个字符串?
【发布时间】:2022-01-25 07:57:48
【问题描述】:

我目前很难正确地形成这个陈述。我一直在尝试许多变体,并且很困惑为什么在部署时由于此语句而出现错误(如果我没有此行,则部署成功)

假设我有一个名为 Fruits 的 CommaDelimitedList 和一个名为 Banana 的字符串

我的 Cloudformation 目前有这条线:

   "aws:PrincipalArn":{
   "Fn::Join":[",",[{"Ref":"Fruits"},"Ref":"Banana"}]]
   }

我也为此代码尝试了多种变体。我尝试在 Fruits 上做一个内部 Fn::Join 以使其成为一个字符串。我还尝试将“香蕉”的类型更改为 CommaDelimitedList。

总而言之,我只是在这一点上迷路了。有谁知道这样做的正确语法或任何想法?

【问题讨论】:

  • 你得到什么错误?看起来你在香蕉参考之前缺少{

标签: amazon-web-services amazon-cloudformation


【解决方案1】:

由于有两个不同的元素具有 2 种不同的数据类型,您应该分两步进行:

  • 在 Fruits 列表中执行 !Join 以获取逗号分隔的字符串。
  • 用 "," 将两个字符串连接在一起

例子:

"aws:PrincipalArn":{
    "Fn::Join":  [ "," , [ "Fn::Join":[",",[{"Ref":"Fruits"}] ], {"Ref":"Banana"}]]
    }

【讨论】:

  • 嘿!感谢你及时的答复。我在第二个 FN::Join 的冒号处收到一条错误消息,说它需要一个逗号
【解决方案2】:

应该是:

"Fn::Join": [",", [ {"Fn::Join": [",", {"Ref": "Fruits"}]}, {"Ref":"Banana"}]]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-13
    • 2021-11-11
    • 2022-07-12
    • 2011-12-21
    • 1970-01-01
    相关资源
    最近更新 更多