Встроенный объект как значение параметра для развертывания связанного шаблона - PullRequest
0 голосов
/ 09 октября 2018

Я хотел бы иметь возможность передавать встроенный объект в качестве значения параметра в связанный шаблон.Сценарий использования может состоять в том, что у меня есть шаблон, который развертывает служебную шину (или некоторый другой ресурс) и шаблон, который развертывает веб-приложение.Я хочу создать шаблон, который объединяет два компонента.Мне бы хотелось, чтобы шаблон веб-приложения имел параметр объекта с именем userProvidedAppSettings, который можно объединить с некоторыми значениями по умолчанию, а затем назначить этот результирующий объект в качестве значения свойств ресурса Microsoft.Web / site / config / appsettings.

Похоже, что в настоящее время вы не можете использовать функции reference или listkeys во встроенном значении объекта для параметра, см. userProvidedAppSettings в приведенном ниже примере.

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

{
    "apiVersion": "[parameters('apiVersion')]",
    "name": "[variables('serviceBusDeploymentName')]",
    "type": "Microsoft.Resources/deployments",
    "properties": {
        "mode": "Incremental",
        "templateLink": {
            "uri": "[parameters('templateOneUri')]",
            "contentVersion": "1.0.0.0"
         },
         "parameters": {
             "environment": { "value": "[parameters('environment')]" },
             "appName": { "value": "[parameters('appName')]" }
          }
     }
},
{
        "apiVersion": "[parameters('apiVersion')]",
        "name": "[variables('applicationDeploymentName')]",
        "type": "Microsoft.Resources/deployments",
        "properties": {
            "mode": "Incremental",
            "templateLink": {
                "uri": "[parameters('templateTwoUri')]",
                "contentVersion": "1.0.0.0"
             },
             "parameters": {
                 "environment": { "value": "[parameters('environment')]" },
                 "appName": { "value": "[parameters('appName')]" },
                 "userProvidedAppSettings" : { "value": { "serviceBusConnectionString": "[reference(variables('serviceBusDeploymentName')).outputs.connectionString.value]" } }
              }
         }
    }

РЕДАКТИРОВАТЬ:

Чтобы пояснить, это о поведении связанных значений параметров шаблона.Я специально спрашиваю об этом:

"parameters": {
    // Allowed:
    "param1": { "value": "[parameters('environment')]" },
    "param2": { "value": "[reference('otherDeployment').outputs.something.value]" },
    "param3": { "value": { "this": "is allowed",
                           "inline": "is allowed" } },
    // NOT Allowed
    "param4": { "value": { "this": "is NOT allowed".
                           "foo": "[reference('otherDeployment').outputs.something.value]" } }
}

reference выходные данные разрешены в качестве значений, встроенные объекты разрешены в качестве значений, но встроенные объекты, значения которых включают reference (или неявную ссылку из listфункции) НЕ допускаются.Мне интересно, возможно ли это с помощью другого соглашения или его следует добавить в список требуемых функций.

1 Ответ

0 голосов
/ 12 октября 2018

По вашей проблеме, не уверен, но вы можете попробовать ссылки и вложенные шаблоны .Вы можете получить значение шаблона ссылки в основном шаблоне.

Вы можете определить переменную в выходных данных шаблона ссылки и использовать ее в основном шаблоне.Вот простой пример здесь .Надеюсь, это поможет вам!

...