我有以下问题...我想知道 EC2 .NET API 上是否有一些方法可以让我列出给定区域中所有可用的 AMI(如在 Web 界面中)。至少他们的身份证。我想设置一个随机图像,这是拼图中唯一遗漏的部分。
最佳答案
应该很简单。以下是一段代码摘录,它将返回所有处于可用或待定状态的 AMI(添加您自己的过滤器和周围的 try/catch
block ):
AmazonEC2 ec2 = AWSClientFactory.CreateAmazonEC2Client(
"YOUR_ACCESS_KEY",
"YOUR_SECRET_KEY"
);
DescribeImagesRequest request = new DescribeImagesRequest();
request.WithFilter(new Filter[] {
new Filter().WithName("state").WithValue("available", "pending")});
DescribeImagesResponse ec2Response = ec2.DescribeImages(request);
此查询将带来所有公共(public)和私有(private) AMI。由于结果集中的结果包含说明实例是公共(public)实例还是私有(private)实例的属性(例如 <Visibility>Private</Visibility>
)。
如果您只需要自己的 AMI,请添加 .WithOwner("YOUR_AMAZON_ID")
到您的过滤器定义。例如:
request.WithFilter(new Filter[] {
new Filter().WithName("state").WithValue("available", pending")})
.WithOwner("YOUR_AMAZON_ID");
或
request.WithOwner("YOUR_AMAZON_ID");
如需进一步引用,请参阅 AWS SDK for .NET Documentation .在左侧的树中,选择 Amazon/Amazon.EC2.Model/DescribeImagesRequest Class。
此外,DescribeImages API Reference包含每个 Filter
的名称和可能的值您可以在此请求中使用。
PS:由于您是在明确谈论区域,而 AMI 没有与之关联的区域,因此您可能在谈论实例。在这种情况下,有一个名为 DescribeInstances
的类似请求。 .查找有关它的更多详细信息 here (Amazon/Amazon.EC2.Model/DescribeInstancesRequest 类)和 here .
希望对您有所帮助。
关于c# - Amazon EC2 .NET API,启动随机实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11352821/