如何通过PowerShell/Bash脚本将JSON配置导入Azure WebApp应用设置
Azure WebApp/Functions 配置自动同步脚本方案
前置要求
- 已完成Azure账号身份验证:PowerShell环境执行
Connect-AzAccount登录,Bash环境执行az login登录 - 已切换到对应资源所在的Azure订阅
- 配置文件为标准键值对格式JSON,示例如下:
{ "DatabaseConnection": "your_connection_string", "Api_Key": "your_api_key", "WEBJOBS_IDLE_TIMEOUT": "300", "FUNCTIONS_WORKER_RUNTIME": "dotnet" }
PowerShell 实现脚本
额外依赖
需提前安装Azure PowerShell Az模块:Install-Module -Name Az -AllowClobber -Scope CurrentUser
脚本内容
# 自定义参数配置 $resourceGroup = "替换为实际资源组名称" $targetWebAppName = "替换为目标WebApp/Functions应用名称" $jsonConfigPath = "替换为本地JSON配置文件完整路径" # 读取本地JSON配置 $configHash = Get-Content $jsonConfigPath | ConvertFrom-Json -AsHashtable # 获取目标应用现有配置,避免覆盖未在JSON中定义的配置项 $existingApp = Get-AzWebApp -ResourceGroupName $resourceGroup -Name $targetWebAppName $mergedSettings = @{} foreach ($item in $existingApp.SiteConfig.AppSettings) { $mergedSettings[$item.Name] = $item.Value } # 合并JSON配置,重名键以JSON中定义的值为准 foreach ($key in $configHash.Keys) { $mergedSettings[$key] = $configHash[$key] } # 格式转换后提交更新 $settingsArray = $mergedSettings.GetEnumerator() | ForEach-Object { @{Name = $_.Key; Value = $_.Value } } Set-AzWebApp -ResourceGroupName $resourceGroup -Name $targetWebAppName -AppSettings $settingsArray Write-Host "✅ 配置已成功同步到目标应用"
Bash 实现脚本
额外依赖
- 已安装Azure CLI
- 已安装JSON解析工具
jq:多数Linux发行版可直接通过apt install jq/yum install jq安装,macOS可通过brew install jq安装
脚本内容
#!/bin/bash # 自定义参数配置 RESOURCE_GROUP="替换为实际资源组名称" TARGET_WEBAPP="替换为目标WebApp/Functions应用名称" JSON_CONFIG_PATH="替换为本地JSON配置文件路径" # 解析JSON生成配置参数 CONFIG_PAIRS=$(jq -r 'to_entries|map("\(.key)=\(.value|@sh)")|join(" ")' "$JSON_CONFIG_PATH") # 提交配置更新,自动合并现有配置,重名键以JSON值为准 az webapp config appsettings set \ --resource-group "$RESOURCE_GROUP" \ --name "$TARGET_WEBAPP" \ --settings $CONFIG_PAIRS > /dev/null echo "✅ 配置已成功同步到目标应用"
补充说明
- 脚本同时适用于WebApp和Functions应用,两类资源的应用设置管理接口完全一致
- WebJobs的相关配置本身存储在所属WebApp的应用设置中,无需额外调整脚本即可同步
- 若不需要保留原有配置,直接全量覆盖为JSON中的配置项,删除PowerShell中读取合并现有配置的逻辑即可,Bash脚本可额外添加
--no-inherit参数实现全量覆盖
内容的提问来源于stack exchange,提问作者shahzadsystems
相关产品推荐
相关产品推荐

