在运行实例中获取EC2公共dns的最简单方法是什么?

我正在写一个需要使用实例的公共DNS名称的bash脚本。 从正在运行的实例中获取它的最简单方法是什么?

你可以像这样使用curl从一个小的http API中获取有关正在运行的实例的数据:

#/bin/bash public_name=$(curl -s http://169.254.169.254/latest/meta-data/public-hostname) echo $public_name 

您可以获取的其他值包括:

  • AMI-ID
  • 主机名
  • 实例的编号
  • 当地的IPv4
  • 本地主机名
  • 公共主机名
  • 公共的IPv4

还有更多,但那些是最有用的。 像在实例启动时指定的SSH密钥也可以从那里获取。