如何通过Azure Cloud Shell列出所有Function apps和App Services的环境变量
在Azure Cloud Shell中批量导出App Service/Function App的环境变量
方法一:使用PowerShell
- 先切换到目标订阅(多订阅场景下):
Select-AzSubscription -SubscriptionName "你的订阅名称"
- 运行以下脚本,批量获取所有App Service/Function App的应用设置和连接字符串,输出结构化列表:
# 获取所有Web应用(包含Function App) $webApps = Get-AzWebApp # 遍历每个应用提取配置 foreach ($app in $webApps) { Write-Host "=== 服务名称: $($app.Name) ===" -ForegroundColor Cyan # 输出应用设置 Write-Host "--- 应用设置 ---" -ForegroundColor Yellow $app.SiteConfig.AppSettings | ForEach-Object { Write-Host "名称: $($_.Name) | 值: $($_.Value)" } # 输出连接字符串 Write-Host "--- 连接字符串 ---" -ForegroundColor Yellow $app.SiteConfig.ConnectionStrings | ForEach-Object { Write-Host "名称: $($_.Name) | 值: $($_.ConnectionString) | 类型: $($_.Type)" } Write-Host "`n" }
如果需要导出到CSV文件方便后续检查,可使用以下脚本:
$results = @() foreach ($app in $webApps) { # 收集应用设置 foreach ($setting in $app.SiteConfig.AppSettings) { $results += [PSCustomObject]@{ 服务名称 = $app.Name 资源组 = $app.ResourceGroup 配置类型 = "应用设置" 名称 = $setting.Name 值 = $setting.Value } } # 收集连接字符串 foreach ($cs in $app.SiteConfig.ConnectionStrings) { $results += [PSCustomObject]@{ 服务名称 = $app.Name 资源组 = $app.ResourceGroup 配置类型 = "连接字符串" 名称 = $cs.Name 值 = $cs.ConnectionString 类型 = $cs.Type } } } $results | Export-Csv -Path "所有服务环境变量.csv" -NoTypeInformation -Encoding UTF8
方法二:使用Bash(Azure CLI)
- 切换到目标订阅(多订阅场景下):
az account set --subscription "你的订阅名称"
- 运行以下脚本批量获取并输出所有服务的配置:
# 获取所有Web应用ID列表 webapp_ids=$(az webapp list --query "[].id" -o tsv) # 遍历每个应用 for id in $webapp_ids; do app_name=$(echo $id | awk -F '/' '{print $9}') echo "=== 服务名称: $app_name ===" # 输出应用设置 echo "--- 应用设置 ---" az webapp config appsettings list --ids $id --query "[].{Name:name, Value:value}" -o table # 输出连接字符串 echo "--- 连接字符串 ---" az webapp config connection-string list --ids $id --query "[].{Name:name, Value:connectionString, Type:type}" -o table echo -e "\n" done
若要导出到CSV文件,可使用以下脚本:
echo "服务名称,配置类型,名称,值,类型" > 所有服务环境变量.csv webapp_ids=$(az webapp list --query "[].id" -o tsv) for id in $webapp_ids; do app_name=$(echo $id | awk -F '/' '{print $9}') # 导出应用设置 az webapp config appsettings list --ids $id --query "[].\"$app_name\",'应用设置',name,value,''" -o tsv | awk -F '\t' '{print $1","$2","$3","$4","$5}' >> 所有服务环境变量.csv # 导出连接字符串 az webapp config connection-string list --ids $id --query "[].\"$app_name\",'连接字符串',name,connectionString,type" -o tsv | awk -F '\t' '{print $1","$2","$3","$4","$5}' >> 所有服务环境变量.csv done
注意事项
- 确保Cloud Shell中已安装最新版本的Az模块(PowerShell)或Azure CLI
- 部分敏感配置值会被自动掩码,如需查看完整值可检查导出的CSV文件
- 若只需处理特定资源组的服务,可在获取应用列表时添加
-ResourceGroupName(PowerShell)或--resource-group(Bash)参数过滤
内容的提问来源于stack exchange,提问作者Henrik
相关产品推荐
相关产品推荐

