【问题标题】:EC2 http://169.254.169.254/latest/user-data returns 404EC2 http://169.254.169.254/latest/user-data 返回 404
【发布时间】:2020-03-04 11:30:23
【问题描述】:

试图从 win EC2 实例中获取 EC2 用户数据

http://169.254.169.254/latest/user-data

我收到 404 - 未找到错误

【问题讨论】:

标签: amazon-web-services


【解决方案1】:

我相信您正在经历这种情况,因为您没有附加 EC2 用户数据

我在我的 AWS 控制台中进行了一项实验。我基于 Ubuntu 18.04 映像启动了两个相同的 EC2 实例。但是,对于我附加用户数据的一个实例,另一个我没有

带有用户数据的实例

$ curl http://169.254.169.254/latest
dynamic
meta-data
user-data

$ curl http://169.254.169.254/latest/user-data
(prints my specified user-data)

没有用户数据的实例

$ curl http://169.254.169.254/latest
dynamic
meta-data
(notice the absence of user-data)

$ curl http://169.254.169.254/latest/user-data
.... <title>404 - Not Found</title> ....

这回答了 OP 的问题,但没有回答 John Bresnahan 的经历

【讨论】:

  • 我可以确认这一点,没有用户数据的实例得到 404,但是元数据前缀正常工作,使用引导脚本创建了一个相同的实例,并且 API 正常工作。
【解决方案2】:

您必须在所有 URI 的末尾使用“/”。

curl http://169.254.169.254/latest/meta-data/
curl http://169.254.169.254/latest/user-data/

或者,您可以使用 DNS 记录“instance-data”代替 IP。例如:

curl http://instance-data/latest/user-data/

【讨论】:

    【解决方案3】:

    我也看到了:

    root@ip-172-31-29-121:/var/lib/cloud# curl http://169.254.169.254/latest/
    dynamic
    meta-data
    user-dataroot@ip-172-31-29-121:/var/lib/cloud#
    root@ip-172-31-29-121:/var/lib/cloud# curl http://169.254.169.254/latest/user-data
    <?xml version="1.0" encoding="iso-8859-1"?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"  
         "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">    
     <head>
      <title>404 - Not Found</title>
     </head>
     <body>
      <h1>404 - Not Found</h1>
     </body>
    </html>
    

    注意,第一个 curl 命令表明数据应该在那里。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-11-04
      • 1970-01-01
      • 2013-11-10
      • 2022-11-11
      • 2012-04-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多