当我尝试为使用Fn::GetAtt: Database.Endpoint.Address (其中Database是AWS::RDS::DBInstance资源的逻辑名称)的堆栈更新或创建更改集时,尝试失败并返回Template error: every Fn::GetAtt object requires two non-empty parameters, the resource name and the resource attribute。
这似乎是因为CloudFormation将YAML解码为以下JSON:
[
'Database',
'Endpoint',
'Address'
]这显然是三个参数,而它应该是两个。这是一个已知的bug吗?
发布于 2020-11-06 00:45:22
Fn::GetAtt需要一个具有两个参数的数组。!GetAtt允许您使用您正在尝试的点符号。
这两种方法中的任何一种都应该适合您:
Fn::GetAtt: [ "Database", "Endpoint.Address" ]
!GetAtt Database.Endpoint.Address
资源:
发布于 2020-11-06 00:11:04
发布于 2021-09-27 13:20:35
您可能在linux/unix语句中使用它,但语法中缺少逗号(,)或方括号([)
示例-这里需要在!GetAtt Database.Endpoint.Address后面加一个逗号(,)。如果你错过了这一点,那么Linter不会给出错误,因为它是在linux脚本上下文中,Cloud give也不会给出正确的错误消息。
https://stackoverflow.com/questions/64700714
复制相似问题