我运行此命令以从EC2实例获取实例ID,请求如何处理以及服务如何知道要发回的详细信息?
wget -q -O - http://169.254.169.254/latest/meta-data/instance-id
谢谢
Eri*_*ond 24
在较高级别,wget是一个启动HTTP Web请求(假装是浏览器)的命令,这些选项告诉它将stdout的结果响应(你看到的)吐出.
由于EC2 dom0主机控制着在虚拟机中运行的实例所看到的网络堆栈,因此EC2可以以任何方式处理网络流量169.254.169.254.
在这种情况下,EC2知道发出请求的实例(无论是基于EC2控制的内部IP地址,还是基于dom0主机在通过网络发送请求之前处理请求的事实).
因此,EC2知道发出请求的实例和EC2知道有关每个实例的所有信息,因此EC2可以返回请求的元数据,包括实例ID.
亚马逊尚未准确发布他们如何实现此功能,但他们确实会保证它将为请求实例返回正确的数据,而不会有任何其他人干扰.
您可以在此处了解有关可用EC2元数据的更多信息
http://docs.amazonwebservices.com/AWSEC2/latest/UserGuide/index.html?AESDG-chapter-instancedata.html
除非您碰巧在试图模拟EC2的系统上运行,否则神奇IP地址169.254.169.254和相应的元数据URL将无法在EC2实例之外运行.
您可以使用 ec2metadata
ec2metadata --instance-id
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14663 次 |
| 最近记录: |