свойство location не разрешено для развертывания в области группы ресурсов

#azure #arm #azure-sql-database #azure-resource-manager #arm-template

#azure #arm #azure-sql-database #azure-resource-manager #arm-шаблон

Вопрос:

Я создал связанный шаблон ARM и пытаюсь развернуть, но получаю сообщение об ошибке ниже.

Я развертываю Sql Server и серверную базу данных с использованием связанных шаблонов. Отдельный ARM (Sql Server и база данных sql работают нормально).

Ошибка: InvalidDeployment; Сообщение = Свойство ‘location’ не разрешено для развертывания в области группы ресурсов. Пожалуйста, смотрите https://aka.ms/deploy-to-subscription для получения подробной информации об использовании.

Если я удаляю местоположение и пытаюсь развернуть, я получаю сообщение об ошибке ниже.

Для этого определения требуется свойство location

Моя ошибка в версии схемы или версии api или что-то в этом роде?

 New-AzResourceGroupDeployment -Name "ARMLinkedDeployment" -ResourceGroupName "Test-POC-RG" -TemplateFile ".......MainTemplatesSqlAppazuredeploy.json" -TemplateParameterFile ".....MainTemplatesSqlAppparameters.json"
 

parameters.json

 {
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
    "sqlserver_linkedTemplatepath": {
        "value": "https://stvirtuosotest.blob.core.windows.net/armlinkedtemplates/azuredeploysql.json"
    },
    "sqldb_linkedTemplatepath": {
        "value": "https://stvirtuosotest.blob.core.windows.net/armlinkedtemplates/azuredeploysqldb.json"
    },
    "sqlserver_parameters_linkedTemplatepath": {
        "value": "https://stvirtuosotest.blob.core.windows.net/armlinkedtemplates/azuredeploy.sqlparameters.json"
    },
    "sqldb_parameters_linkedTemplatepath": {
        "value": "https://stvirtuosotest.blob.core.windows.net/armlinkedtemplates/azuredeploy.sqldbparameters.json"
    }
}
}
 

azuredeploy.файл json

 {
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
    "sqlserver_linkedTemplatepath": {
        "type": "string",
        "metadata": {
            "description": "The sql server arm template json file path from storage account.."
        }
    },
    "sqldb_linkedTemplatepath": {
        "type": "string",
        "metadata": {
            "description": "The sql database deploy arm template json file path from storage account."
        }
    },
    "sqldb_parameters_linkedTemplatepath": {
        "type": "string",
        "metadata": {
            "description": "The sql database arm parameters file json file path from storage account."
        }
    },
    "sqlserver_parameters_linkedTemplatepath": {
        "type": "string",
        "metadata": {
            "description": "The sql server arm parameters json file path from storage account."
        }
    }
},

"resources": [
    {
        "type": "Microsoft.Resources/deployments",
        "apiVersion": "2020-06-01",
        "name": "sqlDbDeployment",
        "resourceGroup": "[resourceGroup().name]",
        "properties": {
            "mode": "Incremental",
            "templateLink": {
                "uri": "[parameters('sqldb_linkedTemplatepath')]",
                "contentVersion": "1.0.0.0"
            },
            "parametersLink": {
                "contentVersion": "1.0.0.0",
                "uri": "[parameters('sqldb_parameters_linkedTemplatepath')]"
            }
        },
        "dependsOn": [
            "sqlServerDeployment"
        ]
    },
    {
        "type": "Microsoft.Resources/deployments",
        "apiVersion": "2020-06-01",
        "name": "sqlServerDeployment",
        "resourceGroup": "[resourceGroup().name]",
        "properties": {
            "mode": "Incremental",
            "templateLink": {
                "uri": "[parameters('sqlserver_linkedTemplatepath')]",
                "contentVersion": "1.0.0.0"
            },
            "parametersLink": {
                "contentVersion": "1.0.0.0",
                "uri": "[parameters('sqlserver_parameters_linkedTemplatepath')]"
            }
        }
    }

],
"outputs": {
    "sqldbresourceid": {
        "type": "object",
        "value": "[reference('sqlDbDeployment').outputs.resourceGroup.resourceId]"
    },
    "sqlserverresourceid": {
        "type": "object",
        "value": "[reference('sqlServerDeployment').outputs.resourceGroup.resourceId]"
    }
}
}
 

Комментарии:

1. @RoadRunner обновил сведения, поскольку в прошлый раз они были пропущены

2. @RoadRunner После добавления этого я получаю сообщение «Свойство ‘location’ не разрешено для развертывания в области группы ресурсов»

3. @RoadRunner получение свойства location требуется для этой ошибки определения.

4. Не могли бы вы, пожалуйста, сказать мне, где вы определяете местоположение?

5. @PavanKumarGVVS Рад узнать, что теперь он у вас работает. Пожалуйста, опубликуйте то, что сработало для вас, в качестве ответа ниже, чтобы это помогло и другим членам сообщества.

Ответ №1:

Вот как я исправил ту же проблему.

файл parameters.json

 {
    "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "location": {
            "value": "eastus2"
        }
    }
}
 

azuredeploy.файл json

 {
    "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "location": {
            "type": "string"
        }
    },
    "resources": [
        {
            "type": "Microsoft.Resources/deployments",
            "apiVersion": "2021-04-01",
            "name": "deployment1",
            "resourceGroup": "[resourceGroup().name]",
            "properties": {
                "mode": "Incremental",
                "templateLink": {
                    "relativePath": "templates/template.json"
                },
                "parameters": {
                    "location": {
                        "value" : "[parameters('location')]"
                    }
                }
            }
        }
    ]
}

 

Таким образом, местоположение можно использовать из template.json по мере необходимости.

Ссылка: https://docs.microsoft.com/en-us/azure/azure-resource-manager/templates/template-test-cases#location-uses-parameter