Vidya
Vidya

Reputation: 657

The template reference 'not valid error in arm template

I am deploying resource group using arm templates

Below is the command and error I am getting

az deployment create --name test-deployment --template-file azuredeploy.json --parameters azuredeploy.parameters.json -l westus2

This command has been deprecated and will be removed in a future release. Use 'deployment sub create' instead.
{'additionalProperties': {}, 'code': 'InvalidTemplate', 'message': "Deployment template validation failed: 'The template reference 'DEV-AI-POC-WESTUS2-RG' is not valid: could not find template resource or resource copy with this name. Please see https://aka.ms/arm-template-expressions/#reference for usage details.'.", 'target': None, 'details': None, 'additionalInfo': [{'additionalProperties': {}, 'type': 'TemplateViolation', 'info': {'lineNumber': 0, 'linePosition': 0, 'path': ''}}]}

azuredeploy.json:

{
    "$schema": "https://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "enviroment": {
            "type": "string",
            "defaultValue": "poc"
        },
        "location": {
            "type": "string",
            "defaultValue": "West US"
        },
        "depattmentName": {
            "type": "string"
        },
        "project": {
            "type": "string"
        }
    },
    "variables": {
        "rgName": "[concat(toupper(parameters('depattmentName')), '-', toupper(parameters('project')),  '-', toupper(parameters('enviroment')), '-', toupper(replace(parameters('location'), ' ', '')), '-', 'RG')]",
        "rgDeploymentName": "[concat(deployment().name, '-rg')]",
        "_artifactsLocation": "https://xxxxxxx/xxxxxx"
    },
        "resources": [
        {
            "name": "[variables('rgDeploymentName')]",
            "type": "Microsoft.Resources/deployments",
            "apiVersion": "2018-05-01",
            "ResourceGroup": "[variables('rgName')]",
            "properties": {
                "mode": "Incremental",
                "templateLink": {
                    "uri": "[concat(variables('_artifactsLocation'),'/src/arm/templates/resourcegroup.json')]",
                    "contentVersion": "1.0.0.0"
                },
                "parameters": {
                    "rgName": {
                        "value": "[variables('rgName')]"
                    },
                    "rgLocation": {
                        "value": "[parameters('location')]"
                    }
                }
            }
        }
  ],
  "outputs": {
      "resourceGroups": {
          "type": "object",
          "value": "[reference(variables('rgName'))]"
      }
  }
}

azuredeploy.parameters.json:

{
    "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "location": {
            "value": "westus2"
        },
        "depattmentName": {
            "value": "Dev"
        },
        "project": {
            "value": "AI"
        },
        "enviroment": {
            "value": "poc"
        }
    }
}

resourcegroup.json(calling template)

{
    "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
      "storageAccountName": {
        "type": "string"
      }

    },
    "variables": {
      "storageAccountType": "Standard_LRS"
    },
    "resources": [
      {
        "type": "Microsoft.Storage/storageAccounts",
        "name": "[parameters('storageAccountName')]",
        "apiVersion": "2018-02-01",
        "location": "[resourceGroup().location]",
        "sku": {
          "name": "[variables('storageAccountType')]"
        },
        "kind": "Storage"
      }


    ],
    "outputs": {
      "storageDetails": {
        "type": "string",
        "value": "[concat(parameters('storageAccountName'), '-', variables('storageAccountType'))]"
      }
    }
  }

Can anyone please help me to fix,

I have to deploy/crease resource group if not exist in azure portal using arm template. arm template should be called through uri in blob storage.

Upvotes: 2

Views: 4992

Answers (1)

4c74356b41
4c74356b41

Reputation: 72151

what it tells you is that your output is not valid, you dont have a resource or resource copy with that name, because you are attempting to create a deployment (not a resource group) in another resource group, so the reference function doesnt know about that and hence fails.

So you need to first create the resource group and then create a deployment to that group

Upvotes: 1

Related Questions