Компания использует AWS CodePipeline с AWS CodeDeploy для развертывания приложения в Amazon ECS с использованием сине-зеленых развертываний. Команде необходимо запустить тестовые скрипты в «зеленой» среде (тесты завершаются в течение 5 минут) перед переключением трафика. Если тесты не пройдут, развертывание должно быть откачено. Какой подход удовлетворяет этому требованию?
Выберите ответ
Нажмите на вариант, чтобы проверить свой ответ.
Правильный ответ: Добавить хуки в файл AppSpec CodeDeploy и использовать событие жизненного цикла AfterAllowTestTraffic для вызова функции AWS Lambda, которая запускает тестовые скрипты; если Lambda завершится с ошибкой, CodeDeploy выполнит откат..
Почему это правильный ответ
Правильный ответ — использование хуков AppSpec CodeDeploy с событием жизненного цикла AfterAllowTestTraffic. Этот хук выполняется после того, как тестовый трафик направляется в новую (зеленую) среду, но до того, как весь производственный трафик будет переключен. Если функция AWS Lambda, вызванная этим хуком для запуска тестов, завершится с ошибкой, CodeDeploy автоматически выполнит откат развертывания, что соответствует требованию. Неправильные варианты: Добавление этапа CodeBuild или Lambda между этапами source и deploy не подходит, так как тесты должны запускаться в зеленой среде после ее развертывания, но до переключения всего трафика. Использование AfterAllowTraffic неверно, потому что этот хук выполняется после того, как весь производственный трафик уже переключен на новую версию, что не позволяет откатить развертывание до полного переключения трафика. Ручной вызов aws deploy stop-deployment из CodeBuild или Lambda не является автоматическим механизмом отката, встроенным в процесс CodeDeploy для сине-зеленых развертываний.
Сдайте экзамен — без бесконечного поиска ответов
Получите все проверенные вопросы и объяснения для этого экзамена в одном месте и сэкономьте часы подготовки. 1000+ сертификаций · 20+ языков · начните бесплатно.
Сдайте экзамен быстрее → Карта не требуется