Amazon ec2 AWS云形成-如何获取ec2实例的公共ip地址
我正在尝试创建ec2实例,并且我希望能够创建一个包含ec2实例公共DNS名称的文件,尽管在以下代码中,我得到了由第行引起的循环依赖项错误:Amazon ec2 AWS云形成-如何获取ec2实例的公共ip地址,amazon-ec2,Amazon Ec2,我正在尝试创建ec2实例,并且我希望能够创建一个包含ec2实例公共DNS名称的文件,尽管在以下代码中,我得到了由第行引起的循环依赖项错误: "server_name = \"",{ "Fn::GetAtt" : [ "ECServer", "PublicDnsName" ]},"\"\n","\n" 当我尝试创建ec2时,是否可以在实例部分获取公共DNS名称 "ECServer": { "Type": "AWS::EC2::Instance", "Metadata" : { "
"server_name = \"",{ "Fn::GetAtt" : [ "ECServer", "PublicDnsName" ]},"\"\n","\n"
当我尝试创建ec2时,是否可以在实例部分获取公共DNS名称
"ECServer": {
"Type": "AWS::EC2::Instance",
"Metadata" : {
"AWS::CloudFormation::Init" : {
"configSets": {
"Install": ["ECServerConfig"]
},
"ECConfig": {
"files": {
"/tmp/test.txt" : {
"content": { "Fn::Join" : ["", [
"server_name = \"",{ "Fn::GetAtt" : [ "ECServer", "PublicDnsName" ]},"\"\n","\n"
]]},
"mode" : "000644",
"owner": "root",
"group": "root"
}
}
}
}
},
您可以通过使用简单的curl命令获得运行EC2实例的公共IP-
1.SSH到该EC2实例。
2.执行以下命令-
curlhttp://169.254.169.254/latest/meta-data/public-ipv4
You can try using this, in CFT one cannot use the refer to the properties of itself using Fn::GetAtt function
"ECServer": {
"Type": "AWS::EC2::Instance",
"Metadata" : {
"AWS::CloudFormation::Init" : {
"configSets": {
"Install": ["ECServerConfig"]
},
"ECConfig": {
"files": {
"/tmp/test.txt" : {
"mode" : "000644",
"owner": "root",
"group": "root"
}
},
"commands" :{
"test" : {
"command" : "curl -s http://169.254.169.254/latest/meta-data/public-hostname > /tmp/test.txt",
"ignoreErrors" : "false"
}
}
}
}
}
}