1

У меня есть шаблон ARM, который создает произвольное число Azure WebApps используя copy конструкцию, как и (не соответствующие части удалены):Как динамически создавать конечные точки диспетчера трафика в шаблоне ARM?

{ 
    "parameters": { 
    "numWebsites": { 
     "type": "int", 
     "defaultValue": 2 
    } 
    }, 
    "resources": [ 
    "name": "[concat('webapp-', copyIndex()]", 
    "type": "Microsoft.Web/sites", 
    "copy": { 
     "name": "websitescopy", 
     "count": "[parameters('numWebsites')]" 
    } 
    ] 
} 

Я хотел бы также создать профиль диспетчера трафика с помощью конечной точки для каждого созданного веб-сайта. Однако, похоже, нет способа использовать copy в параметре endpoints ресурса диспетчера трафика. Все примеры, которые я видел, имеют конечные точки explicitly listed out, но я не знаю, сколько webapps создается заблаговременно, так что это не работает для меня.

Как я могу генерировать конечные точки в своем шаблоне динамически? Я попытался использовать оператор copy в ресурсе trafficManagerProfiles, но он создает несколько профилей с одной конечной точкой.

ответ

1

Вот пример создания внешней конечной точки в качестве «дочернего ресурса», профиль создается отдельно без каких-либо конечных точек, а затем этот ресурс добавляет конечную точку. Он использует внешнюю конечную точку, но должен работать так же хорошо для webapp и совместим со стандартной функцией копирования.

HtH, Gareth

{ 
     "apiVersion": "2015-11-01", 
     "type": "Microsoft.Network/trafficManagerProfiles/ExternalEndpoints", 
     "name": "ExternalEndpointExample/endpoint1", 
     "dependsOn": ["Microsoft.Network/trafficManagerProfiles/ExternalEndpointExample"], 
     "location": "global", 
     "properties": { 
      "target": "ep1.microsoft.com", 
      "endpointStatus": "Enabled", 
      "endpointLocation": "northeurope" 
     } 
    } 
1

Я не проверял это еще, но это, кажется, что копия/copyIndex теперь должен быть поддерживаемый сценарий для конечных точек управления трафиком:

https://feedback.azure.com/forums/217313-networking/suggestions/12907815-support-copy-copyindex-in-traffic-manager-depend

Здесь представляет собой образец, который я осуществил некоторое время назад:

{ 
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", 
    "contentVersion": "1.0.0.0", 
    "parameters": { 
    "solution-abbreviation": { 
     "type": "string", 
     "minLength": 1 
    }, 
    "environment-abbreviation": { 
     "type": "string", 
     "allowedValues": [ 
     "dev", 
     "test", 
     "prod" 
     ] 
    }, 

    "userinterface-abbreviation": { 
     "type": "string", 
     "minLength": 1 
    }, 
    "userinterface-locations": { 
     "type": "array", 
     "minLength": 1 
    }, 
    "userinterface-appserviceplan-sku": { 
     "type": "string", 
     "allowedValues": [ 
     "Free", 
     "Shared", 
     "Basic", 
     "Standard" 
     ] 
    }, 
    "userinterface-appserviceplan-workersize": { 
     "type": "string", 
     "allowedValues": [ 
     "0", 
     "1", 
     "2" 
     ] 
    }, 
    "userinterface-appserviceplan-numberofworkers": { 
     "type": "int" 
    } 
    }, 
    "variables": { 
    "userinterface-trafficmanager-name": "[concat(parameters('solution-abbreviation'), '-', parameters('environment-abbreviation'), '-', parameters('userinterface-abbreviation'))]" 
    }, 
    "resources": [ 
    { 
     "name": "[concat(variables('userinterface-trafficmanager-name'), '-', parameters('userinterface-locations')[copyIndex()])]", 
     "type": "Microsoft.Web/serverfarms", 
     "location": "[parameters('userinterface-locations')[copyIndex()]]", 
     "apiVersion": "2014-06-01", 
     "dependsOn": [ ], 
     "tags": { 
     "displayName": "[concat(variables('userinterface-trafficmanager-name'), '-', parameters('userinterface-locations')[copyIndex()])]" 
     }, 
     "copy": { 
     "name": "[concat('serverfarms', '-copy')]", 
     "count": "[length(parameters('userinterface-locations'))]" 
     }, 
     "properties": { 
     "name": "[concat(variables('userinterface-trafficmanager-name'), '-', parameters('userinterface-locations')[copyIndex()])]", 
     "sku": "[parameters('userinterface-appserviceplan-sku')]", 
     "workerSize": "[parameters('userinterface-appserviceplan-workersize')]", 
     "numberOfWorkers": "[parameters('userinterface-appserviceplan-numberofworkers')]" 
     } 
    } 
    ], 
    "outputs": { 
    } 
} 
+0

Эта ссылка по-прежнему не показывает пример того, как вы создадите эти конечные точки, есть ли у вас пример того, как это будет работать? –

+0

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

Смежные вопросы