In this article we will create an ARM template that will allow to add a custom domain to a web app, mobile app, or API app in Azure App Service.

With Azure App Service it's easy to add a custom domain via the portal. Everything is well described in the Azure documentation on the Map a custom domain name to an Azure app page.

Today we will focus on creating an Azure Resource Manager template to easily add a custom domain to an app. For our ARM template to work properly, it is first required to create the DNS record and the website.



Let's declare the parameters of the ARM template:

  "$schema": "",
  "contentVersion": "",
  "parameters": {
    "websiteName": {
      "type": "string"
    "websiteCustomDomainName": {
      "type": "string"


Now we will declare the resources of the ARM template:

  "resources": [
      "apiVersion": "2015-08-01",
      "name": "[concat(parameters('websiteName'),'/',parameters('websiteCustomDomainName'))]",
      "type": "Microsoft.Web/sites/hostNameBindings",
      "location": "[resourceGroup().location]",
      "properties": {
        "domainId": null,
        "hostNameType": "Verified",
        "siteName": "parameters('websiteName')"

We can pay attention to two things here:


Example of use

The ARM template is now ready, let's open a Windows PowerShell and try it:

.\Deploy-AzureResourceGroup.ps1 -ResourceGroupName 'MyResourceGroupName' -ResourceGroupLocation 'canadaeast' -TemplateFile '.\azuredeploy.json'


Resource Microsoft.Web/sites/hostNameBindings 'myappname/' provisioning status is succeeded

If everything goes well, you should see the same kind of message as above.


To go further

If the DNS record is not created when deploying the template you'll get the following error message:

A CNAME record pointing from to was not found. Alternative record to was not found either.




We have seen how to create an ARM template that will add a custom domain in Azure App Service.


You can download the example solution here:

Download full sources


Browse the GitHub repository


Please feel free to comment or contact me if you have any question about this article.

Add a comment

(Will not be published)

Back to articles