【问题标题】:Getting ec2 instance ID suddenly stopped working获取 ec2 实例 ID 突然停止工作
【发布时间】: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


【解决方案1】:

所以我想我对这个问题至少有部分答案。制作这张图片时,我使用的是 t3a.medium 实例。只要我使用相同类型的实例,我就可以下拉实例名称。

【讨论】:

  • 几乎可以肯定与实例类型无关。这将是由阻止对 169.254.169.254 的 HTTP 访问的实例上的某些防火墙或 iptables 规则引起的。
猜你喜欢
  • 1970-01-01
  • 2019-06-10
  • 2017-08-22
  • 2021-02-01
  • 2016-12-29
  • 2018-05-09
  • 2015-12-07
  • 2015-08-23
相关资源
最近更新 更多