【问题标题】:Azure app settings task in Azure pipeline throws invalid JSON error when supplying with variableAzure 管道中的 Azure 应用程序设置任务在提供变量时引发无效 JSON 错误
【发布时间】:2022-08-24 19:58:48
【问题描述】:

尝试使用 Azure Pipeline 的 Azure 应用程序设置任务更新 Azure 配置,如下所述:https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/deploy/azure-app-service-settings?view=azure-devops

该链接有一个 appsettings 示例,

appSettings: |
      [
        {
          \"name\": \"APPINSIGHTS_INSTRUMENTATIONKEY\",
          \"value\": \"$(Key)\",
          \"slotSetting\": false
        },
        {
          \"name\": \"MYSQL_DATABASE_NAME\",
          \"value\": \"$(DB_Name)\", 
          \"slotSetting\": false
        }
      ]

但是,当我们尝试使用这样的变量提供相同的值时,

  - task: AzureAppServiceSettings@1
    displayName: Azure App Service Settings
    inputs:
        azureSubscription: $(subscriptionName)
        appName: $(appServiceName)  
        resourceGroupName: $(resourceGroupName)       
        appSettings: $env:azureConfigurationSettings

我们收到错误

##[error]Error: Application Settings object is not a valid JSON.

我已经通过 JSON 验证器验证了 $env:azureConfigurationSettings 是正确的 JSON,并且它成功解析了 JSON.Parse(theActualValue)。 当我们将变量的实际值作为硬编码字符串时,没有错误并且配置得到更新。

需要帮助确定,

  1. 如果此 Azure appsettings 任务支持提供变量,如果支持,正确的语法是什么。该变量来自 Powershell 脚本。

    我查看了源代码

    https://github.com/microsoft/azure-pipelines-tasks/blob/master/Tasks/AzureAppServiceSettingsV1/azurewebappsettings.ts

    从逻辑上讲,我认为它应该起作用。

  • 你好,你找到解决这个问题的方法了吗?

标签: azure-devops continuous-integration azure-pipelines devops azure-configuration


【解决方案1】:

我终于弄明白了。您需要将 $env:azureConfigurationSettings 的内容作为一行(没有换行符的 JSON),然后它对我有用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-16
    • 1970-01-01
    • 2019-09-28
    • 1970-01-01
    • 1970-01-01
    • 2022-06-10
    • 2022-11-27
    相关资源
    最近更新 更多