Azure应用程序服务部署-无法覆盖appsettings.json

Azure应用程序服务部署-无法覆盖appsettings.json,azure,azure-devops,azure-web-app-service,appsettings,Azure,Azure Devops,Azure Web App Service,Appsettings,我的管道中有一个Azure应用程序服务部署任务,用于将我的Web Api核心应用程序部署到Azure应用程序服务。该任务具有以下yaml- - task: AzureRmWebAppDeployment@4 inputs: ConnectionType: 'AzureRM' azureSubscription: 'myserviceconnection' appType: 'webAppLinux' WebAppName: 'mytestwebapp'

我的管道中有一个Azure应用程序服务部署任务,用于将我的Web Api核心应用程序部署到Azure应用程序服务。该任务具有以下yaml-

- task: AzureRmWebAppDeployment@4
  inputs:
    ConnectionType: 'AzureRM'
    azureSubscription: 'myserviceconnection'
    appType: 'webAppLinux'
    WebAppName: 'mytestwebapp'
    packageForLinux: '$(Build.ArtifactStagingDirectory)/**/*.zip'
    AppSettings: 'TestWebApp/TestWebApp/appsettings.json'
我一直在关注如何更新
.json
文件中的设置。据我所知,我必须在管道中创建一个与我需要更新的键匹配的变量。假设我的appsettings.Json中有以下Json结构-

假设我必须将
key1
更新为
somenewvalue1
key2.key3
更新为
someothervalue3
,依此类推。因此,我通过点击管道上的variables按钮创建了新变量,并将
Key1
key2.key3
添加为具有适当值的变量(作为旁注,该值是一个常量字符串,但我希望它是管道中另一个任务提供的动态值)。此外,我还提供了appsetting文件的路径,如下图所示-

但是,当我运行管道时,我得到以下错误-

错误:BadRequest-参数名称不能为空。(代码:400)

我遇到了这个问题,并在azure portal上创建了应用程序设置,但这也不起作用

我做错了什么

作为一个附带问题,如第一幅图所示,文件转换和变量替换选项应用程序和配置设置之间有什么区别,以及何时使用什么

编辑

根据评论,我能够解决问题,因此没有更多的错误,并且我能够在azure门户中验证更新的设置

但是,当我在浏览目录下的站点wwwroot文件夹中看到来自Kudu的appsetting.json时,我看不到它被更新。为什么这些值不同?如果不同,实际考虑的是哪个值


谢谢

,所以人们似乎希望JSON包含设置,而不是文件路径

至于未更新的设置文件,这是意料之中的。 这将更新应用程序服务的“配置”选项卡中的设置,这些设置将作为环境变量传递给应用程序。 它不会更新文件。 相反,它设置的设置会覆盖文件中的设置(至少在默认情况下,如果您使用默认宿主生成器)。
它将仅覆盖您指定的设置

因此,人们似乎希望JSON包含设置,而不是文件路径

至于未更新的设置文件,这是意料之中的。 这将更新应用程序服务的“配置”选项卡中的设置,这些设置将作为环境变量传递给应用程序。 它不会更新文件。 相反,它设置的设置会覆盖文件中的设置(至少在默认情况下,如果您使用默认宿主生成器)。
它将仅覆盖您指定的设置

我以前没有尝试过使用任务的这一部分(我们使用ARM模板),但它似乎希望该框中包含JSON内容,而不是文件路径。@juunas-我明白你的意思,但在这种情况下,它需要整个JSON还是只需要更新的JSON。@juunas-你的评论让我尝试了一下,它成功了。然而,由于这个链接,我感到困惑,我以前没有尝试过使用这部分任务(我们使用ARM模板),但它看起来似乎希望该框中包含JSON内容,而不是文件路径。@juunas-我明白你的意思,但是在这种情况下,它需要整个json还是只需要更新的json。@juunas-你的评论让我尝试了一下,它成功了。然而,由于这个链接,我感到困惑,因为我预计文件实际上会更改,否则我无法想象访问.Net Core中的应用程序设置将如何连接到环境变量而不是实际文件中的环境变量。非常感谢:-)我预计文件实际上会更改,否则,我无法想象访问.Net Core中的应用程序设置将如何连接到环境变量,而不是实际文件中的环境变量。非常感谢:-)
{
  "AllowedHosts": "*",
  "ServiceConfiguration": {
    "Key1": "value1",
    "Key2": {
      "Key3": "value3",
      "Key4": "value4"
    }
  }
}