Skriv din AppSettings for en Azure WebApp som en json fil

Hvis man har mange Azure sites kørende i en eller flere resource groups og du gerne vil teste disse lokalt kan dette være en langsom proces, hvis AppSettings for den givne resource er stor, derfor kan det være behændigt at kunne autogenere disse. Jeg sidder nogen gange og arbejder med WebApps med store AppSettings, og når jeg gerne vil køre noget kode jeg har lokalt op mod en given resource group skal jeg derfor udskifte mange delstrenge manuelt, hvilket kan lede til typos. Dette kommer jeg udover med følgende script

    function Write-Local-Settings-File
    {
        param([string]$Site, [string] $FilePath)

        Login-AzureRmAccount
        $Resource = Get-AzureRmWebApp -Name $Site
        
        $AppSettings = $Resource.SiteConfig.AppSettings
        
        $Text = ""
        
        for($i=0; $i -lt $Appsettings.Count; $i++)
        {
            $Delimiter = ""
            if($i -lt $AppSettings.Count-1)
            {
                $Delimiter  = ","
            }
        
            $Text += """" + $Appsettings[$i].Name + """" +  ":" + """" + $Appsettings[$i].Value +  """" + $Delimiter
        }
        
        $Text = "{" + $Text + "}"
        
        $Text | Out-File -FilePath $FilePath -Encoding utf8
    }

Funktionen kan derefter kaldes således

    Write-Local-Settings-File resource-name X:\path\to\local\settings.file.json

Selve scriptet kan nok godt bruge en god kærlig hånd, men scriptet gør lige præcis det som jeg gerne vil have. Den generer min settings fil for mig.

Skrevet af Martin Slot den 6/16/2018