[Azure] How to get website slots specific informations

This topic contains 1 reply, has 2 voices, and was last updated by Profile photo of Don Jones Don Jones 2 years, 2 months ago.

  • Author
    Posts
  • #18871
    Profile photo of Ludovic BOGGIO
    Ludovic BOGGIO
    Participant

    I was recently facing an issue : while trying to aumotate, through PowerShell, the switch between the two slots of an [b]Azure [/b]WebSite, I had to update the AppSettings from each slots.
    Considering I had a website which name was "MyWebSite", I created a slot named "Secondary".

    If I was trying a

    $MyWebSite = Get-AzureWebSite -name MyWebSite

    a

    $MyWebSite.AppSettings

    returned empty. Weird.

    I tried the same command with a website without deployment slots (named MyNonStagedWebSite) :

    $MyOtherWebSite = Get-AzureWebSite -name MyNonStagedWebSite

    a

    $MyOtherWebSite.AppSettings

    correctly returned all applicaiton settings from my website.

    I finally discovered that when launched on a multi-staged website, the

    Get-AzureWebSite -name MyNonStagedWebSite

    returned a different return than if launched on a non-staged website, thanks to the Get-Member command :

    $MyWebSite | Get-Member

    returned a TypeName : Microsoft.WindowsAzure.Commands.Utilities.Websites.Services.WebEntities.[b]Site[/b]
    while a

    $MyOtherWebSite | Get-Member

    returned a TypeName : Microsoft.WindowsAzure.Commands.Utilities.Websites.Services.WebEntities.[b]SiteWithConfig[/b]

    That was because $MyWebSite was :

    Name       : MyWebSite(Secondary)
    State      : Running
    Host Names : {MyWebSite-secondary.azurewebsites.net}
    
    Name       : MyWebSite
    State      : Running
    Host Names : {MyWebSite.azurewebsites.net}

    So, I figured on the Get-AzureWebSite help page that there was a "-slot" parameter. Magically, a

    $MyWebSite1 = Get-AzureWebSite -name MyWebSite -Slot Secondary

    successfully returned a TypeName : Microsoft.WindowsAzure.Commands.Utilities.Websites.Services.WebEntities.[b]SiteWithConfig[/b] , and

    $MyWebSite1.AppSettings

    successfully returned application settings from my secondary slot. My last difficulty was to find what was the name of the "main" slot. It's only by luck that I found that it was "Production". So, a

    $MyWebSite2 = Get-AzureWebSite -name MyWebSite -Slot Production

    successfully returned a TypeName : Microsoft.WindowsAzure.Commands.Utilities.Websites.Services.WebEntities.[b]SiteWithConfig[/b] , and

    $MyWebSite2.AppSettings

    successfully returned application settings from my main slot.

    I wanted to post it somewhere, as I did a lot of digging around on the web, and never found clearly those informations; I hope they'll get seen by search engine, to prevent future fellow to lose some days on this, as I did.

  • #18905
    Profile photo of Don Jones
    Don Jones
    Keymaster

    Thanks!

You must be logged in to reply to this topic.