2016-04-01 14 views
5

.NET'teki AWS SDK'sını kullanarak EC2 örneklerini filtrelemeye çalışıyorum ve bu sorunun çözümünde SO ve diğer web sitelerinde çok sayıda iş parçacığı görmeme rağmen Sonunda çalıştım denedim."DescribeInstanceStatus" yordamına sahip EC2 Örneğini Filtrele - AWS SDK

Son bir kaynak olarak, size yardım için size geliyorum. Kaybettiklerime kim ışık tutabilir ki? Aptalca bir şey yapmamın çok muhtemel olduğunu biliyorum, ancak bu sorunu çözmek için çok fazla zaman harcayacağım.

Bu

kod yığın ben onun tarafından (bu meta veri var olsun) bir EC2 örneğini filtrelemek için kullanıyorum etiketine isim:

DescribeInstanceStatusRequest req = new DescribeInstanceStatusRequest(); 
req.Filters.Add (new Filter() { Name = "tag:Name", Values = new List <string>() { "some_random_name" } }); 

// Executing request & fetching response 
DescribeInstanceStatusResponse resp = m_ec2Client.DescribeInstanceStatus (req); 

Ama bu istisna koşma içine devam:

filtre belgelerinde belirtilen çeşitli filtreler (örneğin "etiket-tuşu" ile: (örnekte "Ad etiketi") ", ben filtre adını yerini almıştır

'etiketi Ad' geçersiz tag-value "," tag: key = value "), ancak hiçbir şey işe yaramıyor.

peşin :) daha kapsamlı bir araştırmadan sonra

cevap

4

içinde teşekkür ederiz, ben "DescribeInstanceStatus" rutin etiketi ile arama desteklemediği öğrendim, ama bunu yaparken biraz "basit" yolunu buldu . Birinin aynı durumdan geçmesi durumunda onu buraya göndereceğim. Bu rutin Eğer documentation yılında "Desteklenen Filtreler" masanın altında listelenen filtrelerden birini kullanabilirsiniz Teoride

DescribeInstancesRequest req = new DescribeInstancesRequest(); 
req.Filters.Add (new Filter() { Name = "tag-value", Values = new List <string>() { "something" }}); 

// Executing request & fetching response 
DescribeInstancesResponse resp = m_ec2Client.DescribeInstances (req); 

return resp.Reservations.SelectMany (x => x.Instances).Where (y => y.State.Name == InstanceStateName.Pending || y.State.Name == InstanceStateName.Running).ToList(); {code} 

:

İşte nasıl.

0

O var olabilir ...

// Executing request & fetching response 
DescribeInstancesResponse resp = m_ec2Client.DescribeInstances (
    new DescribeInstancesRequest() 
    { 
     Filters = new List<Filter>() 
     { 
      new Filter("tag:Name", new List<string>(){"some_random_name"}) 
     } 
    });