Как удалить изображение (AMI) в AWS EC2 с помощью SDK? - PullRequest
1 голос
/ 29 июня 2011

Я использую CreateImage() для создания нового AMI из существующего экземпляра, и я надеялся, что будет DeleteImage(), который будет работать в обратном порядке.К сожалению, этот метод не существует на EC2Client.

Как правильно удалить AMI через SDK с помощью C #?

Ответы [ 2 ]

3 голосов
/ 02 июня 2012

Вот быстрый фрагмент:

AmazonEC2 ec2 = AWSClientFactory.CreateAmazonEC2Client();

DeregisterImageRequest deregisterImageRequest = new DeregisterImageRequest();
deregisterImageRequest.ImageId = AMIName;

DeregisterImageResponse deregisterImageResponse = new DeregisterImageResponse();
deregisterImageResponse = ec2.DeregisterImage(deregisterImageRequest);

Не забудьте обработать исключения и удалить снимки ..

Однако существует проблема с удалением связанных снимков.

Если вы попытаетесь выяснить сопоставление устройства с помощью DescribeImageAttributeRequest, возникнет исключение - «Несанкционированная попытка доступа к ограниченному ресурсу»:

DescribeImageAttributeRequest describeImageAttributeRequest = new DescribeImageAttributeRequest().WithImageId("ami-name").WithAttribute("blockDeviceMapping");

DescribeImageAttributeResponse describeImageAttributeResponse = new DescribeImageAttributeResponse();

describeImageAttributeResponse = ec2.DescribeImageAttribute(describeImageAttributeRequest);

См. Сообщение: https://forums.aws.amazon.com/message.jspa?messageID=231972

2 голосов
/ 29 июня 2011

Существует DeregisterImage(), который должен делать то, что вы хотите.Обратите внимание, что вы должны удалить любые снимки, на которых может быть основано изображение.

...