Cloudformation EC2 实例将外部 DNS 和 IP 添加到 init 上的 .conf 文件

Cloudformation EC2 instance add External DNS and IP to .conf file on init

我正在创建一个云形成文件,用于设置 EC2 实例并在其上安装一些应用程序等。然后它还会安装用于从网络添加密码保护的 squid。

我遇到的问题是在设置实例时需要使用外部 ip 和 public dns 地址设置配置文件。不幸的是,这些在 EC2 实例初始化之前不存在,如果我尝试在云形成脚本中的实例的 userData 中引用此值,我会收到循环引用错误。

有谁知道在创建实例并分配 public IP 和 DNS 地址后我如何获取 cloudformation 脚本来更新此 conf?

您可以从每个 EC2 实例上可用的 metadata server at http://169.254.169.254 获取此信息。

要获取 public IP 使用:

curl -f http://169.254.169.254/latest/meta-data/public-ipv4

要获取 public 域,请使用:

curl -f http://169.254.169.254/latest/meta-data/public-hostname

在您的用户数据脚本中使用它们。