我有一个运行我的服务的自定义 AMI。使用 AWS Java 开发工具包,我使用RunInstancesRequest
AMI 创建了一个 EC2 实例。现在,在我开始使用我的服务之前,我必须确保新创建的实例已启动并正在运行。我使用以下方法轮询实例:
var transitionCompleted = false
while (!transitionCompleted) {
val currentState = instance.getState.getName
if (currentState == desiredState) {
transitionCompleted = true
}
if(!transitionCompleted) {
try {
Thread.sleep(TRANSITION_INTERVAL)
} catch {
case e: InterruptedException => e.printStackTrace()
}
}
}
因此,当currentState
实例变为desiredState
(即running
)时,我得到实例准备就绪的状态。然而,任何新创建的实例,尽管处于running
状态,但仍无法立即使用,因为它仍在初始化。
如何确保仅在能够访问实例及其服务时才返回?是否需要进行任何特定的状态检查?
PS:我使用 Scala