Подтвердить что ты не робот

Почему каждый раз, когда Elastic Beanstalk выдает команду для своего экземпляра, он всегда тайм-аут?

У меня есть приложение PHP, развернутое на Amazon Elastic Beanstalk. Но я замечаю проблему, что каждый раз, когда я нажимаю свои изменения кода с помощью git aws.push на Elastic Beanstalk, развернутое приложение не получило изменений. Я проверил журнал событий в моем приложении Beanstalk и заметил, что каждый раз, когда проблема Beanstalk:

Развертывание новой версии до экземпляра (ов)

за ним всегда следуют:

Следующие экземпляры не ответили в разрешенное время тайм-аута команды (они все равно могут закончиться в конце концов сами по себе): [Я-d5xxxxx]

То же самое происходит, когда я пытаюсь запрашивать журналы моментальных снимков. Проблемы с Beanstalk:

requestEnvironmentInfo запускает

а затем через несколько минут снова следует:

Следующие экземпляры не ответили в разрешенное время тайм-аута команды (они могут закончиться в конце концов сами по себе): [i-d5xxxxx].

4b9b3361

Ответ 1

У меня была эта проблема несколько раз. Кажется, это влияет только на отдельные случаи. Поэтому его можно решить, завершив экземпляр EC2 (сделанный через страницу EC2 на консоли управления). После этого Elastic Beanstalk обнаружит, что есть 0 здоровых экземпляров и автоматически запускает новый.

Если это производственная среда, и у вас есть только один экземпляр, и вы хотите минимальное время простоя

  • настроить минимальные экземпляры на 2, а Beanstalk запустит для вас другой экземпляр.
  • завершите проблемный экземпляр через вкладку EC2, Beanstalk запустит для вас другой экземпляр, потому что минимальный экземпляр - 2
  • настройте минимальный экземпляр на 1, Beanstalk удалит один из двух экземпляров.

Ответ 2

По умолчанию Elastic Beanstalk "выдает исключение тайм-аута" через 8 минут (480 секунд, заданных в настройках), если ваши команды не завершились вовремя. Вы можете установить более продолжительное время до 30 минут (1800 секунд).

{
    "Namespace": "aws:elasticbeanstalk:command",
    "OptionName": "Timeout",
    "Value": "1800"
}

Читайте здесь: http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/command-options.html

Ответ 3

В случае развертывания альтернатива отключению экземпляров EC2 и ожидание использования Эластичного Beanstalk или использование мнимых и максимальных экземпляров - просто выполнить среду Rebuild в целевой среде.

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

Восстановление среды выглядит reset при использовании новой версии.

Очевидно, что существует недостаток, связанный с периодом простоя.