ポーリングに加えて、長時間実行されているAmazon EC2操作が完了したことをどのように知ることができますか?たとえば、CreateImage
API関数の使用には数分以上かかる場合があります。
今私はこれをやっています:
// 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.NETSDKを使用していますが、特にC#ソリューションを探しているわけではありません。
更新:AWSフォーラムへのクロスポスト