使用 Azure Devops 和 Yaml 和变量组为 Azure 函数应用部署 Appsettings
Deploy Appsettings for Azure function app using Azure Devops and Yaml and Variable group
有没有办法使用 Yaml 将完整的 variable group variables
部署到 Azure Function app settings
。
下面是 yaml 代码以及我如何部署变量:-
variables:
- group: MyDevVariable #This is my variable group name
#Place where I am referring my variables from variable groups
deploy:
steps:
-task: AzureFunctionApp@1
inputs:
appSetting: '-Key1 $(Key1) -Key2 $(Key2)' #Key1 and Key2 are stored in variable group.
但是如果我有很多变量,我必须将 appSettings
中的每个变量都提到为 key $(key)
。
那么有没有办法将我的所有变量从变量组部署到 azure 函数应用程序设置。
非常感谢任何回复。
提前致谢。
我不相信你可以直接在 YAML 中迭代组的变量。从我所看到的情况来看,没有任何语法可以进入该组。你可以做的是编写一个脚本,从组中获取变量(如果你在代理上安装了 Azure CLI),然后稍后引用它:
deploy:
steps:
- task: AzureCLI@2
inputs:
name: GetSettings
azureSubscription: Your Service Connection
scriptType: ps
scriptLocation: inlineScript
inlineScript: |
$env:AZURE_DEVOPS_EXT_PAT = '$(System.AccessToken)'
$groupVars = (az pipelines variable-group list --group-name "My Group Name") | ConvertFrom-JSON
$settingsList = ""
$groupVars.variables.PSObject.Properties | ForEach-Object {
$settingsList += "-$($_.Name) `"$($_.Value.value)`" "
}
Write-Host "##vso[task.setvariable variable=settingsList;isOutput=true]$settingsList"
Write-Host "Using settings $settingsList"
- task: AzureFunctionApp@1
inputs:
appSetting: $(GetSettings.settingsList)
注意:这可能会遇到秘密变量的问题,在这种情况下,我会将它们存储在 Azure Key Vault 中,并使用 Key Vault 秘密任务将它们读入变量。
有没有办法使用 Yaml 将完整的 variable group variables
部署到 Azure Function app settings
。
下面是 yaml 代码以及我如何部署变量:-
variables:
- group: MyDevVariable #This is my variable group name
#Place where I am referring my variables from variable groups
deploy:
steps:
-task: AzureFunctionApp@1
inputs:
appSetting: '-Key1 $(Key1) -Key2 $(Key2)' #Key1 and Key2 are stored in variable group.
但是如果我有很多变量,我必须将 appSettings
中的每个变量都提到为 key $(key)
。
那么有没有办法将我的所有变量从变量组部署到 azure 函数应用程序设置。
非常感谢任何回复。 提前致谢。
我不相信你可以直接在 YAML 中迭代组的变量。从我所看到的情况来看,没有任何语法可以进入该组。你可以做的是编写一个脚本,从组中获取变量(如果你在代理上安装了 Azure CLI),然后稍后引用它:
deploy:
steps:
- task: AzureCLI@2
inputs:
name: GetSettings
azureSubscription: Your Service Connection
scriptType: ps
scriptLocation: inlineScript
inlineScript: |
$env:AZURE_DEVOPS_EXT_PAT = '$(System.AccessToken)'
$groupVars = (az pipelines variable-group list --group-name "My Group Name") | ConvertFrom-JSON
$settingsList = ""
$groupVars.variables.PSObject.Properties | ForEach-Object {
$settingsList += "-$($_.Name) `"$($_.Value.value)`" "
}
Write-Host "##vso[task.setvariable variable=settingsList;isOutput=true]$settingsList"
Write-Host "Using settings $settingsList"
- task: AzureFunctionApp@1
inputs:
appSetting: $(GetSettings.settingsList)
注意:这可能会遇到秘密变量的问题,在这种情况下,我会将它们存储在 Azure Key Vault 中,并使用 Key Vault 秘密任务将它们读入变量。