1

私はCreateImage()既存のインスタンスから新しい AMI を作成するために使用していますDeleteImage()が、逆の方法で機能するものがあることを望んでいました。残念ながら、このメソッドは EC2Client には存在しません。

C# を使用して SDK から AMI を削除する適切な方法は何ですか?

4

2 に答える 2

3

簡単なスニペットは次のとおりです。

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

于 2012-06-02T18:42:52.650 に答える
2

あなたがDeregisterImage()望むことをするべきです。イメージの基になっている可能性のあるスナップショットを後で削除するのは、ユーザー次第であることに注意してください。

于 2011-06-28T20:43:02.483 に答える