我正在尝试使用 .NET 中的 AWS SDK 过滤 EC2 实例,尽管我已经在 SO 和其他网站上看到无数线程解决了这个问题,但我最终没有尝试任何工作。
因此,作为最后的资源,我向你们寻求帮助。谁能阐明我所缺少的东西?我知道我很可能在做一些愚蠢的事情,但我不能浪费太多时间来解决这个问题。
这是我用来通过标签名称过滤 EC2 实例(获取它的元数据)的代码块:
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);
但我一直遇到这个异常:
The filter 'tag:Name' is invalid
我已经用文档中列出的几个过滤器(例如“tag-key”、“tag-value”、“tag:key=value”)替换了过滤器名称(示例中的“tag:Name”),但是什么都没用。
提前谢谢大家:)
最佳答案
经过更彻底的研究,我发现“DescribeInstanceStatus”例程不支持按标签搜索,但我发现了一种有点“简单”的方法。我会把它张贴在这里,以防有人遇到同样的情况。
方法如下:
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}
理论上,通过此例程,您可以使用 documentation 中“支持的过滤器”表下列出的任何过滤器。 .
关于c# - 使用 "DescribeInstanceStatus"例程过滤 EC2 实例 - AWS SDK,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36346096/