【发布时间】:2019-10-24 19:23:24
【问题描述】:
一年多来,我一直通过点击这个本地网址http://169.254.169.254/latest/meta-data/instance-id 从实例本身获取亚马逊实例 ID。根据 AWS 文档,这是合适的方法。但出于某种原因,就在本周,同样的调用开始引发错误。
我尝试从命令行 ping 169.254.169.254 地址但失败了,因此 EC2 实例似乎发生了一些非常基本的变化。我没有看到 AWS 上的文档有任何更改。我确实注意到的一件事是,在加载实例并远程登录时,我曾经在右上角看到实例名称。该信息不再出现。
这是我用来获取 ID 的代码:
retID = New StreamReader(HttpWebRequest.Create("http://169.254.169.254/latest/meta-data/instance-id").GetResponse().GetResponseStream()).ReadToEnd()
这是完整的错误堆栈:
at System.Net.HttpWebRequest.GetResponse()
at RunControllerInterface.NewRunControlCommunicate.getInstanceIDFromAmazon()
错误消息本身说:无法连接到远程服务器
任何帮助将不胜感激。
【问题讨论】:
-
我认为这实际上并不是完整的错误堆栈。
-
编辑添加错误堆栈的额外行
-
你的错误堆栈肯定至少包含一个错误message?
-
Ping 不是一个好的测试。如果是 Linux 实例,请使用
curl http://169.254.169.254/latest/meta-data/instance-id。如果是 Windows,请打开 Web 浏览器,关闭 IEC 安全功能,然后访问该 URL。如果实例无法访问该 URL,则说明实例上存在某种形式的防火墙阻止流量。如果您想测试行为,可以启动另一个实例并确认它在那里工作,然后尝试找出不同之处。 -
我添加了特定的错误消息,指出它是“无法连接到远程服务器”。
标签: amazon-web-services amazon-ec2