5

我需要一个告诉我instanceID的函数,我在这里搜索一个函数,但你总是需要id...是的,这就是问题所在。

我不允许使用控制台,需要通过脚本找到它。

我看到了 AWS.MetadataService文档,但我无法处理它。我只能看到单件,但我不知道如何正确匹配它们,以获得我想要的。目前我有这个

var meta  = new AWS.MetadataService();

meta.request("http://169.254.169.254/latest/meta-data/", function(err, data){
    console.log(data);
});

但是ofc这不起作用......路径参数中需要什么?

4

2 回答 2

18

如果您的脚本在您需要 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://和主机部分。只是最后的路径。

于 2016-05-20T16:03:49.470 回答
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

于 2016-05-20T17:36:43.270 回答