CDK поддерживает конструкции более высокого уровня для ECS, называемые «шаблонами ECS». Одним из них является ApplicationLoadBalancedFargateService , который позволяет определить службу ECS Fargate за балансировщиком нагрузки приложения. В этом случае обновляемое обновление поддерживается из коробки. Вы просто запускаете cdk deploy
с более новым Docker образом, и ECS позаботится о развертывании. Будет:
- Запустить новое задание с новым Docker образом.
- Дождаться нескольких успешных проверок работоспособности нового развертывания.
- Начать отправку нового переместите c к новой задаче, позволяя существующим соединениям изящно завершить sh для старой задачи.
- Как только все старые подключения выполнены, ECS автоматически остановит старую задачу.
Если ваша новая задача не запускается или не работает, ECS продолжит выполнение исходной задачи.
Что касается развертывания Blue-Green, я думаю, что еще не поддерживается в CloudFormation, Как только это будет сделано, это может быть реализовано в CDK. Если вы можете жить без BlueGreen как Ia C, вы можете определить свой CodeDeploy вручную.