我尝试创建CloudFormation堆栈并收到以下错误:
调用CreateStack操作时发生客户端错误(ValidationError):模板错误:每个Ref对象必须具有单个String值。
但是,当我grep模板寻找Ref
个对象时,它们都是字符串,除了单个查找,看起来像
"Ref": {
"Fn::FindInMap": [
"InfraMap",
"SecurityGroups",
"NATSecurityGroup"
]
}
此引用的值为"NATSecurityGroup": "sg-54e6be30",
,这对我来说似乎没问题。
关于此错误可能指的是什么?
答案 0 :(得分:8)
"Ref": {
"Fn::FindInMap": [
"InfraMap",
"SecurityGroups",
"NATSecurityGroup"
]
}
这是不正确的,在这种情况下不需要Ref
,其中引用的值是一个常量,而不是在创建堆栈期间创建的变量。
用
替换它"Fn::FindInMap": [
"InfraMap",
"SecurityGroups",
"NATSecurityGroup"
]
解决了这个问题。