aws ec2 getaddrinfo ENOTFOUND 错误代码
aws ec2 getaddrinfo ENOTFOUND error code
我的目标是在我的脚本启动时获取 instanceId。 (因为我想将我的网络服务器作为后端连接到 aws elb。这甚至在我对 id 进行硬编码时也有效)所以现在我尝试编写一个给我 id 的函数。
所以我知道我需要 AWS.metadataService 但我不知道如何使用它。我找到了this documentation (metaDataService) an command-line tool。我想我需要像这样组合它:
var meta = new AWS.MetadataService();
meta.request("http://169.254.169.254/latest/meta-data/", function(err, data){
if(err){
console.log(err);
}
console.log(data);
});
但是它产生了这个错误:
{ [Error: getaddrinfo ENOTFOUND 169.254.169.254http 169.254.169.254http:80]
code: 'ENOTFOUND',
errno: 'ENOTFOUND',
syscall: 'getaddrinfo',
hostname: '169.254.169.254http',
host: '169.254.169.254http',
port: 80 }
有什么办法可以解决这个问题吗?或者至少是什么导致了这个错误。
希望对您有所帮助。
var meta = new AWS.MetadataService({
host: '169.254.169.254'
});
meta.request('/latest/meta-data/', function(err, data){
if(err){
console.log(err);
}
console.log(data);
});
正如错误消息相当清楚地告诉您的那样,您以某种方式最终将 169.254.169.254http
作为主机名,将 169.254.169.254http:80
作为主机。为了完整说明这一点,您可能希望主机为 169.254.169.254
。您需要弄清楚为什么您的请求会像这样被搞砸,并更正代码或您的配置文件,以便发送您想要发送的内容。
ENOTFOUND
对 getaddrinfo
的回应仅仅意味着你想获得不存在或未知的地址。这通常意味着您有错别字,或者您用于配置服务的信息已过时或不正常(例如,当您在公司防火墙之外时试图访问私人公司服务器)。
我的目标是在我的脚本启动时获取 instanceId。 (因为我想将我的网络服务器作为后端连接到 aws elb。这甚至在我对 id 进行硬编码时也有效)所以现在我尝试编写一个给我 id 的函数。
所以我知道我需要 AWS.metadataService 但我不知道如何使用它。我找到了this documentation (metaDataService) an command-line tool。我想我需要像这样组合它:
var meta = new AWS.MetadataService();
meta.request("http://169.254.169.254/latest/meta-data/", function(err, data){
if(err){
console.log(err);
}
console.log(data);
});
但是它产生了这个错误:
{ [Error: getaddrinfo ENOTFOUND 169.254.169.254http 169.254.169.254http:80]
code: 'ENOTFOUND',
errno: 'ENOTFOUND',
syscall: 'getaddrinfo',
hostname: '169.254.169.254http',
host: '169.254.169.254http',
port: 80 }
有什么办法可以解决这个问题吗?或者至少是什么导致了这个错误。
希望对您有所帮助。
var meta = new AWS.MetadataService({
host: '169.254.169.254'
});
meta.request('/latest/meta-data/', function(err, data){
if(err){
console.log(err);
}
console.log(data);
});
正如错误消息相当清楚地告诉您的那样,您以某种方式最终将 169.254.169.254http
作为主机名,将 169.254.169.254http:80
作为主机。为了完整说明这一点,您可能希望主机为 169.254.169.254
。您需要弄清楚为什么您的请求会像这样被搞砸,并更正代码或您的配置文件,以便发送您想要发送的内容。
ENOTFOUND
对 getaddrinfo
的回应仅仅意味着你想获得不存在或未知的地址。这通常意味着您有错别字,或者您用于配置服务的信息已过时或不正常(例如,当您在公司防火墙之外时试图访问私人公司服务器)。