Ошибка CloudFormation: время ожидания ожидания истекло. Получено 0 условий при ожидании 1

Я потратил много часов, чтобы выяснить, почему мой шаблон CloudFormation не смог использовать WaitCondition. Ошибка шаблона: WaitCondition timed out. Received 0 conditions when expecting 1. Обратите внимание, что я убедился, что мой AMI имеет предустановленную команду cfn-signal в моем AMI.

Я прикрепил следующий снимок экрана своего шаблона:

введите описание изображения здесь

Я погуглил и обнаружил, что у некоторых людей такая же проблема, например: http://virtuallyhyper.com/2013/02/cloudformation-waitcondition-timed-out-error/. Однако в моем случае команда cfn-signal действительно существует. Так что до сих пор я все еще не знаю, как решить эту проблему.

Спасибо


person Nam Nguyen    schedule 12.02.2014    source источник
comment
обратите внимание, что это не удастся, даже если я использую: sudo cfn-signal.   -  person Nam Nguyen    schedule 12.02.2014
comment
На самом деле это не часть причины возникновения ошибки, но чего вы пытаетесь достичь с помощью этого условия ожидания?   -  person Pete - MSFT    schedule 02.04.2014


Ответы (4)


Хорошо, проблема в том, что вы используете конфигурацию запуска с автоматическим масштабированием. Сигналы ожидания действительно работают только при создании реального экземпляра. В противном случае формирование облака создает группу масштабирования и ожидает экземпляра, который создается только после того, как ваша группа масштабирования решит, что ей необходимо масштабировать один или несколько экземпляров. К сожалению, поскольку остальная часть группы масштабирования ожидает передачи сигнала (конкретным экземпляром), группа масштабирования никогда не регистрируется, поэтому никогда не создает экземпляр. Типа тупика - или, в самом списке - чрезвычайно долгий период времени, вызывающий тайм-аут.

  • Cloud Formation не завершит регистрацию группы масштабирования, пока не появится сигнал ожидания
  • Ожидание будет сигнализировать только после регистрации группы масштабирования И создания экземпляра.

Если вы удалите конфигурацию запуска и создадите конкретный экземпляр - тогда ваше условие ожидания будет сигнализировать.

person Pete - MSFT    schedule 02.04.2014
comment
Мне кажется, это правильный ответ. Интересно, какой вариант использования пытается достичь @Nam Nguyen. Не имеет смысла иметь CFN для ожидания экземпляров в ASG. - person Sébastien Stormacq; 03.04.2014

Был ли запущен экземпляр на EC2? Если да, может ли ваш экземпляр достичь вашего узла, на котором выполняется формирование облака? Я столкнулся с этими проблемами и обнаружил, что, поскольку я был за брандмауэром, экземпляр AWS не может связаться с моим узлом, и время ожидания узла истекает в ожидании повторного подключения экземпляра.

person johhny    schedule 12.02.2014
comment
Привет @johhny, я не думаю, что проблема в брандмауэре в данном случае. - person Nam Nguyen; 13.02.2014

Вы не должны использовать sudo в скриптах UserData. Они запускаются от имени пользователя root.

У меня есть пара идей:

Во всех примерах, которые я видел, и в моих собственных шаблонах я использую полный путь к cfn-init:

  • / opt / aws / bin / cfn-init
  • / opt / aws / bin / cfn-сигнал

Вы пробовали использовать команду cfn-init без «-c install»?

person Edwin    schedule 14.02.2014
comment
Спасибо, @Edwin, я попробую. - person Nam Nguyen; 15.02.2014
comment
Я перепробовал все, что вы предложили: абсолютные пути для cfn-init & cfn-signal, вынул sudo, вынул -c install, но все равно не работает. Есть ли у вас другие идеи, которые вызывают ошибки? Спасибо - person Nam Nguyen; 18.02.2014
comment
Похоже, все, что вы можете сделать, это проверить журналы. ssh в экземпляр до отката шаблона и проверьте /var/log/cfn-init.log - person Edwin; 19.02.2014
comment
обратите внимание, что в моем случае у меня есть автомасштабирование. Я не уверен, что атрибут DependsOn в WaitCondition верен. - person Nam Nguyen; 01.04.2014

Я столкнулся с той же проблемой и попробовал все, что описано выше. Я изменил время ожидания на 3000, и все прошло успешно.

person Aaron Trockman    schedule 30.05.2017