Как добавить имя группы ресурсов к имени Redis, не нарушая шаблон ARM? - PullRequest
0 голосов
/ 07 мая 2020

Я пытаюсь развернуть Redis с помощью шаблона ARM и чтобы имя хоста Redis было уникальным, я добавляю к нему имя группы ресурсов с помощью:

"variables": {
    "resourceName": "[concat(resourceGroup().id, '-', parameters('redisCacheName'))]"
},

Однако я внезапно получаю следующую ошибку , поиск которого дает совершенно разные ответы:

Ошибка проверки шаблона развертывания: 'The template resource' / subscriptions / XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX / resourceGroups / my-group-my-redis 'для типа' Microsoft. WindowsAzure .ResourceStack.Frontdoor.Common.Entities.TemplateGenericProperty`1 [System.String] 'в строке' 1 'и столбце' 640 'имеет неправильную длину сегмента.

Вложенный тип ресурса должен иметь такое же количество сегментов, как и его имя. Тип ресурса root должен иметь длину сегмента на единицу больше, чем его имя ресурса. Подробнее об использовании см. https://aka.ms/arm-template/#resources. '.

Я не понимаю, почему упоминается какой-то «Frontdoor», когда я пытаюсь развернуть Basi c Redis Пример и какое здесь исправление, пожалуйста?

Ниже мой шаблон ARM:

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "redisCacheName": {
            "defaultValue": "my-redis",
            "type": "String"
        }
    },
    "variables": {
        "resourceName": "[concat(resourceGroup().id, '-', parameters('redisCacheName'))]"
    },
    "outputs": {
      "RedisCacheEndpoint": {
        "type": "string",
        "value": "[concat(reference(variables('resourceName')).hostName, ':', reference(variables('resourceName')).sslPort)]"
      },
      "RedisCachePassword": {
        "type": "string",
        "value": "[reference(variables('resourceName')).accessKeys.primaryKey]"
      }
    },
    "resources": [
        {
            "type": "Microsoft.Cache/Redis",
            "apiVersion": "2019-07-01",
            "name": "[variables('resourceName')]",
            "location": "[resourceGroup().location]",
            "properties": {
                "sku": {
                    "name": "Basic",
                    "family": "C",
                    "capacity": 1
                },
                "enableNonSslPort": false
            }
        }
    ]
}

А вот файл параметров:

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "redisCacheName": {
            "value": "my-redis"
        }
    }
}

Я пытаюсь развернуть экземпляр Redis в моей группе RG под названием «my-group», и при развертывании я использую значение параметра «my-redis» -

, надеясь получить конечную точку Redis с уникальным именем «my-group-my -redis.redis.cache. windows. net: 6380 "в конце.

1 Ответ

1 голос
/ 07 мая 2020

вы используете неправильный метод, вы должны использовать это:

 "[concat(resourceGroup().name, '-', parameters('redisCacheName'))]"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...