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

mja*_*day 5 amazon-web-services aws-cloudformation

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

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

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

"Ref": {
     "Fn::FindInMap": [
         "InfraMap",
         "SecurityGroups",
         "NATSecurityGroup"
     ]
}
Run Code Online (Sandbox Code Playgroud)

这个参考的价值对"NATSecurityGroup": "sg-54e6be30",我来说似乎没问题.

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

mja*_*day 10

"Ref": {
     "Fn::FindInMap": [
         "InfraMap",
         "SecurityGroups",
         "NATSecurityGroup"
     ]
}
Run Code Online (Sandbox Code Playgroud)

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

用它替换它

"Fn::FindInMap": [
     "InfraMap",
     "SecurityGroups",
     "NATSecurityGroup"
]
Run Code Online (Sandbox Code Playgroud)

解决了这个问题.