如何从Amazon EC2实例中找出“公共DNS名称”?

我在Amazon EC2上有一个Windows 2008r2实例。 我希望能够从实例中访问其“公共DNS名称”。 公共DNS名称也可以在我的AWS EC2控制台上find。

有没有办法做到这一点?

未知的答案在技​​术上是正确的(+1),但为了提供背景和一些更多细节,我想提一提各自的Amazon EC2 实例元数据和用户数据 :

实例元数据是关于您的EC2实例的数据,可用于配置或管理正在运行的实例。 实例元数据分为几类。 有关更多信息,请参阅实例元数据类别 。

许多可用的元数据类别之一是public-hostname

该实例的公共DNS。 如果实例位于VPC中,则只有在enableDnsHostnames属性设置为true时才会返回此类别。 有关更多信息,请参阅在您的VPC中使用DNS 。

您可以通过专用URI( http://169.254.169.254/latest/meta-data/使用任何具有HTTP功能的工具(例如无处不在的cURL ,强烈推荐的HTTPie ( CLI,cURL-像人类的工具 ),当然,最明显的是你的用例,PowerShell,特别是。 版本3.0+,例如:

 PS> $publicHostname = Invoke-WebRequest ` -Uri http://169.254.169.254/latest/meta-data/public-hostname 

看看这里 ,但使用public-hostname而不是instance-id