使用 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 秘密任务将它们读入变量。