我的应用程序的代码库是用Django编写的,而部署管道是在AWS中的。 结合使用AWS的代码管道和以下代码:代码部署和代码构建服务。
问题是在运行数据库迁移时,由于其他EC2 / ECS2服务/容器在迁移时仍在运行,因此会弹出死锁。
如何停止所有ECS容器并阻止它们启动,直到迁移完成?
一种解决方案是在迁移步骤之前在代码管道中创建另一个步骤,并使用aws-cli将每个ECS服务的任务数设置为0,然后以某种方式等待所有任务停止。 之后,运行迁移并更改回ECS服务。
是否有比使用aws-cli和创建自定义脚本更好,更轻松的解决方案?
部署管道应首先停止所有其他服务,运行迁移,然后启动所有服务。在这种情况下,停机时间不是问题。