Как завершить и восстановить среду Elastic Beanstalk в запланированное время?

#amazon-web-services #boto3 #amazon-elastic-beanstalk

#amazon-веб-службы #boto3 #amazon-elastic-beanstalk

Вопрос:

Я хочу завершить работу одной из моих сред Elastic Beanstalk в полночь и восстанавливать ее утром каждый день.

Итак, я последовал этому руководству по настройке функций lambda и событий CloudWatch.

В руководстве есть одна вещь, которую я нахожу странной. В руководстве используется rebuild_environment функция для восстановления среды EB. В документе этой функции говорится, что rebuild_environment сначала будет удалена среда EB, а затем будут созданы все ресурсы, связанные со средой EB.

При запуске rebuild_environment я получил No Environment found for EnvironmentName = 'my-eb-environment-name' ошибку. Это потому, что my-eb-environment-name она уже была завершена в полночь.

Какой правильный способ восстановить завершенную среду EB с помощью boto3 ?

Ответ №1:

Завершите работу вашей среды Elastic Beanstalk и вызовите функцию восстановления boto3 с помощью EnvironmentId вместо EnvironmentName

Это должно сработать. Я думаю, что EnvironmentName используется только для перестроения в среде Elastic Beanstalk, не завершенной

Вы также можете перестроить завершенные среды в течение шести недель (42 дней) после их завершения. При перестроении Elastic Beanstalk пытается создать новую среду с тем же именем, идентификатором и конфигурацией.

Просто остерегайтесь редкого случая

Если вы не используете свое собственное доменное имя с завершенной средой, среда использует поддомен elasticbeanstalk.com. Эти поддомены являются общими в регионе Elastic Beanstalk. Таким образом, они могут использоваться в любой среде, созданной любым клиентом в том же регионе. В то время как ваша среда была завершена, другая среда могла использовать ее поддомен. В этом случае перестроение завершится неудачей.