Вы можете выполнить преобразование XML в файл ApplicationParameter, чтобы обновить значения в нем перед его развертыванием.
Другой вариант - использовать Powershell для обновления приложения и передачи параметров в качестве аргумента скрипту.
Команда Start-ServiceFabricApplicationUpgrade
принимает в качестве параметра хеш-таблицу спараметры, технически встроенная задача в VSTS \ DevOps преобразует параметры приложения в хеш-таблицу, сценарий будет выглядеть примерно так:
#Get the existing parameters
$app = Get-ServiceFabricApplication -ApplicationName "fabric:/AzureFilesVolumePlugin"
#Create a temp hashtable and populate with existing values
$parameters = @{ }
$app.ApplicationParameters | ForEach-Object { $parameters.Add($_.Name, $_.Value) }
#Replace the desired parameters
$parameters["test"] = "123test" #Here you would replace with your variable, like $env:username
#Upgrade the application
Start-ServiceFabricApplicationUpgrade -ApplicationName "fabric:/AzureFilesVolumePlugin" -ApplicationParameter $parameters -ApplicationTypeVersion "6.4.617.9590" -UnmonitoredAuto
Имейте в виду, что существующая задача VSTS также имеет другие операции, такие какскопируйте пакет в SF и зарегистрируйте версию приложения в хранилище изображений, вам нужно будет скопировать его.Вы можете скопировать полный сценарий из файла Deploy-FabricApplication.ps1
в проекте сервисной фабрики и заменить его своими изменениями.Другой подход - получить исходный текст для задачи VSTS здесь и добавить свои изменения.
Если вы планируете использовать KeyVault, я бы порекомендовал приложению обращаться к значениям непосредственно в KeyVault вместопередавая его SF, вы можете изменить значения в KeyVault без повторного развертывания приложения.При развертывании вы только передаете учетные данные KeyVault \ configuration.