Подтвердить что ты не робот

Ошибка шаблона ресурса веб-сайта Azure

Я пытаюсь использовать AzureResourceManager модуль PowerShell для создания и настройки веб-сайта. Я начал с файла шаблона, созданного Visual Studio, который отлично работает, когда я использую его через New-AzureResourceGroup -TemplateFile website.json.

Итак, теперь я пытаюсь настроить файл шаблона для настройки сайта. Я пытаюсь установить версии php и .NET Framework. В соответствии с schema эти свойства задаются через объект конфигурации в массиве ресурсов.

Здесь находится раздел моего шаблона json. Раздел "Ресурсы" - это то, что я добавил:

    {
        "apiVersion": "2014-06-01",
        "name": "[parameters('siteName')]",
        "type": "Microsoft.Web/sites",
        "location": "[parameters('siteLocation')]",
        "tags": {
            "[concat('hidden-related:', resourceGroup().id, '/providers/Microsoft.Web/serverfarms/', parameters('hostingPlanName'))]": "Resource"
        },
        "dependsOn": [
            "[concat('Microsoft.Web/serverfarms/', parameters('hostingPlanName'))]"
        ],
        "properties": {
            "name": "[parameters('siteName')]",
            "serverFarm": "[parameters('hostingPlanName')]"
        },
        "resources": [
            {
                "apiVersion": "2014-04-01",
                "type": "Microsoft.Web/sites/config",
                "name": "config",
                "properties": {
                    "name": "config",
                    "phpVersion": "",
                    "netFrameworkVersion": "V4.5"
                }
            }
        ]
    },

Когда я передаю этот шаблон в Test-AzureResourceGroupTemplate, я получаю эту ошибку:

Code    : InvalidTemplate
Message : Deployment template validation failed: 'The template resource 'config' for type 'Microsoft.Web/sites/config' has 
          incorrect segment lengths. A nested resource type must have identical number of segments as its resource name. A root 
          resource type must have segment length one greater than its resource name'.

Я не могу найти документацию по этому вопросу. Кто-нибудь знает, что означает эта ошибка, или что я делаю неправильно?

4b9b3361

Ответ 1

Никогда не сработает, как только я напишу вопрос, я выясню ответ.

Ошибка означает, что, поскольку это вложенный ресурс (объект конфигурации вложен внутри объекта сайта), имя должно отражать это. Поэтому вместо config имя должно быть чем-то вроде mysite/config. Мне также нужно было добавить раздел dependsOn. Вот шаблон, который успешно прошел проверку:

"resources": [
    {
        "apiVersion": "2014-04-01",
        "type": "Microsoft.Web/sites/config",
        "name": "[concat(parameters('siteName'), '/config')]",
        "dependsOn": [
            "[concat('Microsoft.Web/sites/', parameters('siteName'))]"
        ],
        "properties": {
            "phpVersion": "",
            "netFrameworkVersion": "V4.5"
        }
    }
]