Skip to content


Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Azure Data Services deployment using Terraform


Terraform-based deployment of the following Azure resources (default deployment settings are in the parenthesis):

  • Azure Service Bus (Standard, namespace,topic,subscription, auth. rules)
  • Azure Data Lake Storage (ZRS, Hot, Secured, StandardV2)
  • Azure Data Factory (w/Git or without)
  • Azure Data Factory linked with Data Lake Storage
  • Azure Data Factory Pipeline
  • Azure DataBricks WorkSpace (Standard)
  • Azure EventHub (Standard, namespace)
  • Azure Functions (Dynamic, LRS storage, Python, w/App.Insights or without)
  • Azure Data Explorer (Kusto, Standard_D11_v2, 2 nodes)
  • Azure Analysis Server (backup-enabled,S0, LRS, Standard)
  • Azure Event Grid (domain, EventGridSchema)
  • Azure SQL Server (version 12.0)
  • Azure SQL Database (ElasticPool, 5 GB max data size)
  • Azure SQL Elastic Pool (StandartPool, LicenseIncluded, 50 eDTU, 50GB max data size)


  • - Azure ARM provider authentication and version settings
  • - Main configuration file that describes desired Azure infrastructure
  • terraform.tfvars - Variables values to control/change the deployment settings
  • - List of variables used in the configuration
  • - Outputs some useful info at the end of deployment (URLs and etc.)


Control the deployment size:

  • Open the terraform.tfvars file
  • Identify the "What Should Be Deployed?" section
  • Use true/false to setup your configuration
  • Check or change Azure service settings in the appropriate sections
  • Run terraform init to get required Terraform providers
  • Run terraform plan to initiate pre-deployment check
  • Run terraform apply to start deployment
  • (optional) terraform destroy to delete Azure resources

Tested with the latest terraform 0.15.5 and AzureRM provider 2.62.0:

Download the latest terraform:

Update: for_each blocks will be added soon


Azure Service Principal with Contributor rights or higher:

  • subscription id
  • client id
  • tenant id
  • principal secret

If Analysis Server is going to be deployed:

  • valid Azure AD user(s) UPN(s) (will be AS admin(s))


Azure Resources

Terraform output