我正在考虑迁移 Cloud Run,但我想知道创建新修订时的启动时间。基本上,当云运行修订版启动时,我想运行数据库迁移,众所周知这可能需要一段时间。
我知道 Cloud Run 会一直等到容器准备好开始提供流量,但它等待它准备好多久?
我搜索了文档,但没有真正找到任何东西。
数据库托管在 CloudSQL 中
问候, 尼古拉斯
答案 0 :(得分:0)
你不能开箱即用地实现你想要的,你需要一些工程。事实上,你的容器是不可变的,这意味着运行它 1 次或 1000 次,执行相同的执行。所以,如果你在启动时设置了迁移脚本,这个脚本每次都会播放。
您可以想象将当前架构版本存储在您的数据库中。当 Cloud Run 实例与您的容器一起启动时,启动会检查架构版本,如果不相等,则应用迁移脚本并更新架构版本。
但是在每个实例启动时,都会执行与数据库的连接 + 版本检查。
另一种解决方案是定义一个路径来启动迁移脚本 /migration
。在部署后立即调用它以应用迁移。这一次,没有冷启动影响,但即使在迁移后仍然可以访问。
或者您可以混合使用这两种方法,检查模式版本的数据库 + 应用迁移的路径。