使用 "DescribeInstanceStatus" 例程过滤 EC2 实例 - AWS SDK
Filter EC2 Instance with "DescribeInstanceStatus" routine - AWS SDK
我正在尝试使用 .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" 例程不支持按标签搜索,但我发现了某种 "simple" 的方法。我会 post 放在这里,以防有人遇到同样的情况。
方法如下:
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.
中 "Supported Filters" table 下列出的任何过滤器
可能是...
// 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"})
}
});
从 AWS EC2
获取 运行 instance
的数量
DescribeInstancesRequest req = new DescribeInstancesRequest();
req.Filters.Add(new Filter {
Name = "instance-state-name",
Values = new List<string>() { "running" }
});
DescribeInstancesResponse resp = _amazonEC2Client.DescribeInstances(req);
我正在尝试使用 .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" 例程不支持按标签搜索,但我发现了某种 "simple" 的方法。我会 post 放在这里,以防有人遇到同样的情况。
方法如下:
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.
中 "Supported Filters" table 下列出的任何过滤器可能是...
// 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"})
}
});
从 AWS EC2
获取 运行instance
的数量
DescribeInstancesRequest req = new DescribeInstancesRequest();
req.Filters.Add(new Filter {
Name = "instance-state-name",
Values = new List<string>() { "running" }
});
DescribeInstancesResponse resp = _amazonEC2Client.DescribeInstances(req);