繁体   English   中英

EC2:如何获取实例的Vpc ID?

[英]EC2: How can I get the Vpc ID of an Instance?

我试图找出实例的vpc-id。 任何人都可以引用可以解决此问题的API吗? 我正在使用Java SDK。

您可以尝试在ec2-instance中执行以下操作

首先,您需要找到实例的Macid

macid=$(curl http://169.254.169.254/latest/meta-data/network/interfaces/macs/)

并使用下面的macid

curl http://169.254.169.254/latest/meta-data/network/interfaces/macs/${macid}/vpc-id

您可以使用Python的boto框架(无需安装已经存在的任何东西)

例:

python -c "import boto.utils as u; print u.get_instance_metadata()['network']['interfaces']['macs'].values()[0]['vpc-id']"

在Ec2上:

[ec2-user@ip-10-0-8-90 ~]$ python -c "import boto.utils as u; print u.get_instance_metadata()['network']['interfaces']['macs'].values()[0]['vpc-id']"
vpc-55ff1a123

或者,如果您不在AWS网络上,则可以将aws clidescribe-instances--query参数一起使用:

aws ec2 describe-instances --instance-id i-6fedd222 --query 'Reservations[0].Instances[0].NetworkInterfaces[0].VpcId'

me@my-PC:~/workspace$ aws ec2 describe-instances --instance-id i-6fedd222 --query 'Reservations[0].Instances[0].NetworkInterfaces[0].VpcId'
"vpc-55ff1a123"

这是如何获取aws实例的vpc ID的示例。 调用describeInstances()时,请使用过滤器DescribeInstancesRequest来限制结果。

AmazonEC2Client ec2Client = new AmazonEC2Client();
DescribeInstancesResult describeInstanceResult = ec2Client.describeInstances();
List<Reservation> reservations = describeInstanceResult.getReservations(); 
for (Reservation reservation : reservations) {    
   for (Instance instance : reservation.getInstances()) {
      System.out.println(instance.getVpcId());    
   } 
}

DescribeInstances API是您正在寻找的API。 它返回实例的VPC ID。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM