Я развертываю задачу ECS Fargate с двумя контейнерами: 1 обратный прокси-сервер nginx и 1 сервер python. Для каждого из них у меня есть репозиторий ECR, и у меня есть CIP / CD CodePipeline, настроенный с
CodeCommit -> CodeBuild -> CodeDeploy
Этот поток отлично работает для простых изменений кода. Но что, если я хочу добавить другой контейнер? Я, конечно, могу обновить свой buildspec.yml
, чтобы добавить сборку контейнера, но мне также необходимо 1) обновить определение задачи и 2) назначить это определение задачи моей службе.
Вопросы:
1) Если я использую CLI на своем этапе CodeBuild, чтобы создать новое определение задачи и связать его с моей службой, не вызовет ли это развертывание? И тогда мой CodeDeploy попытается развернуть снова, поэтому я закончу развертывание дважды?
2) Этот подход в конечном итоге создаст новое определение задачи и обновит службу при каждом отдельном развертывании. Это плохо? Должен ли я иметь какую-то логику, чтобы вытащить последнюю версию задачи и отличить JSON от версии CodeCommit и обновлять только при наличии разницы?
Спасибо!