我正在创建一个云形成文件,用于设置EC2实例并在其上安装一些应用程序等。然后它还安装了用于从Web添加密码保护的squid。
我遇到的问题是在设置实例时需要使用外部ip和公共DNS地址设置配置文件。不幸的是,这些在EC2实例初始化之前不存在,并且如果我尝试在云形成脚本中的实例的userData中引用此值,则会得到循环引用错误。
有没有人知道如何在创建实例并分配公共IP和DNS地址后让cloudformation脚本更新此conf?
答案 0 :(得分:1)
您可以从每个EC2实例上提供的metadata server http://169.254.169.254获取此信息。
获取公共IP使用:
curl -f http://169.254.169.254/latest/meta-data/public-ipv4
要使用公共域:
curl -f http://169.254.169.254/latest/meta-data/public-hostname
在您的userdata脚本中使用它们。