轻松导出Azure Web App的AppSettings?

Fra*_* Fu 2 azure azure-resource-manager azure-template

是否有一种简单的方法可以在给定资源组的每个App Service Plan中为每个Web应用程序导出所有AppSettings?

我目前在给定资源组的不同应用程序服务计划下运行了大约20个应用程序,我正在创建Azure资源管理器(ARM)模板以便于分配/取消分配资源,我发现"自动化脚本"功能在很大程度上是有用的,但它似乎不会导出我通过Azure门户中的Webapp的应用程序设置刀片添加的任何AppSettings.

在此输入图像描述

在此输入图像描述

小智 9

您可以通过不同方式下载应用程序设置.很少有人使用Kudu Console/Resource Explorer/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
Run Code Online (Sandbox Code Playgroud)

有关如何使用PowerShell for Web Apps的更多详细信息,请参阅:Azure PowerShell示例

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

希望这可以帮助.


Fra*_* Fu 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

    }    
}
Run Code Online (Sandbox Code Playgroud)

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