Quickstart: Create a server - ARM template

This quickstart describes how to create an Analysis Services server resource in your Azure subscription by using an Azure Resource Manager template (ARM template).

An Azure Resource Manager template is a JavaScript Object Notation (JSON) file that defines the infrastructure and configuration for your project. The template uses declarative syntax. You describe your intended deployment without writing the sequence of programming commands to create the deployment.

If your environment meets the prerequisites and you're familiar with using ARM templates, select the Deploy to Azure button. The template will open in the Azure portal.

Button to deploy the Resource Manager template to Azure.

Prerequisites

  • Azure subscription: Visit Azure Free Trial to create an account.
  • Microsoft Entra ID: Your subscription must be associated with a Microsoft Entra tenant. And, you need to be signed in to Azure with an account in that Microsoft Entra ID. To learn more, see Authentication and user permissions.

Review the template

The template used in this quickstart is from Azure templates.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "metadata": {
    "_generator": {
      "name": "bicep",
      "version": "0.5.6.12127",
      "templateHash": "17179487501489240263"
    }
  },
  "parameters": {
    "serverName": {
      "type": "string",
      "metadata": {
        "description": "The name of the Azure Analysis Services server to create. Server name must begin with a letter, be lowercase alphanumeric, and between 3 and 63 characters in length. Server name must be unique per region."
      }
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]",
      "metadata": {
        "description": "Location of the Azure Analysis Services server. For supported regions, see https://docs.microsoft.com/en-us/azure/analysis-services/analysis-services-overview#availability-by-region"
      }
    },
    "skuName": {
      "type": "string",
      "defaultValue": "S0",
      "metadata": {
        "description": "The sku name of the Azure Analysis Services server to create. Choose from: B1, B2, D1, S0, S1, S2, S3, S4, S8, S9. Some skus are region specific. See https://docs.microsoft.com/en-us/azure/analysis-services/analysis-services-overview#availability-by-region"
      }
    },
    "capacity": {
      "type": "int",
      "defaultValue": 1,
      "metadata": {
        "description": "The total number of query replica scale-out instances. Scale-out of more than one instance is supported on selected regions only. See https://docs.microsoft.com/en-us/azure/analysis-services/analysis-services-overview#availability-by-region"
      }
    },
    "firewallSettings": {
      "type": "object",
      "defaultValue": {
        "firewallRules": [
          {
            "firewallRuleName": "AllowFromAll",
            "rangeStart": "0.0.0.0",
            "rangeEnd": "255.255.255.255"
          }
        ],
        "enablePowerBIService": true
      },
      "metadata": {
        "description": "The inbound firewall rules to define on the server. If not specified, firewall is disabled."
      }
    },
    "backupBlobContainerUri": {
      "type": "string",
      "defaultValue": "",
      "metadata": {
        "description": "The SAS URI to a private Azure Blob Storage container with read, write and list permissions. Required only if you intend to use the backup/restore functionality. See https://docs.microsoft.com/en-us/azure/analysis-services/analysis-services-backup"
      }
    }
  },
  "resources": [
    {
      "type": "Microsoft.AnalysisServices/servers",
      "apiVersion": "2017-08-01",
      "name": "[parameters('serverName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "[parameters('skuName')]",
        "capacity": "[parameters('capacity')]"
      },
      "properties": {
        "ipV4FirewallSettings": "[parameters('firewallSettings')]",
        "backupBlobContainerUri": "[parameters('backupBlobContainerUri')]"
      }
    }
  ]
}

A single Microsoft.AnalysisServices/servers resource with a firewall rule is defined in the template.

Deploy the template

  1. Select the following Deploy to Azure link to sign in to Azure and open a template. The template is used to create an Analysis Services server resource and specify required and optional properties.

    Button to deploy the Resource Manager template to Azure.

  2. Select or enter the following values.

    Unless specified otherwise, use default values.

    • Subscription: Select an Azure subscription.
    • Resource group: Click Create new, and then enter a unique name for the new resource group.
    • Location: Select a default location for resources created in the resource group.
    • Server Name: Enter a name for the server resource.
    • Location: Ignore for Analysis Services. Location is specified in Server Location.
    • Server location: Enter the location of the Analysis Services server. This is often the same region as the default Location specified for the Resource Group, but not required. For example North Central US. For supported regions, see Analysis Services availability by region.
    • Sku Name: Enter the sku name for the Analysis Services server to create. Choose from: B1, B2, D1, S0, S1, S2, S3, S4, S8v2, S9v2. Sku availability depends on region. S0 or D1 is recommended for evaluation and testing.
    • Capacity: Enter the total number of query replica scale-out instances. Scale-out of more than one instance is supported in select regions only.
    • Firewall Settings: Enter inbound firewall rules to define for the server. If not specified, firewall is disabled.
    • Backup Blob Container Uri: Enter the SAS URI to a private Azure Blob Storage container with read, write and list permissions. Required only if you intend to use Backup/restore.
    • I agree to the terms and conditions state above: Select.
  3. Select Purchase. After the server has been deployed successfully, you get a notification:

    ARM template, deploy portal notification

Validate the deployment

Use the Azure portal or Azure PowerShell to verify the resource group and server resource was created.

PowerShell

$resourceGroupName = Read-Host -Prompt "Enter the Resource Group name"
(Get-AzResource -ResourceType "Microsoft.AnalysisServices/servers" -ResourceGroupName $resourceGroupName).Name
 Write-Host "Press [ENTER] to continue..."

Clean up resources

When no longer needed, use the Azure portal, Azure CLI, or Azure PowerShell to delete the resource group and the server resource.

echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."

Next steps

In this quickstart, you used an ARM template to create a new resource group and an Azure Analysis Services server resource. After you've created a server resource by using the template, consider the following: