【问题标题】:Deploy Appsettings for Azure function app using Azure Devops and Yaml and Variable group使用 Azure Devops 和 Yaml 和变量组为 Azure 函数应用部署 Appsettings
【发布时间】:2021-03-03 10:51:32
【问题描述】:

有没有办法使用 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 函数应用设置。

非常感谢任何回应。 提前致谢。

【问题讨论】:

  • 同意 WaitingForGuacamole,没有这种开箱即用的方法可以做到这一点。你可以试试下面的答案,这似乎是个好主意。

标签: azure azure-devops yaml azure-function-app


【解决方案1】:

我不相信您可以直接在 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 中并使用密钥保管库机密任务将它们读入变量。

【讨论】:

  • 我正在尝试运行上述自定义任务,但我收到以下错误“在此上下文中不允许映射值”知道脚本的哪一部分导致了这种情况吗?
猜你喜欢
  • 2020-05-08
  • 2021-04-23
  • 2019-08-12
  • 2020-05-16
  • 2021-07-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多