2012-04-03 18 views
5

ポーリングのほかに、長時間実行している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

答えて

3

にクロスポスト一部のイベントは、SNSトピックに通知を送信するように設定することができます。たとえば、自動スケーリングを使用すると、サーバーの起動時および終了時に通知を受け取ることができます。私が知る限り、これらの通知をCreateImageなどの他のサービスに対して起動する方法はありません。私は運のないこのタイプの機能を過去に探しました。特定の順序でサーバーを起動するスクリプトを作成しようとしていました。それらのイベントに登録する方法を見つけることができなかったので、私は彼らのAPIをポーリングしました。次のように

0

James Hunter Rossはこの質問に答えover on the AWS Forums

ポーリングはそれです。つまり、C#プログラムが起動しているので、あなたが望むように通知するポーリングプロセスを起動させてみませんか?あなたはいくつかの点でほぼ完了しているようです。

が、私は彼のためにStackOverflowのプロファイルを見つけることができませんでした(もちろん、そのような機能がビルトインされた場合にはAWSでそれは。いいだろう)が、彼が現れた場合、私はよ彼に信用を与えるためにこれを編集してください。

関連する問題