Страницы

Поиск по вопросам

понедельник, 29 октября 2018 г.

Настройка CI/CD для публикации приложения в Azure

Хочу использовать Visual Studio Team Services для сборки и публикации своего ASP.NET приложения в Azure Web Application. Раньше публиковал с помощью Web Deploy в Visual Studio, и там мой профиль публикации содержал следующие данные:
Строка подключение к базе SQL Azure Параметры для включения аутентификации в Azure AD
Теперь же, когда публикация происходит с помощью CI/CD конвейера, эти параметры не подставляются и приложение публикуется в облако со строкой подключения и параметрами, которые были на локальной машине.
Вопрос: есть ли способ внести в Build Definition эти настройки? Импортировать профиль публикации при развертывании или еще какие-либо способы корректно развернуть приложение в облаке?


Ответ

Если вы публикуете приложение именно как Azure Web Application, то вам не нужно править конфиги на стадии билда.
Вынесите настройки в web.config, в стандартные секции ConnectionStrings и AppSettings. Они должны быть там по умолчанию, но вдруг вы храните из где-то в другом месте. В портале Azure, в секции Application settings для своего приложения - задайте реальные значения для своего приложения.

Значения из Application settings применяются поверх того, что вписано в web.config, так что вам вообще ничего не придется заменять в процессе сборки и публикации релиза.
Официальная документация по настройкам: Configure web apps in Azure App Service
App settings:
For .NET apps, these settings are injected into your .NET configuration AppSettings at runtime, overriding existing settings.
Connection strings:
For .NET apps, these connection strings are injected into your .NET configuration connectionStrings settings at runtime, overriding existing entries where the key equals the linked database name.

Кстати, Azure Web Sites умеют автопубликацию из GIT / VSTS, со встроенной поддержкой основных типов студийных проектов, так что может быть вам вообще не нужны билды в VSTS :)

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

Отправить комментарий