CloudFormation:模板错误:每个Ref对象必须具有单个String值

时间:2015-05-07 00:56:43

标签: amazon-web-services amazon-cloudformation

我尝试创建CloudFormation堆栈并收到以下错误:

  

调用CreateStack操作时发生客户端错误(ValidationError):模板错误:每个Ref对象必须具有单个String值。

但是,当我grep模板寻找Ref个对象时,它们都是字符串,除了单个查找,看起来像

"Ref": {
     "Fn::FindInMap": [
         "InfraMap",
         "SecurityGroups",
         "NATSecurityGroup"
     ]
}

此引用的值为"NATSecurityGroup": "sg-54e6be30",,这对我来说似乎没问题。

关于此错误可能指的是什么?

1 个答案:

答案 0 :(得分:8)

"Ref": {
     "Fn::FindInMap": [
         "InfraMap",
         "SecurityGroups",
         "NATSecurityGroup"
     ]
}

这是不正确的,在这种情况下不需要Ref,其中引用的值是一个常量,而不是在创建堆栈期间创建的变量。

替换它
"Fn::FindInMap": [
     "InfraMap",
     "SecurityGroups",
     "NATSecurityGroup"
]

解决了这个问题。