Azure slots: Могу ли я поменять местами только настройки приложения / строки подключения?

#azure #azure-devops

#azure #azure-devops

Вопрос:

Есть ли способ, которым мы можем поменять местами только настройки приложения / строки подключения, но не код с Azure App Service slot помощью azure DevOps pipeline или Azure CLI ?

Ответ №1:

Мы пытаемся получить connectionstring непосредственно из слота и поменять его на prod, но не code.

Насколько я знаю, вы можете использовать Azure CLI для достижения этой цели.

Настройки приложений: настройки приложений az webapp config

Строка подключения: строка подключения конфигурации веб-приложения az

Вы могли бы использовать Azure CLI для перечисления appsettings / connectionstring. Затем вы можете использовать команду set для передачи значений в слот.

Вот мой пример (в задаче Azure Devops Azure CLI):

 $appsettings=az webapp config appsettings list --name webappname -g  ResourcesGroupName   --slot  slotname

$appsettings| Out-File "$(System.DefaultWorkingDirectory)appsettings.json" 

az webapp config appsettings set -g ResourcesGroupName   -n webappname  --settings -slot slotname "@$(System.DefaultWorkingDirectory)appsettings.json"

$connectstring=az webapp config connection-string list --name webappname -g  ResourcesGroupName   --slot  slotname

$test = $connectstring | ConvertFrom-Json


$test | Select-Object -Property Name,slotSetting ,type,Value | ForEach-Object {
    Write-Host $_.Name $_.Value 
    $msg =   $_.Name , $_.Value   -join '='
    echo    $msg 

    az webapp config connection-string set --name webappname -g  ResourcesGroupName   -slot slotname -t mysql --settings  $msg 

}
 

Примечание: Вот известная проблема, связанная с набором строк подключения az webapp config. На данный момент он не может поддерживать установку файлов в параметре настроек.

Ответ №2:

Вы можете попробовать это,

Шаг 1: Создайте две отдельные среды в выпуске в соответствии с вашими потребностями!

Шаг 2. Создайте переменную с тем же именем, что и имя вашей строки подключения в вашем web.config, одна из которых предназначена для промежуточной среды, а другая — для рабочей.

Шаг 3. Добавьте задачу развертывания службы приложений Azure в каждую среду.

Затем вы можете использовать параметры преобразования и замены файлов и отметить, чтобы выполнить преобразование. Взгляните на преобразование XML и преобразование JSON

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

1. Привет, Саджитаран, на самом деле мы пытаемся добиться уникального случая, когда это было бы невозможно. Мы пытаемся получить connectionstring непосредственно из слота и поменять его на prod, но не code.