【发布时间】:2017-07-01 12:44:40
【问题描述】:
我写了一个 CloudFormation 模板来创建一个 linux docker 主机。
我想在“输出”部分下显示机器的 PublicIP。
这是模板的相关部分:
"Outputs" : {
"ServerAddress" : {
"Value" : { "Fn::GetAtt" : [ "Server", "PublicDnsName" ] },
"Description" : "Server Domain Name"
},
"SecurityGroup" : {
"Value" : { "Fn::GetAtt" : [ "ServerSecurityGroup", "GroupId" ] },
"Description" : "Server Security Group Id"
},
"PublicIp" : {
"Value" : { "Fn::GetAtt" : [ "ServerPublicIp", "PublicIp" ]},
"Description" : "Server's PublicIp Address"
},
}
我在official AWS documentation 中阅读了有关使用“Fn::GetAtt”的信息并尝试在我的模板中实现它,但是当我尝试创建堆栈时出现以下错误:
Error
Template validation error: Template error: instance of Fn::GetAtt references undefined resource ServerPublicIp
据我了解,GetAtt 行的第一部分是一个 LogicalName(我可以选择吗?),第二部分是上面链接中显示的真实属性。
所以我的问题是如何在 Outputs 部分下显示服务器的 PublicIP?
【问题讨论】:
-
ServerPublicIp应该是您的 EC2 实例资源的名称,例如Server是您的ServerAddress输出。
标签: amazon-web-services amazon-cloudformation