В настоящее время я использую S3 и CloudFront для размещения статического приложения Angular.
Я хочу создавать версии приложения каждый раз, когда выполняю развертывание, чтобы обеспечить легкий откат (с помощью инструментов командной строки или автоматического конвейера).
Моя корзина S3 будет выглядеть примерно так:
/production/v1.2
/production/v1.3
/production/v1.4
Следующее развертывание будет в папке /production/v1.5 и т. Д.
Я хочу использовать эту стратегию, чтобы в случае отката я просто указывал веб-сайт для загрузки со старой версии /production/v1.4.
- Мое первое решение для этого - обновить исходный путь к конфигурации CloudFront, указав новую папку, например
/production/v1.4
- В случае отката я просто обновляю исходный путь конфигурации CloudFront до
/production/v1.3
Второе решение, вместо этого я думал о том, чтобы иметь папку live / и иметь путь к CloudFront Origin, указывающий на папку live / index.html в S3, и копировать туда последнюю версию моего приложения или копировать версию отката каждый раз, не меняя CloudFront Origin Path:
/production/v1.2
/production/v1.3
/production/v1.4
/production/live
- Развернуть новую версию в
/production/v1.4
и /production/live
- В случае отката просто скопируйте
/production/v1.3
в /production/live
Учитывая, что не так просто обновить настройки распространения CloudFront с помощью недействительных записей cli и cache:
Что вы рекомендуете? Есть ли лучший способ справиться с такой ситуацией?