У меня есть пользовательский AMI, который запускает мое обслуживание. Теперь, используя AWS Java SDK, я создаю экземпляр EC2, используя 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
если это http-сервис, просто получите запрос. –
@FatihDonmez: это похоже на опрос запроса каждые N секунд; kinda a hack – User528491
да, что-то в этом роде. –