我有一个Azure应用程序服务部署任务,用于将我的Web应用程序部署到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结构-
{
"AllowedHosts": "*",
"ServiceConfiguration": {
"Key1": "value1",
"Key2": {
"Key3": "value3",
"Key4": "value4"
}
}
}假设我必须将key1更新为somenewvalue1,将key2.key3更新为someothervalue3,依此类推。因此,我按下管道上的变量按钮创建了新变量,并将Key1和key2.key3添加为具有适当值的变量(附带说明,该值是一个常量字符串,但我希望它是一个动态值,它将由管道中的另一个任务提供)。此外,我还提供了追加文件的路径,如下图所示-

但是,当我运行管道时,我会发现以下错误-

Error: BadRequest - Parameter name cannot be empty. (CODE: 400)
我偶然发现了这个所以问题,并在蔚蓝门户上创建了应用程序设置,但这也不起作用。
我在这里做错什么了。
另一个问题是,如第一个图像所示,文件转换和变量替换选项与Application和Configuration Settings之间的区别是什么,以及何时使用什么。
编辑
基于评论,我能够解决问题,所以没有更多的错误,我能够验证更新的设置在蔚蓝门户。
然而,当我在浏览目录下的网站www.root文件夹中看到Kudu的appsetting.json时,我无法看到它被更新。为什么这些估值者是不同的,如果是的话,实际考虑的是哪个值。
谢谢
发布于 2020-03-26 09:50:20
因此,似乎需要包含设置的JSON,而不是文件路径。
至于没有更新的设置文件,这是预期的。这是更新App的Configuration选项卡中的设置,它将作为环境变量传递给您的应用程序。它不会更新文件。相反,它设置了覆盖文件中设置的设置(至少在默认情况下,如果您是默认的主机生成器)。它将只覆盖您指定的设置。
https://stackoverflow.com/questions/60862421
复制相似问题