Deploying various type of storage(s) inside Azure Storage account using ARM template
Deploying various type of storage(s) inside Azure Storage account using ARM template
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 colleagues has asked me they want to deploy all storage options using a single ARM template such as
- Blob/Containers
- File shares
- 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’)]”
]
}
]
}
]
}
############################################
If I go back to my Azure Portal → Look for the new storage account
Now Individually if I have to check Container then it will show below screen.
Meanwhile, you can enhance this bit more using storage with https, and selecting different storage SKU options.