Search code examples
azureazure-resource-managerazure-rm-template

Unable to create multiple storage accounts with parameters value on arm template


I am trying to create multiple storage accounts with arm templates, However i am unable to find syntax for creating with name as parameters. below is the my template.json file

Template.json:

     {
      "$schema": "https://schema.management.azure.com/schemas/2019-04- 
        01/deploymentTemplate.json#",
      "contentVersion": "1.0.0.0",
       "parameters": {
        "storageName": {
          "type": "array",
          "metadata": {
                 "description": "storageaccountname"
            }
        }
         
        },
    "functions": [],
    "variables": {},
    "resources": [{
        "name": "[concat('storage', uniqueString(resourceGroup().id), 
  parameters('storageName')[copyIndex('copystorage')])]",
        "type": "Microsoft.Storage/storageAccounts",
        "apiVersion": "2021-04-01",
        "tags": {
            "displayName": "storageaccount1"
        },
        "location": "[resourceGroup().location]",
        "kind": "StorageV2",
        "sku": {
            "name": "Standard_LRS",
            "tier": "Standard"
        },
        "copy": {

            "name": "copystorage",
            "count": "[length(parameters('storageName'))]"
        

           }
         }],
       "outputs": {}
       }

Parameters.json

  {
   "$schema": "https://schema.management.azure.com/schemas/2019-04- 
  01/deploymentParameters.json#",
   "contentVersion": "1.0.0.0",
   "parameters": {
      "storageName": {
        "value": [
          "storarm1",
          "storearm2",
          "storearm3"
        ]  
    }
   }
 }

so what should be the "name" property inorder to create storage accounts with    
storearm1,storearm2 and storearm3      

Solution

  • after modifying from

    "name": "[concat('storage', uniqueString(resourceGroup().id), parameters('storageName')[copyIndex('copystorage')])]", to

    "name": "[ parameters('storageName')[copyIndex('copystorage')]]",

    i able to create with the names