Sitecore 8.2.5 Azure ARM Template Gotchas

I am a bit (a lot) late to the Sitecore Azure PaaS party, Sitecore has supported deployments to Azure using Web Apps since  Sitecore XP 8.2 Update-1 (rev. 161115) but have been playing around with the Quick Start templates provided by Sitecore https://github.com/Sitecore/Sitecore-Azure-Quickstart-Templates.

I wanted to get up and running an XP0 instance of 8.2.5 so jumped to the repo  – https://github.com/Sitecore/Sitecore-Azure-Quickstart-Templates/tree/master/Sitecore%208.2.5/xp0 , for development, and had a read of the guide here –https://doc.sitecore.net/cloud/workingwithsitecoreazuretoolkit/deployment/deployanewsitecoreenvironmenttoazureappservice and had a look at Sitecore MVP Rob Habraken blog post – https://www.robhabraken.nl/index.php/2622/sitecore-8-2-1-on-azure-web-apps/ to get me up to speed and in a position to start the install.

After following the documentation and getting the Sitecore 8.2 rev. 170728single.scwdp.zip package uploaded to Azure blob storage. I then started customizing the Sample PowerShell install script you can see it here – <a href="https://github.com/Sitecore/Sitecore-Azure-Quickstart-Templates" target="blank" rel="noopener">https://github.com/Sitecore/Sitecore-Azure-Quickstart-Templates

I tried a couple of variations for $ArmTemplateUrl before finding the below worked.

$ArmTemplateUrl = "https://raw.githubusercontent.com/Sitecore/Sitecore-Azure-Quickstart-Templates/master/Sitecore%208.2.5/xp0/azuredeploy.json"

The rest of the required replacements in the script were self explanatory

$Name = "RESOURCE_GROUP_NAME";

$location = "AZURE_DATA_CENTER_NAME";

$AzureSubscriptionId = "AZURE_SUBSCRIPTION_ID";

I then set about customizing the azuredeploy.parameters.json file, this was mosltly well documented here – https://github.com/Sitecore/Sitecore-Azure-Quickstart-Templates/tree/master/Sitecore%208.2.5/xp0

I was unsure of setCompatibilityLevelMsDeployPackageUrl and could not find any documentation, so had a dig through the deployment template, https://github.com/Sitecore/Sitecore-Azure-Quickstart-Templates/blob/master/Sitecore%208.2.5/xp0/azuredeploy.json  for references to the parameter. In there was a default value so I added that to the azuredeploy.parameters.json file.
    "setCompatibilityLevelMsDeployPackageUrl":{
        "value": "https://github.com/Sitecore/Sitecore-Azure-Quickstart-Templates/releases/download/v1.5.0/SetCompatibilityLevel.scwdp.zip"
  },

With everything populated I was in a position to run the PowerShell script, the first problem I came across was –

Get-AzureRMResource : Run Login-AzureRmAccount to login

Even though I had been prompted to login to my Azure account, turns out I needed to upgrade my Azure PowerShell tools  to 4.4.0 once I ran the msi available here – https://github.com/Azure/azure-powershell/releases that error went away.

My next error was a 403 access denied to the scwdp I earlier uploaded to the Azure Blob storage

Failed to download package.

AppGallery Deploy Failed: 'System.Net.WebException: The remote server returned an error: (403)

If you get this check you have the correct url for your Shared Access Signature and that the Start Time and Expiry Time are valid.

With these couple of issue resolved and the awesome templates provided by Sitecore I had my ProvisingState: success message

DeploymentSuccess

and a freshly installed version of Sitecore.NET 8.2 (rev. 170728) hosted as an Azure Web App.

PaaS-Sitecore

I have to say I am very impressed with the offering and cant wait to dig in deeper to Sitecore’s PaaS offering.