Mikhila Mehta
Mikhila Mehta

Reputation: 5

Custom template deployment in Azure - Schema Error

I am trying to upload a Storage account "template.json" file in Custom deployment in Azure. The link I am referring to deploy the template is - https://learn.microsoft.com/en-us/azure/azure-resource-manager/templates/quickstart-create-templates-use-the-portal.

But I am getting the following schema error :

"Unable to load schema from 'https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json'. No schema request service available"

I have tried using different versions like - "2019-04-01" and "2021-02-01". Still does not work. Can someone please help me to deploy this template correctly?

My template.json file is as follows:

{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
    "storageAccounts_name": {
        "defaultValue": "NameOfStorageAccount",
        "type": "String"
    }
},
"variables": {},
"resources": [
    {
        "type": "Microsoft.Storage/storageAccounts",
        "apiVersion": "2021-04-01",
        "name": "[parameters('storageAccounts_name')]",
        "location": "eastus",
        "tags": {
            "Application": "CA",
            "Environment": "Test"
        },
        "sku": {
            "name": "Standard_RAGRS",
            "tier": "Standard"
        },
        "kind": "StorageV2",
        "properties": {
            "isHnsEnabled": true,
            "networkAcls": {
                "bypass": "AzureServices",
                "virtualNetworkRules": [],
                "ipRules": [],
                "defaultAction": "Allow"
            },
            "supportsHttpsTrafficOnly": true,
            "encryption": {
                "services": {
                    "file": {
                        "keyType": "Account",
                        "enabled": true
                    },
                    "blob": {
                        "keyType": "Account",
                        "enabled": true
                    }
                },
                "keySource": "Microsoft.Storage"
            },
            "accessTier": "Hot"
        }
    },
    {
        "type": "Microsoft.Storage/storageAccounts/blobServices",
        "apiVersion": "2021-04-01",
        "name": "[concat(parameters('storageAccounts_name'), '/default')]",
        "dependsOn": [
            "[resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccounts_name'))]"
        ],
        "sku": {
            "name": "Standard_RAGRS",
            "tier": "Standard"
        },
        "properties": {
            "cors": {
                "corsRules": []
            },
            "deleteRetentionPolicy": {
                "enabled": false
            }
        }
    },
    {
        "type": "Microsoft.Storage/storageAccounts/fileServices",
        "apiVersion": "2021-04-01",
        "name": "[concat(parameters('storageAccounts_name'), '/default')]",
        "dependsOn": [
            "[resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccounts_name'))]"
        ],
        "sku": {
            "name": "Standard_RAGRS",
            "tier": "Standard"
        },
        "properties": {
            "protocolSettings": {
                "smb": {}
            },
            "cors": {
                "corsRules": []
            }
        }
    },
    {
        "type": "Microsoft.Storage/storageAccounts/queueServices",
        "apiVersion": "2021-04-01",
        "name": "[concat(parameters('storageAccounts_name'), '/default')]",
        "dependsOn": [
            "[resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccounts_name'))]"
        ],
        "properties": {
            "cors": {
                "corsRules": []
            }
        }
    },
    {
        "type": "Microsoft.Storage/storageAccounts/tableServices",
        "apiVersion": "2021-04-01",
        "name": "[concat(parameters('storageAccounts_name'), '/default')]",
        "dependsOn": [
            "[resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccounts_name'))]"
        ],
        "properties": {
            "cors": {
                "corsRules": []
            }
        }
    },
    {
        "type": "Microsoft.Storage/storageAccounts/blobServices/containers",
        "apiVersion": "2021-04-01",
        "name": "[concat(parameters('storageAccounts_name'), '/default/archive')]",
        "dependsOn": [
            "[resourceId('Microsoft.Storage/storageAccounts/blobServices', parameters('storageAccounts_name'), 'default')]",
            "[resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccounts_name'))]"
        ],
        "properties": {
            "defaultEncryptionScope": "$account-encryption-key",
            "denyEncryptionScopeOverride": false,
            "publicAccess": "None"
        }
    },
    {
        "type": "Microsoft.Storage/storageAccounts/blobServices/containers",
        "apiVersion": "2021-04-01",
        "name": "[concat(parameters('storageAccounts_name'), '/default/intermediate')]",
        "dependsOn": [
            "[resourceId('Microsoft.Storage/storageAccounts/blobServices', parameters('storageAccounts_name'), 'default')]",
            "[resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccounts_name'))]"
        ],
        "properties": {
            "defaultEncryptionScope": "$account-encryption-key",
            "denyEncryptionScopeOverride": false,
            "publicAccess": "None"
        }
    },
    {
        "type": "Microsoft.Storage/storageAccounts/blobServices/containers",
        "apiVersion": "2021-04-01",
        "name": "[concat(parameters('storageAccounts_name'), '/default/processed')]",
        "dependsOn": [
            "[resourceId('Microsoft.Storage/storageAccounts/blobServices', parameters('storageAccounts_name'), 'default')]",
            "[resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccounts_name'))]"
        ],
        "properties": {
            "defaultEncryptionScope": "$account-encryption-key",
            "denyEncryptionScopeOverride": false,
            "publicAccess": "None"
        }
    },
    {
        "type": "Microsoft.Storage/storageAccounts/blobServices/containers",
        "apiVersion": "2021-04-01",
        "name": "[concat(parameters('storageAccounts_name'), '/default/propectstest')]",
        "dependsOn": [
            "[resourceId('Microsoft.Storage/storageAccounts/blobServices', parameters('storageAccounts_name'), 'default')]",
            "[resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccounts_name'))]"
        ],
        "properties": {
            "defaultEncryptionScope": "$account-encryption-key",
            "denyEncryptionScopeOverride": false,
            "publicAccess": "None"
        }
    },
    {
        "type": "Microsoft.Storage/storageAccounts/blobServices/containers",
        "apiVersion": "2021-04-01",
        "name": "[concat(parameters('storageAccounts_name'), '/default/staging')]",
        "dependsOn": [
            "[resourceId('Microsoft.Storage/storageAccounts/blobServices', parameters('storageAccounts_name'), 'default')]",
            "[resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccounts_name'))]"
        ],
        "properties": {
            "defaultEncryptionScope": "$account-encryption-key",
            "denyEncryptionScopeOverride": false,
            "publicAccess": "None"
        }
    },
    {
        "type": "Microsoft.Storage/storageAccounts/blobServices/containers",
        "apiVersion": "2021-04-01",
        "name": "[concat(parameters('storageAccounts_name'), '/default/test-sandbox')]",
        "dependsOn": [
            "[resourceId('Microsoft.Storage/storageAccounts/blobServices', parameters('storageAccounts_name'), 'default')]",
            "[resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccounts_name'))]"
        ],
        "properties": {
            "defaultEncryptionScope": "$account-encryption-key",
            "denyEncryptionScopeOverride": false,
            "publicAccess": "None"
        }
    }
]

}

Upvotes: 0

Views: 679

Answers (1)

Martin Šimeček
Martin Šimeček

Reputation: 119

  1. You're deploying a Storage Account with hierarchical namespace (isHnsEnabled=true). Encryption scopes are not supported in those accounts (docs). To make your template work, you have to remove the defaultEncryptionScope and denyEncryptionScopeOverride properties on containers.

  2. Also, remove the empty protocolSettings and cors properties on the Microsoft.Storage/storageAccounts/fileServices resource.

Final template.json, which deploys fine for me, looks like this:

{
  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "storageAccounts_name": {
      "defaultValue": "NameOfStorageAccount",
      "type": "String"
    }
  },
  "variables": {},
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2021-04-01",
      "name": "[parameters('storageAccounts_name')]",
      "location": "eastus",
      "tags": {
        "Application": "CA",
        "Environment": "Test"
      },
      "sku": {
        "name": "Standard_RAGRS",
        "tier": "Standard"
      },
      "kind": "StorageV2",
      "properties": {
        "isHnsEnabled": true,
        "networkAcls": {
          "bypass": "AzureServices",
          "virtualNetworkRules": [],
          "ipRules": [],
          "defaultAction": "Allow"
        },
        "supportsHttpsTrafficOnly": true,
        "encryption": {
          "services": {
            "file": {
              "keyType": "Account",
              "enabled": true
            },
            "blob": {
              "keyType": "Account",
              "enabled": true
            }
          },
          "keySource": "Microsoft.Storage"
        },
        "accessTier": "Hot"
      }
    },
    {
      "type": "Microsoft.Storage/storageAccounts/blobServices",
      "apiVersion": "2021-04-01",
      "name": "[concat(parameters('storageAccounts_name'), '/default')]",
      "dependsOn": [ "[resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccounts_name'))]" ],
      "sku": {
        "name": "Standard_RAGRS",
        "tier": "Standard"
      },
      "properties": {
        "cors": { "corsRules": [] },
        "deleteRetentionPolicy": { "enabled": false }
      }
    },
    {
      "type": "Microsoft.Storage/storageAccounts/fileServices",
      "apiVersion": "2021-04-01",
      "name": "[concat(parameters('storageAccounts_name'), '/default')]",
      "dependsOn": [ "[resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccounts_name'))]" ],
      "sku": {
        "name": "Standard_RAGRS",
        "tier": "Standard"
      },
      "properties": {
      }
    },
    {
      "type": "Microsoft.Storage/storageAccounts/queueServices",
      "apiVersion": "2021-04-01",
      "name": "[concat(parameters('storageAccounts_name'), '/default')]",
      "dependsOn": [ "[resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccounts_name'))]" ],
      "properties": { "cors": { "corsRules": [] } }
    },
    {
      "type": "Microsoft.Storage/storageAccounts/tableServices",
      "apiVersion": "2021-04-01",
      "name": "[concat(parameters('storageAccounts_name'), '/default')]",
      "dependsOn": [ "[resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccounts_name'))]" ],
      "properties": { "cors": { "corsRules": [] } }
    },
    {
      "type": "Microsoft.Storage/storageAccounts/blobServices/containers",
      "apiVersion": "2021-04-01",
      "name": "[concat(parameters('storageAccounts_name'), '/default/archive')]",
      "dependsOn": [ "[resourceId('Microsoft.Storage/storageAccounts/blobServices', parameters('storageAccounts_name'), 'default')]", "[resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccounts_name'))]" ],
      "properties": {
        "publicAccess": "None"
      }
    },
    {
      "type": "Microsoft.Storage/storageAccounts/blobServices/containers",
      "apiVersion": "2021-04-01",
      "name": "[concat(parameters('storageAccounts_name'), '/default/intermediate')]",
      "dependsOn": [ "[resourceId('Microsoft.Storage/storageAccounts/blobServices', parameters('storageAccounts_name'), 'default')]", "[resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccounts_name'))]" ],
      "properties": {
        "publicAccess": "None"
      }
    },
    {
      "type": "Microsoft.Storage/storageAccounts/blobServices/containers",
      "apiVersion": "2021-04-01",
      "name": "[concat(parameters('storageAccounts_name'), '/default/processed')]",
      "dependsOn": [ "[resourceId('Microsoft.Storage/storageAccounts/blobServices', parameters('storageAccounts_name'), 'default')]", "[resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccounts_name'))]" ],
      "properties": {
        "publicAccess": "None"
      }
    },
    {
      "type": "Microsoft.Storage/storageAccounts/blobServices/containers",
      "apiVersion": "2021-04-01",
      "name": "[concat(parameters('storageAccounts_name'), '/default/propectstest')]",
      "dependsOn": [ "[resourceId('Microsoft.Storage/storageAccounts/blobServices', parameters('storageAccounts_name'), 'default')]", "[resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccounts_name'))]" ],
      "properties": {
        "publicAccess": "None"
      }
    },
    {
      "type": "Microsoft.Storage/storageAccounts/blobServices/containers",
      "apiVersion": "2021-04-01",
      "name": "[concat(parameters('storageAccounts_name'), '/default/staging')]",
      "dependsOn": [ "[resourceId('Microsoft.Storage/storageAccounts/blobServices', parameters('storageAccounts_name'), 'default')]", "[resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccounts_name'))]" ],
      "properties": {
        "publicAccess": "None"
      }
    },
    {
      "type": "Microsoft.Storage/storageAccounts/blobServices/containers",
      "apiVersion": "2021-04-01",
      "name": "[concat(parameters('storageAccounts_name'), '/default/test-sandbox')]",
      "dependsOn": [ "[resourceId('Microsoft.Storage/storageAccounts/blobServices', parameters('storageAccounts_name'), 'default')]", "[resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccounts_name'))]" ],
      "properties": {
        "publicAccess": "None"
      }
    }
  ]
}

Upvotes: 1

Related Questions