2016-11-25 6 views
0

Я имею в шаблоне ARM:ARM Template Concat ресурсы

"parameters": { 
    "applications": { 
     "value": "app1|app2|...|app(n)" 
    } 
}, 
"variables": { 
    "applications": "[split(parameters('applications'), '|')]" 
}, 

{ 
    "name": "[concat('notificationhub', copyIndex())]", 
    "type": "Microsoft.Resources/deployments", 
    "apiVersion": "2016-09-01", 
    "dependsOn": [ 
     "[concat('Microsoft.NotificationHubs/namespaces/',variables('notificationHubNamespace'))]" 
    ], 
    "copy": { 
     "name": "notificationhubCopy", 
     "count": "[length(variables('applications'))]" 
    }, 
    "parameters": { 
     "notificationHubNamespace": { "value" : "variables('notificationHubNamespace')]" }, 
     "notificationHubName": { "value": "[concat('notificationhub-', variables('applications')[copyIndex()])]" }, 
     ...   
     } 
    } 
}, 

Как Concat созданный notificationhub1 и notificationhub2 в одно значение в настройках приложения, как

«notificationhub1.connection | notificationhub2.connection | ... | notificationhub (n) .connection "

или есть возможность динамически создавать в настройках приложения на основе свойств счета с соответствующими значениями?

{ 
    "name": "[variables('webappName')]", 
    "type": "Microsoft.Web/sites", 
    "location": "[resourceGroup().location]", 
    "resources": [ 
    { 
     "name": "appsettings", 
     "type": "config", 
     "properties": { 
      "MobileApps": "[parameters('applications')]", 
      "NotificationHubs": "???", 
       -- OR -- 
      "App1NotificationHub": "notificationhub1.connection" 
      "App2NotificationHub": "notificationhub2.connection" 
      "App(n)NotificationHub": "notificationhubn(n).connection" 
     } 

    } 
}, 
+0

Что вы хотите контактировать? идентификатор ресурса? – 4c74356b41

+0

Я хочу конкат [listKeys (resourceId ('Microsoft.EventHub/namespaces/authorizationRules', 'eventHubNamespaceName', 'keyName'), '2015-08-01'). PrimaryConnectionString] foreach приложения. Или я каким-либо другим способом включаю в настройки приложения eventhub для каждого приложения. – Leszek

+0

конкат с чем? – 4c74356b41

ответ

0

Я не могу быть 100% уверен в этом, но, глядя на то, что у вас есть здесь что-то, как это должно работать:

[concat(listKeys(resourceId('Microsoft.EventHub/namespaces/authoriz‌​ationRules', 'eventHubNamespaceName', 'keyName'),'2015-08-01').primaryConnectionString, '|', listKeys(resourceId('Microsoft.EventHub/namespaces/authoriz‌​ationRules', 'eventHubNamespaceName', 'keyName'),'2015-08-01').primaryConnectionString)] 

я не могу проверить, если listkeys для eventhubs работают как это, но когда вы выясните, как работают команды listkeys, вы должны вставить это в пример выше.
Также '|' может потребоваться экранирование. Я полагаю, что побег делается с \.

Редактировать: Опять же, я не уверен в этом, я никогда не пробовал, но вы бы хотели использовать этот link и попытаться воспроизвести его с помощью концентраторов уведомлений вместо учетных записей хранилища.

+0

Это хорошо с жестко закодированными 2 значениями приложения, но это значение будет передано в шаблон. Это может быть один или десять. "приложения": { "value": "app1 | app2 | ..." } – Leszek

+0

ах, у меня возникла ваша идея. держись, позволь мне подумать об этом. – 4c74356b41