powershellazureazure-deployment-slots

Change WebApp AppSetting values when creating a new Slot


When creating a new Slot for an Azure WebApp, how can I successfully change one or more of the AppSettings?

The docs for New-AzureRmWebAppSlot suggest that there is a parameter called -AppSettingsOverrides, but that does not work.

It should be noted however that the linked docs seem to incorrectly reference the New-AzureRmWebApp Cmdlet, so I can't be sure if the parameter is actually valid (although it seems to be accepted without error).

Here is the code that I am running.

New-AzureRmWebAppSlot -ResourceGroupName $resourceGroupName -Name $webAppName -Slot $slotName -AppSettingsOverrides @{"FUNCTION_APP_EDIT_MODE" = "readwrite"} -ErrorAction Stop

Has anyone else experienced this seemlying incorrect behaviour, and if so, how did you fix it?

My Azure version is 3.5.0.


Solution

  • You could create Slot firstly, then use Set-AzureRmWebAppSlot to change AppSetting. Following script works for me.

    $myResourceGroup = "shuiapp"
    $mySite = "shuicli"
    $slotName = "Test1"
    $webApp = Get-AzureRMWebAppSlot -ResourceGroupName $myResourceGroup -Name $mySite -Slot $slotName
    $appSettingList = $webApp.SiteConfig.AppSettings
    
    $hash = @{}
    ForEach ($kvp in $appSettingList) {
        $hash[$kvp.Name] = $kvp.Value
    }
    
    
    $hash['ExistingKey2'] = "NewValue12"
    
    Set-AzureRMWebAppSlot -ResourceGroupName $myResourceGroup -Name $mySite -AppSettings $hash -Slot $slotName
    

    enter image description here

    The question will be helpful.