Управление версиями статических веб-сайтов Azure

#azure #azure-web-app-service #versioning #azure-static-web-app

#azure #azure-web-app-service #управление версиями #azure-static-web-app

Вопрос:

В рамках нашего конвейера выпуска мы развертываем Azure blob store (статические веб-сайты). Таким образом, каждый раз, когда запускается конвейер выпуска, он перезаписывает содержимое хранилища больших двоичных объектов новым созданным артефактом сборки, и мы видим последние изменения.

Для отладки и внутреннего тестирования у нас есть требование, согласно которому каждое развертывание вместо перезаписи существующего содержимого хранилища больших двоичных объектов создает версию.

Таким образом, если разработчик проверяет свои изменения в master и генерируется новый артефакт, он развертывается вhttps://abc.z22.web.core.windows.net/1 . В следующий раз, когда новое изменение возвращается в master, оно создает новую версию по адресу —https://abc.z22.web.core.windows.net/2 .

В хранилище больших двоичных объектов есть управление версиями, которое было добавлено недавно, но вам нужно вручную зайти в хранилище больших двоичных объектов и пометить версию как текущую.

Есть ли способ добиться этого? Любое другое предложение Azure, которое может помочь в этом?

Ответ №1:

ОК. Похоже, вы хотите, чтобы все версии были активны и доступны по разным URL. Я не думаю, что это возможно и с веб-приложениями Azure. Потенциально вы можете развернуть новый контейнер при отправке нового кода и запустить его на другом порту. Но вам придется выстроить логику ограничения количества контейнеров, поскольку вы не можете идти бесконечно. Довольно необычное требование. Или вы можете использовать слоты в веб-приложении для одновременного обслуживания нескольких версий, но их количество ограничено в зависимости от выбранного вами уровня.

Комментарии:

1. Пожалуйста, поправьте меня, если я ошибаюсь — когда я получаю номер последней версии из хранилища больших двоичных объектов, а затем увеличиваю его, как это помогает с управлением версиями фактического URL-адреса статического веб-сайта? Фактический URL-адрес жестко кодируется, когда мы включаем параметр статического веб-сайта в хранилище больших двоичных объектов. Мне нужен способ изменить версию этого URL.

2. Хорошо, это решено. Для будущих читателей — В итоге была создана динамическая структура папок на основе buildId, настроенного в конвейере Azure devops. Затем вместо создания статического веб-сайта для хранилища больших двоичных объектов Azure добавлена функция Azure, которая считывает данные с любого пути, который вы передаете. Итак, в хранилище больших двоичных объектов есть папки типа — $ web (имя контейнера) — 1400 — 1401 — 1402 И функция Azure может получить к нему доступ через abc.azurewebsites.net/1400/index.html Необходимо настроить функцию Azure для чтения большого двоичного объекта в зависимости от маршрута.

3. @Megatron Работает ли это также, например, с маршрутизацией React? Основное различие между предварительным просмотром хранилища больших двоичных объектов и статическими веб-приложениями Azure заключается в том, что оно позволяет настраивать маршрутизацию и пути, которые недоступны при предварительном просмотре приложения в хранилище больших двоичных объектов. Если это работает с путями, не могли бы вы подробнее рассказать о том, как вы это сделали?