kan*_*008 8 java amazon-ec2 amazon-web-services ec2-api-tools
我刚开始在Java中使用Amazon EC2 API.
我使用ec2.runInstances(runInstancesRequest)创建了实例;
但实例启动需要一些时间(通常为1-2分钟).我需要通过Java EC2 API获取机器的公共DNS.
我如何知道实例何时从"待处理"状态变为"已处理"状态,以及如何通过EC2 API获取EC2实例的公共DNS.
提前致谢.看那
SDK没有引发任何事件模型或其他信号来告诉您EC2对象何时更改状态 - 找出的唯一方法是重复对对象发出DescribeXXXXXXXX调用,比如说每30秒一次,直到州领域的变化.
调用执行和响应的最短时间是有限的,因此您需要找到一个在前一个请求完成之前不会触发请求的时间间隔.或者只是等待响应,然后等待另一个'n'秒再重新发出呼叫.您也不希望使用快速请求向AWS API发送垃圾邮件,即使它们在响应之间进行了定时.在我的控制器应用程序中,我将间隔设置为30秒,发出请求,等待响应,然后从间隔中减去经过的时间并长时间休眠.在多线程模型中,我可以同时跟踪许多对象的状态更改,而不会淹没我的本地CPU或API.
一旦检测到状态改变(假设新状态是您预期的 - 不要忘记处理故障模式),您可以获得各种描述性信息,包括公共DNS地址(在实例对象的情况下)从API响应对象中返回的结构.
归档时间: |
|
查看次数: |
2920 次 |
最近记录: |