Groovy コードで aws Java SDK を使用しています。
2 つの ec2 インスタンスを開始した後、それらを終了するように要求しました。次に、これらのインスタンスに依存する他のリソースを削除する前に、これらのインスタンスが終了するまで待ちたいと思います。
インスタンスの終了をチェックする次のコードを取得しました。(while ループは決して終了しません)
//instanceIds == a list of instance ids as strings. Ive previously requested that these instances be terminated
//Terminate instances
TerminateInstancesRequest terminateInstancesRequest = new TerminateInstancesRequest()
terminateInstancesRequest.setInstanceIds(instanceIds)
TerminateInstancesResult terminateInstancesResult = ec2.terminateInstances(terminateInstancesRequest)
//Wait for instances to terminate
terminateInstancesResult.getTerminatingInstances().each {
while (it.getCurrentState().name != "terminated") {
Thread.sleep(5000)
println it.getCurrentState().name
println it.getCurrentState().code
}
}
コンソールに次のように出力されます
shutting-down
32
shutting-down
32
etc..
たとえば、AWS コンソールにログインしても、まだ終了状態にならないのですが、これらのインスタンスが終了していることがわかります。終了のステータスが返されないのはなぜですか?
ありがとう