回滚 Google App Engine 托管虚拟机

Rollback Google App Engine Managed VM

我更新了托管 VM 代码并将其部署到当前部署中。然后我删除了旧的部署。

我的新部署有一个bug,但是因为我删除了旧部署,所以我无法回到旧版本!

如何在不重做所有内容的情况下恢复旧部署?我想尽量减少停机时间。

我强烈建议始终至少使用一个以前的版本 运行,这样您就可以在出现问题时立即切换回来。

但是,由于保存了 Container 镜像,您可以使用此技巧回滚:

假设您的第一个部署版本为 'v1',第二个部署版本为 'v2'

  1. gcloud preview app deploy app.yaml --promote --version v1
  2. 进行一些代码更改
  3. gcloud preview app deploy app.yaml --promote --version v2
  4. 出于某种原因在控制台中删除 v1
  5. 哦不! v2有一个错误!用户很生气!
  6. 哦不!我删除了 v1,但无法在零停机时间的情况下立即切换回它!
  7. gcloud preview app deploy app.yaml --promote --version v1 --image-url appengine.gcr.io/vm-containers.<your-project-id>.appspot.com/<your-project-id>.default.v1
  8. 2-4 分钟的停机时间
  9. 应用程序在版本 v1 中再次开始工作