EC2 http://169.254.169.254/latest/user-data 返回404错误。

3

尝试从Windows EC2实例获取EC2用户数据

http://169.254.169.254/latest/user-data

我收到404 - Not Found错误。


1
你是如何使用这个的?在网页浏览器中吗?或许使用:AWS EC2 Windows 10无法访问元数据 - John Rotenstein
3个回答

3

我认为你遇到这个问题是因为没有附加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> ....

这解答了发帖者的问题,但并没有涵盖John Bresnahan经历的情况。

1
我可以确认这一点,之前一个没有用户数据的实例返回 404 错误,但元数据前缀工作正常,创建了一个带有引导脚本的完全相同的实例后,API 工作正常。 - Mo Hajr

0

所有的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/

-1

我也看到了这个:

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命令指示数据应该在那里。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接