Deploying various type of storage(s) inside Azure Storage account using ARM template

Prashanth Kumar
3 min readJul 27, 2020

--

Azure Storage is one of the cloud computing PaaS (Platform as a Service) services provided by the Microsoft Azure team. It provides cloud storage that is highly available, secure, durable, scalable, and redundant. It is massively scalable and elastic. It can store and process hundreds of terabytes of data or you can store the small amounts of data required for a small business website.

Recently one of my colleague has asked me they want to deploy all storage options using a single ARM template such as

  • Blob/Containers
  • Fileshares
  • Tables
  • Queues

In order to achieve i have written below ARM template to achieve this,

############################################

{
“$schema”: “https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
“contentVersion”: “1.0.0.0”,
“parameters”: {
“storageAccountName”: {
“type”: “string”,
“metadata”: {
“description”: “Specifies the name of the Azure Storage account.”
}
},


“queue”: {
“type”: “string”,
“defaultValue”: “queue”,
“metadata”: {
“description”: “Specifies the name of the Azure Storage account.”
}
},

“containerName”: {
“type”: “string”,
“defaultValue”: “logs”,
“metadata”: {
“description”: “Specifies the name of the blob container.”
}
},

“fileshare”: {
“type”: “string”,
“defaultValue”: “fileshare”,
“metadata”: {
“description”: “Specifies the name of the blob container.”
}
},

“tables”: {
“type”: “string”,
“defaultValue”: “logs”,
“metadata”: {
“description”: “Specifies the name of the blob container.”
}
},


“location”: {
“type”: “string”,
“defaultValue”: “[resourceGroup().location]”,
“metadata”: {
“description”: “Specifies the location in which the Azure Storage resources should be deployed.”
}
}
},
“resources”: [
{
“type”: “Microsoft.Storage/storageAccounts”,
“apiVersion”: “2019–06–01”,
“name”: “[parameters(‘storageAccountName’)]”,
“location”: “[parameters(‘location’)]”,
“sku”: {
“name”: “Standard_LRS”,
“tier”: “Standard”
},
“kind”: “StorageV2”,
“properties”: {
“accessTier”: “Hot”
},
“resources”: [
{
“type”: “blobServices/containers”,
“apiVersion”: “2019–06–01”,
“name”: “[concat(‘default/’, parameters(‘containerName’))]”,
“dependsOn”: [
“[parameters(‘storageAccountName’)]”
]
},

{
“type”: “queueServices/Queues”,
“apiVersion”: “2019–06–01”,
“name”: “[concat(‘default/’, parameters(‘queue’))]”,
“dependsOn”: [
“[parameters(‘storageAccountName’)]”
]
},


{
“type”: “fileServices/shares”,
“apiVersion”: “2019–06–01”,
“name”: “[concat(‘default/’, parameters(‘fileshare’))]”,
“dependsOn”: [
“[parameters(‘storageAccountName’)]”
]
},

{
“type”: “tableServices/tables”,
“apiVersion”: “2019–06–01”,
“name”: “[concat(‘default/’, parameters(‘tables’))]”,
“dependsOn”: [
“[parameters(‘storageAccountName’)]”
]
}


]
}


]
}

############################################

Deployment status

If i go back to my Azure Portal → Look for new storage account

Now Individually if i have to check Container then it will show below screen.

Container
File Shares
Tables
Queues

Meanwhile you can enhance this bit more using storage with https, and selecting different storage SKU options.

--

--

Prashanth Kumar
Prashanth Kumar

Written by Prashanth Kumar

IT professional with 20+ years experience, feel free to contact me at: Prashanth.kumar.ms@outlook.com

No responses yet