如何使用ARM模板添加Azure Traffic Manager端点?

时间:2018-02-05 19:18:52

标签: azure arm-template azure-traffic-manager

我正在尝试将端点添加到现有的Azure流量管理器。使用NULL部署下面的模板时,它会删除以前的端点配置。

是否可以通过ARM模板将端点添加到现有流量管理器而不删除以前的?或建议使用Azure PowerShell客户端吗?

New-AzureRmResourceGroupDeployment

作为类比,可以将访问策略逐步添加到Azure Key Vault,如下所示:

{
    "$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')]"
                        }
                    }
                ]
            }
        }
    ]
}

2 个答案:

答案 0 :(得分:3)

是的,你可以。

诀窍是要了解Traffic Manager端点同时是配置文件的属性,也是它们自身的子资源。

因此,您的模板可以将端点部署为子资源。这不会影响其他端点或任何其他配置文件属性。

例如,请查看模板库中的Azure Traffic Manager / Web Apps示例。Traffic Manager template

该示例使用CopyIndex循环以递增方式部署多个端点,每个Web App一个端点。您可以简化此操作,删除循环,以增量方式添加单个端点。

答案 1 :(得分:2)

它是可行的,但是由于配置是声明性的,你需要指定所有现有的端点并为它们添加一个新端点,否则它们会像你观察到的那样被删除。

模板中未指定的任何内容都将被删除;)