AWS CodePipeline: как узнать, завершена ли задача этапа развертывания ECS Fargate, выполняющая процессы в контейнерах? - PullRequest
1 голос
/ 11 февраля 2020

У меня есть AWS CodePipeline с двумя этапами развертывания:

  1. Развертывание в ECS Fargate (тестовая среда).
  2. Развертывание в ECS Fargate (реальная среда).

Первый этап развертывания (первый тест) имеет контейнер с точкой входа, которая выполняет тесты.

Моя проблема в том, что я хотел бы перейти ко второму этапу развертывания, только если первый (тестовый) ) задача fargate завершила все процессы в контейнерах и остановила их.

До сих пор я пытался переместить запуск первой задачи ECS Fargate в buildspe c .yml с помощью команды aws ecs run-task, который встает, выполняет работу, а затем убивает себя, что является необходимым поведением. Однако я бы хотел остановить весь конвейер, пока тесты не будут закончены. enter image description here

Ответы [ 2 ]

1 голос
/ 12 февраля 2020

В этой статье говорится, что вы можете развернуть свои контейнеры на самой сборочной машине, используя docker -compose как действие prebuild, затем в действии build выполните команду test runner (npm тестовое задание). Это должно завершиться этапом deploy test, если тесты не пройдены, и пройти, если тесты пройдены, а затем позволить конвейеру продолжить.

1 голос
/ 11 февраля 2020

Вы можете использовать еще один этап для утверждения между этапами TestDeploy и Deploy.

  1. Трубопровод останавливается, когда он достигает действия по утверждению. Если в конфигурацию действия был включен топон c ARN Amazon SNS, уведомление публикуется в топи c Amazon SNS, и сообщение доставляется всем подписчикам на топи c или подписанные конечные точки с ссылка для просмотра действия по утверждению в консоли.

  2. Утверждающий проверяет целевой URL-адрес и просматривает комментарии, если таковые имеются.

  3. Использование консоли , CLI или SDK, утверждающий предоставляет сводный комментарий и отправляет ответ:

    • Одобрено: выполнение конвейера возобновляется.
    • Отклонено: Состояние этапа изменено на «Сбой» и конвейерное выполнение не возобновляется.

Если в течение семи дней не было отправлено ответа, действие помечается как «Сбой».

...