2016-09-19 1 views
0

Ich muss die VpcId für die aktuelle EC2-Instanz mit dem C# AWS SDK identifizieren. Ich habe versucht, dies jetzt für ein paar Stunden ohne echtes Glück zu tun.Wie erhalte ich die VPC-ID einer EC2-Instanz?

Mein aktueller Ansatz ist so etwas wie dieses,

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; 
    } 
} 

Ich fühle mich wie sollte es ein einfacher Weg, dies zu tun. Jede Hilfe dazu wäre sehr geschätzt.


Update:

Mit @ jbird Hilfe konnte ich dies mit erreichen,

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

Antwort

3

Unter Amazon.EC2.Util.EC2Metadata Blick unter NetworkInterfaces. Jede Netzwerkschnittstelle hat eine VpcId.

Dies ruft die VPC-ID aus den Metadaten der EC2-Instanz unter http://169.254.169.254/latest/meta-data/network/interfaces/macs/${mac}/vpc-id ab. (Reference)

+0

Danke @jbird für die Info, ich werde dies morgen überprüfen und akzeptieren, wenn es funktioniert. – M22an

+0

Um nur ein wenig zu verdeutlichen, ist es tatsächlich '/ neuste/Metadaten/Netzwerk/macs/$ {mac}/vpc-id', wobei' $ {mac} 'die Antwort ist, die du von'/latest/meta bekommst -Daten/Mac'. Erfordert zwei Anfragen und sucht den Mac und dann den vPC des Mac auf. –

+0

Danke - aktualisiert! – jbird

Verwandte Themen