轻松导出Azure Web App的AppSettings?

时间:2017-10-24 00:28:39

标签: azure azure-resource-manager azure-template

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

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

enter image description here

enter image description here

2 个答案:

答案 0 :(得分:9)

您可以通过不同方式下载应用程序设置。很少有人使用Kudu Console / Resource Explorer / PowerShell。

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

转到应用设置 - >下载

enter image description here

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

转到网络应用程序 - >开发工具 - >资源浏览器 - >选择资源 - >下载设置

PowerShell cmdlet下面还可以帮助您下​​载应用程序设置。

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

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

您还可以查看博客文章如何Export Azure WebApp Application Settings & Configuration Strings To CSV

希望这有帮助。

答案 1 :(得分:2)

为了回应@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

    }    
}

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