如何获取 EC2 实例的 VPC Id?

M22*_*2an 0 c# amazon-ec2 amazon-web-services 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;
  }
}
Run Code Online (Sandbox Code Playgroud)

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


更新:

在@jbird 的帮助下,我能够使用以下方法实现这一目标,

Amazon.EC2.Util.EC2Metadata.NetworkInterfaces.First().VpcId
Run Code Online (Sandbox Code Playgroud)

jzo*_*mtn 6

Amazon.EC2.Util.EC2Metadata下查看NetworkInterfaces. 每个网络接口都有一个VpcId.

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