我需要一个告诉我instanceID的函数,我正在搜索here函数,但是你总是需要id ...是的,这就是问题所在。
我不允许使用控制台,需要通过脚本找到它。
我看到了AWS.MetadataService documentation,但我无法处理它。我只能看到单件,但我不知道如何正确匹配它们,以及我想要的东西。目前我有这个
var meta = new AWS.MetadataService();
meta.request("http://169.254.169.254/latest/meta-data/", function(err, data){
console.log(data);
});
但是,这不起作用......路径参数需要什么?
答案 0 :(得分:10)
如果您的脚本在您想要ID的EC2实例上运行,则可以从实例元数据中获取EC2实例ID。此命令将为您提供EC2实例ID(例如,i-12345678):
curl http://169.254.169.254/latest/meta-data/instance-id
元数据的完整文档可以在这里找到:
http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html
<强>更新强>
对于Node中的内容,请尝试以下方法:
var meta = new AWS.MetadataService();
meta.request("/latest/meta-data/instance-id", function(err, data){
console.log(data);
});
不要包含http://
和主机部分。只是最后的道路。
答案 1 :(得分:0)
如果你从ec2 api看,你可以使用aws ec2 describe-XXX
命令,例如
[xxx@IP-xxxx ~]# aws ec2 describe-addresses
{
"Addresses": [
{
"Domain": "vpc",
"InstanceId": "i-YOUR INSTANCE ID",
"NetworkInterfaceId": "eni-xxxx",
"AssociationId": "eipassoc-xxxx",
"NetworkInterfaceOwnerId": "xxxx",
"PublicIp": "xxxx",
"AllocationId": "eipalloc-xxxx",
"PrivateIpAddress": "xxxx"
}
]
}
您还可以使用aws ec2 describe-instances
非常完整,并返回有关该实例的所有信息,包括InstanceId