我正在尝试查找实例的vpc-id。 有人可以提供一个可以解决此问题的API吗? 我正在使用Java SDK。
我正在尝试查找实例的vpc-id。 有人可以提供一个可以解决此问题的API吗? 我正在使用Java SDK。
您可以尝试在ec2实例内执行以下操作
首先需要找到实例的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 -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 cli
与describe-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。