Я добавляю некоторые настройки приложения для приложения-функции в YAML:
steps:
- download: current
displayName: Download app artifact
artifact: app
- task: AzureAppServiceSettings@1
displayName: Azure App Service Settings
inputs:
azureSubscription: ssubscription
appName: appname
appSettings: |
[
{
"name": "VarOne",
"value": "$(VAR_ONE)",
"slotSetting": false
},
{
"name": "VarTwo",
"value": "$(VAR_TWO)",
"slotSetting": false
},
{
"name": "VarThree",
"value": "$(VAR_THREE)",
"slotSetting": false
}
]
Можно ли предоставить файл шаблона JSON для настроек приложения? Что-то вроде:
appSettings: templates\appSettings.json
Вы не можете использовать файл, содержащий AppSettings, при использовании задачи AzureAppServiceSettings@1
.
Вместо этого рассмотрите возможность использования задачи script
и запуска команды az webapp config appsettings set
, как указано в разделе Массовое изменение настроек приложения:
az webapp config appsettings set \
--resource-group <group-name> \
--name <app-name> \
--settings "@fileName.json"
Формат файла:
[
{
"name": "key1",
"slotSetting": false,
"value": "value1"
},
{
"name": "key2",
"value": "value2"
}
]
Для удобства вы можете сохранить существующие настройки в файл JSON с помощью az webapp config appsettings list
. Следующий пример можно запустить в Bash:
# Save the settings
az webapp config appsettings list --name <app-name> --resource-group <group-name> > settings.json
# Edit the JSON file
...
# Update the app with the JSON file
az webapp config appsettings set --resource-group <group-name> --name <app-name> --settings @settings.json
Можно ли предоставить файл шаблона JSON для настроек приложения?
В соответствии с входными данными задачи Параметры службы приложений Azure v1, входные данные appSettings
представляют собой строку, поэтому мы не можем использовать файл json шаблона для поля appsettings
.
Однако вы можете использовать шаблоны шагов с параметрами, чтобы использовать шаблон appSettings.yml
. Таким образом, вам нужно будет изменить шаблон appSettings.yml
только тогда, когда вы захотите обновить appSettings
.
шаблоны/appSettings.yml:
parameters:
- name: appSettings
type: object
default:
[
{
"name": "key1",
"value": "value111",
"slotSetting": false
},
{
"name": "key2",
"value": "value222",
"slotSetting": true
}
]
steps:
- task: AzureAppServiceSettings@1
displayName: Azure App Service Settings
inputs:
azureSubscription: 'subscription'
appName: 'appname'
resourceGroupName: 'GroupName'
appSettings: '${{ convertToJson(parameters.appSettings) }}'
основной YAML-файл:
trigger:
- none
pool:
vmImage: windows-latest
steps:
- other steps
- template: templates/appSettings.yml # Template reference
- other steps
Если ваш файл appSettings.json
взят из Download app artifact task
, описанное выше может не сработать. В этом случае вы можете использовать способ, указанный в ответе Руи, то есть использовать задачу AzureCLI с командой az webapp config appsettings set
.
Пример YAML:
trigger:
- none
pool:
vmImage: windows-latest
steps:
- download: current
displayName: Download app artifact
artifact: app
- task: AzureCLI@2
inputs:
azureSubscription: 'subscription'
scriptType: 'batch'
scriptLocation: 'inlineScript'
inlineScript: |
az webapp config appsettings set --resource-group groupname --name appname --settings "@templates/appSettings.json"
шаблонное решение оказалось наиболее эффективным :). Только пошел по маршруту файла json, так как не думал, что это возможно.