如何获取EC2实例的VPC ID?

时间:2016-09-19 10:55:01

标签: c# amazon-web-services amazon-ec2 aws-sdk

我需要使用C#AWS SDK识别当前EC2实例的VpcId。我一直试图这样做几个小时,现在没有真正的运气。

我目前的做法是这样的,

var currentInstanceId = Amazon.EC2.Util.EC2Metadata.InstanceId; // Get Current Instance Id

AWSCredentials creds = new BasicAWSCredentials(accessKey, secretKey);
var ec2Client = AWSClientFactory.CreateAmazonEC2Client(creds, clientRegionEndpoint);
var instances = ec2Client.DescribeInstances();

foreach (var reservation in instances.Reservations)
{
  foreach (var instance in reservation.Instances)
  {
    if (instance.InstanceId.Equals(currentInstanceId)) // Compare Instance Id with all available instances 
      return instance.VpcId;
  }
}

我觉得应该有一种更简单的方法来做到这一点。对此的任何帮助都将非常感激。

更新

借助@ jbird的帮助,我能够实现这一目标,

Amazon.EC2.Util.EC2Metadata.NetworkInterfaces.First().VpcId

1 个答案:

答案 0 :(得分:3)

Amazon.EC2.Util.EC2Metadata下查看NetworkInterfaces下的内容。每个网络接口都有VpcId

这将从http://169.254.169.254/latest/meta-data/network/interfaces/macs/${mac}/vpc-id的EC2实例的元数据中获取VPC ID。 (Reference