ポーリングのほかに、長時間実行しているAmazon EC2操作が完了したことをどのように確認できますか?たとえば、API関数CreateImage
を使用すると、数分以上かかる可能性があります。私はこれを嫌い Amazon EC2の操作が完了したら、どうすればわかりますか?
// MAKE THE API CALL
var createRequest = new CreateImageRequest().WithInstanceId("i-123456").WithName("MyNewAMI");
var createResponse = myAmazonEC2Client.CreateImage(createRequest);
var imageId = createResponse.CreateImageResult.ImageId;
// ICKY POLLING CODE
bool isImaging = true;
while (isImaging)
{
var describeRequest = new DescribeImagesRequest().WithImageId(imageId);
var describeResponse = myAmazonEC2Client.DescribeImages(describeRequest);
isImaging = describeResponse.DescribeImagesResult.Image.Single().ImageState == "pending";
Thread.Sleep(10000); // sleep for 10 seconds
}
// CreateImage IS COMPLETE; MOVE ON WITH OUR WORK
:
今、私はこれをやっています。 CreateImage
を呼び出した後、私はちょうどそれがすべて完了し、移動すると何とか通知を受けたいと思います。これは可能ですか?私はこの例でAWS .NET SDKを使用していますが、私はC#ソリューションを特に探していません。
UPDATE:アマゾンでAWS Forums