1

我有以下问题...我想知道 EC2 .NET API 上是否有一些方法允许我列出给定区域中所有可用的 AMI(如在 Web 界面中)。至少他们的身份证。我想设置一个随机图像,这是拼图中唯一遗漏的部分。

4

1 回答 1

4

应该很简单。这是一个代码摘录,它将返回所有处于可用或挂起状态的 AMI(添加您自己的过滤器和周围的try/catch块):

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);

此查询将带来所有公共和私有 AMI。由于结果集中的结果包含说明实例是公共还是私有的属性(例如<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");  

如需进一步参考,请参阅适用于 .NET 的 AWS 开发工具包文档。在左侧的树上,选择 Amazon/Amazon.EC2.Model/DescribeImagesRequest 类。此外,DescribeImages API 参考Filter包含您可以在此请求中使用的每个名称和可能的值。

PS:由于您明确谈论区域,并且 AMI 没有与之关联的区域,因此您可能正在谈论实例。在这种情况下,有一个类似的请求称为DescribeInstances. 在此处(Amazon/Amazon.EC2.Model/DescribeInstancesRequest 类)和此处查找有关它的更多详细信息。

希望能帮助到你。

于 2012-07-06T00:11:06.787 回答