Как добавить конечную точку Azure Traffic Manager с помощью шаблонов ARM?

Я пытаюсь добавить конечную точку в существующий диспетчер трафика Azure. При развертывании шаблона ниже с New-AzureRmResourceGroupDeployment стирает предыдущие конфигурации конечных точек.

Можно ли добавить конечную точку в существующий диспетчер трафика с помощью шаблонов ARM, не удаляя предыдущие? Или рекомендуется использовать вместо этого клиент Azure PowerShell?

{
    "$schema": "http://schema.management.azure.com/schemas/2014-04-01-preview/deploymentTemplate.json",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "trafficManagerName": {
            "type": "String"
        },
        "webAppName": {
            "type": "String"
        },
        "webAppLocationRegion": {
            "type": "String"
        },
        "monitorPath": {
            "type": "String"
        }
    },
    "resources": [
        {
            "type": "Microsoft.Network/trafficManagerProfiles",
            "name": "[parameters('trafficManagerName')]",
            "apiVersion": "2017-05-01",
            "location": "global",
            "properties": {
                "profileStatus": "Enabled",
                "trafficRoutingMethod": "Performance",
                "dnsConfig": {
                    "relativeName": "[parameters('trafficManagerName')]",
                    "ttl": 70
                },
                "monitorConfig": {
                    "protocol": "HTTPS",
                    "port": 443,
                    "path": "[parameters('monitorPath')]"
                },
                "endpoints": [
                    {
                        "name": "[parameters('webAppName')]",
                        "type": "Microsoft.Network/trafficManagerProfiles/azureEndpoints",
                        "properties": {
                            "endpointStatus": "Enabled",
                            "targetResourceId": "[resourceId('Microsoft.Web/sites', parameters('webAppName'))]",
                            "weight": 1,
                            "priority": 1,
                            "endpointLocation": "[parameters('webAppLocationRegion')]"
                        }
                    }
                ]
            }
        }
    ]
}

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

{
  "type": "Microsoft.KeyVault/vaults/accessPolicies",
  "name": "[concat(parameters('keyVaultSettings').name, '/add')]", <!-- notice the "/add" -->
  "apiVersion": "2015-06-01",        
  "properties": {
      "mode": "Incremental", 
      "accessPolicies": [
        {
          "tenantId": "[reference(concat(resourceId('Microsoft.Web/sites', parameters('webAppName')),'/providers/Microsoft.ManagedIdentity/Identities/default'), '2015-08-31-PREVIEW').tenantId]",
          "objectId": "[reference(concat(resourceId('Microsoft.Web/sites', parameters('webAppName')),'/providers/Microsoft.ManagedIdentity/Identities/default'), '2015-08-31-PREVIEW').principalId]",
          "permissions": {
            "secrets": [
              "get",
              "list"
            ]
          }
        }
    ]
  }
}

2 ответа

Да, ты можешь.

Хитрость заключается в том, чтобы понять, что конечные точки Traffic Manager одновременно являются как свойствами профиля, так и самостоятельными дочерними ресурсами.

Поэтому ваш шаблон может развернуть конечную точку как дочерний ресурс. Это не повлияет на другие конечные точки или любые другие свойства профиля.

Для примера взгляните на образец Azure Traffic Manager / Web Apps в галерее шаблонов. Шаблон диспетчера трафика.

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

Это возможно, но из-за того, что конфигурация является декларативной, вам нужно указать все существующие конечные точки и добавить новые к ним, иначе они будут удалены, как вы наблюдаете.

все, что не указано в шаблоне, будет удалено;)

Другие вопросы по тегам