首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CloudFormation: Fn::GetAtt:不适用于Endpoint.Address on AWS::RDS::DBInstance

问CloudFormation: Fn::GetAtt:不适用于Endpoint.Address on AWS::RDS::DBInstance
EN

Stack Overflow用户
提问于 2020-11-05 23:54:11
回答 3查看 605关注 0票数 0

当我尝试为使用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:

代码语言:javascript
复制
[
  'Database',
  'Endpoint',
  'Address'
]

这显然是三个参数,而它应该是两个。这是一个已知的bug吗?

EN

回答 3

Stack Overflow用户

发布于 2020-11-06 00:45:22

Fn::GetAtt需要一个具有两个参数的数组。!GetAtt允许您使用您正在尝试的点符号。

这两种方法中的任何一种都应该适合您:

Fn::GetAtt: [ "Database", "Endpoint.Address" ]

!GetAtt Database.Endpoint.Address

资源:

票数 3
EN

Stack Overflow用户

发布于 2020-11-06 00:11:04

建议在创建模板以及自动完成和文档链接时,尝试在VSCode中使用CloudFormation Linter内联查看其中一些错误:

​

​

尝试将语法切换为!GetAtt Database.Endpoint.Address

票数 2
EN

Stack Overflow用户

发布于 2021-09-27 13:20:35

您可能在linux/unix语句中使用它,但语法中缺少逗号(,)或方括号([)

示例-这里需要在!GetAtt Database.Endpoint.Address后面加一个逗号(,)。如果你错过了这一点,那么Linter不会给出错误,因为它是在linux脚本上下文中,Cloud give也不会给出正确的错误消息。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64700714

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档