7

是否有一种简单的方法可以为给定资源组的每个应用服务计划中的每个 Web 应用导出所有 AppSettings?

我目前有大约 20 个应用程序在给定资源组的不同应用程序服务计划下运行,并且我正在创建 Azure 资源管理器 (ARM) 模板以轻松分配/释放资源,我发现“自动化脚本”功能非常有用,但它似乎没有导出我通过 Azure 门户中的 Webapp 的应用程序设置刀片添加的任何 AppSettings。

在此处输入图像描述

在此处输入图像描述

4

2 回答 2

11

您可以通过不同方式下载应用程序设置。很少有人使用 Kudu 控制台/资源浏览器/PowerShell。

要通过 Kudu 控制台访问该站点,请使用以下 URL。https://****.scm.azurewebsites.net/(输入您的网站名称而不是 ****)

转到应用程序设置 -> 下载

在此处输入图像描述

您还可以从 Azure 门户中提供的“资源浏览器”选项下载此内容。

转到 Web App -> 开发工具 -> 资源浏览器 -> 选择资源 -> 下载设置

下面的 PowerShell cmdlet 也将帮助您下载应用程序设置。

$app = Get-AzureRmWebApp -ResourceGroupName YourRGName -Name YourAppName
$app.SiteConfig.AppSettings
$app.SiteConfig.ConnectionStrings

有关如何将 PowerShell 用于 Web 应用程序的更多详细信息,请参阅:Azure PowerShell 示例

您还可以查看博客文章如何将 Azure WebApp 应用程序设置和配置字符串导出为 CSV

希望这可以帮助。

于 2017-10-24T02:54:12.703 回答
5

为了响应@Ashok 的帖子,我创建了一个 powershell 脚本,它循环遍历每个资源组的应用服务并将每个应用服务的应用设置导出到 CSV 文件。

$allWebApps = Get-AzureRmWebApp
$resourceGroups = $allWebApps | Select-Object 'ResourceGroup' -Unique
foreach($r in $resourceGroups)
{
    $rgName = $r.ResourceGroup    
    $webApps = Get-AzureRmWebApp -ResourceGroupName $rgName

    foreach($w in $webApps)
    {
        $webAppName = $w.Name        
        Write-Host Processing Webapp : $webAppName

        $webApp = Get-AzureRmWebApp -ResourceGroupName $rgName -Name $webAppName
        $appSettings = $webApp.SiteConfig.AppSettings

        # Extract AppSettings to CSV
        $appSettings.GetEnumerator() | 
                Sort-Object -Property Name -Descending |
                Select-Object -Property @{n='Key';e={$_.Name}},Value |
                Export-Csv -Path C:\Azure\$webAppName.csv -NoTypeInformation -Append

    }    
}

我希望有更好的方法来做到这一点。我可能只是补充一点,它已在Azure 的 Azure 资源管理器反馈论坛中(某种程度上)表达出来。如果有人觉得这是一个有用的功能,请在反馈中投票。

于 2017-10-24T15:55:17.413 回答