目前我正在使用S3和CloudFront来托管静态角色应用程序 .

我想在每次进行部署时对应用程序进行版本控制,以确保轻松回滚(通过我的命令行工具或自动管道) .

我的S3桶看起来像这样:

/production/v1.2
/production/v1.3
/production/v1.4

下一步部署将在/production/v1.5文件夹中,依此类推 .

我想使用这个策略,以便在回滚的情况下我只是指向从旧版本/production/v1.4加载的网站 .

  • 我的第一个解决方案是更新CloudFront配置Origin Path以指向新文件夹,例如 /production/v1.4

  • 如果是回滚,我只需将CloudFront配置源路径更新为 /production/v1.3


第二个解决方案,我想有一个实时/文件夹,并有一个CloudFront Origin Path指向S3中的live / index.html文件夹,并复制我的应用程序的最新版本或每次复制回滚版本而不更改CloudFront Origin Path :

/production/v1.2
/production/v1.3
/production/v1.4
/production/live
  • /production/v1.4/production/live 中部署新版本

  • 如果是回滚,只需将 /production/v1.3 复制到 /production/live

考虑到通过cli和缓存失效更新CloudFront distrubution设置并不容易:

您有什么推荐的吗?有没有更好的方法来处理这种情况?