Процесс развертывания AWS CodePipeline - PullRequest
0 голосов
/ 11 апреля 2019

Я строю CI-конвейер с AWS CodePipeline.Я использую CodeBuild для извлечения моего кода из репозитория, создания образа докера и отправки изображения в ECR.Источником для моей CodePipeline является мое репозиторий ECR, которое запускается при обновлении изображения.

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

Является ли CodeDeploy подходящим инструментом для развертывания образа ECR в экземпляре EC2 для этого варианта использования?Из документации видно, что для развертывания CodeDeploy требуется уже работающий экземпляр.Мне нужно создать его на лету, прежде чем CodeDeploy инициируется.Должен ли я добавить шаг в CodePipeline для запуска лямбда-выражения, которое создает экземпляр до запуска CodeDeploy?

Любое руководство будет высоко ценится!

1 Ответ

0 голосов
/ 19 апреля 2019

CloudTrail поддерживает запись события PutImage, которое вы можете использовать для работы с конвейером.Я предпочитаю создавать артефакты после определенных шагов в вашем конвейере сборки, а затем иметь лямбда-функцию, которая реагирует на событие object created.Ваша лямбда-функция может затем сделать необходимые вызовы для ускорения работы экземпляров ec2.Затем ваш экземпляр может запустить задание, а затем снова вызвать лямбду, что может привести к его срыву.Похоже, вам нужен работник по требованию.Такие сервисы, как AWS Batch или ECS, могут предоставить вам эту функцию «из коробки».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...