PowerShell中如何遍历JSON实现Azure WebApp配置批量自动化设置?
PowerShell实现方案
与Python逻辑对等的实现
完全对齐你写的Python遍历逻辑,直接生成目标格式的az命令:
# 解析JSON内容 $Json = @' { "key1": "value1", "key2": "value2", "key3": "value3", "key4": "value4" } '@ | ConvertFrom-Json # 遍历键值对输出命令 foreach ($prop in $Json.PSObject.Properties) { $key = $prop.Name $value = $prop.Value Write-Output "az webapp config appsettings set -g resourceGroup -n appName --settings $key=`"$value`"" }
执行后输出效果和你预期的完全一致。
更适合Azure Pipelines的简化方案
实际在流水线中使用不需要循环调用多次az命令,--settings参数支持一次性传入多组键值对,单次调用即可完成所有配置更新,执行效率更高:
$Json = @' { "key1": "value1", "key2": "value2", "key3": "value3", "key4": "value4" } '@ | ConvertFrom-Json # 拼接所有配置参数 $settingParams = $Json.PSObject.Properties | ForEach-Object { "$($_.Name)=`"$($_.Value)`"" } # 直接执行配置更新命令 az webapp config appsettings set -g resourceGroup -n appName --settings $settingParams
原有代码的问题说明
你之前写的ForEach-Object -InputObject $Json只会把整个JSON转换后的对象作为单个输入项处理,不会自动遍历它的属性,所以拿不到单独的键值对,改为遍历PSObject.Properties集合即可。
内容的提问来源于stack exchange,提问作者Bodruch
相关产品推荐
相关产品推荐

