我已经看到了几种亚马逊网络服务CLI的解决方案,但我不确定如何将这些查询转换为亚马逊网络服务.net软件开发工具包。
给定:亚马逊网络服务.net软件开发工具包;具有特定标签密钥的亚马逊网络服务实例(例如EXCLUDE_ME)
问题:需要创建一个Amazon.EC2.Model.Filter实例,该实例将过滤出具有特定标签键的vms。
谢谢。
发布于 2021-05-27 20:30:14
有一种方法可以根据值进行筛选,以便在DescribeInstances返回的列表中包含但不排除实例。我创建了一个小示例,它对DescribeInstances进行了两次调用。此示例使用分页器异步检索结果:
class DescribeInstances
{
static async Task Main()
{
// If the region of the EC2 instances is different from that
// of the default user, you need to specify the rgion when
// you create the client object.
var eC2Client = new AmazonEC2Client(RegionEndpoint.USEast1);
await GetInstanceDescriptions(eC2Client);
await GetInstanceDescriptionsFiltered(eC2Client, "IncludeInList", "Yes");
}
static async Task GetInstanceDescriptions(AmazonEC2Client client)
{
var request = new DescribeInstancesRequest();
Console.WriteLine("Showing all instances:");
var paginator = client.Paginators.DescribeInstances(request);
await foreach (var response in paginator.Responses)
{
foreach (var reservation in response.Reservations)
{
foreach (var instance in reservation.Instances)
{
Console.Write($"Instance ID: {instance.InstanceId}");
Console.WriteLine($"\tCurrent State: {instance.State.Name}");
}
}
}
}
static async Task GetInstanceDescriptionsFiltered(AmazonEC2Client client, string tagName, string tagValue)
{
// This is the tag we want to use to filter
// the results of our list of instances.
var filters = new List<Filter>
{
new Filter
{
Name = $"tag:{tagName}",
Values = new List<string>
{
tagValue,
},
},
};
var request = new DescribeInstancesRequest
{
Filters = filters,
};
Console.WriteLine("\nShowing instances with tag: \"IncludeInList\" set to \"Yes\".");
var paginator = client.Paginators.DescribeInstances(request);
await foreach (var response in paginator.Responses)
{
foreach (var reservation in response.Reservations)
{
foreach (var instance in reservation.Instances)
{
Console.Write($"Instance ID: {instance.InstanceId} ");
Console.WriteLine($"\tCurrent State: {instance.State.Name}");
}
}
}
}
}如果要使用标记排除,则需要检索整个列表,然后在循环结果时,检查标记值并跳过符合条件的值。
如果您想了解Filters属性可以使用哪些值,请参阅此处的API参考:DescribeInstancesRequest,了解有关Filters属性的可能值的信息。
有关使用分页器的更多信息,请参阅本文:Introducing Paginators in AWS SDK for .NET v3.5
https://stackoverflow.com/questions/67703496
复制相似问题