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

Jer*_*lin 5 amazon-ec2

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

Cal*_*leb 8

您可以使用 curl 从一个小的 http API 获取有关正在运行的实例的数据,如下所示:

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

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

  • ami-id
  • 主机名
  • 实例 ID
  • 本地-ipv4
  • 本地主机名
  • 公共主机名
  • 公共-ipv4

还有更多,但这些是最有用的一些。也可以从那里检索您在实例启动时指定的 SSH 密钥等内容。