使用 ARM 模板配置多值路由方法
本文介绍如何使用 Azure 资源管理器模板(ARM 模板)创建采用最小子功能的嵌套式多值配置文件。
Azure 资源管理器模板是定义项目基础结构和配置的 JavaScript 对象表示法 (JSON) 文件。 模板使用声明性语法。 你可以在不编写用于创建部署的编程命令序列的情况下,描述预期部署。
如果你的环境满足先决条件,并且你熟悉如何使用 ARM 模板,请选择“部署到 Azure”按钮。 Azure 门户中会打开模板。
先决条件
如果没有 Azure 订阅,请在开始前创建一个试用版订阅。
两个现有的 Azure 流量管理器配置文件。 若要详细了解如何创建 Azure 流量管理器配置文件,请参阅快速入门:使用 ARM 模板创建流量管理器配置文件。
查看模板
本快速入门中使用的模板来自 Azure 快速启动模板。
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"TMProfileParent": {
"type": "string",
"metadata": {
"description": "Name of the parent profile for the nested traffic manager endpoints"
}
},
"existingTMProfileName1": {
"type": "string",
"metadata": {
"description": "Name of the existing Traffic Manager endpoint profile 1"
}
},
"TMProfileDNS1": {
"type": "string",
"metadata": {
"description": "Name of the existing Traffic Manager DNS name 1"
}
},
"existingTMProfileName2": {
"type": "string",
"metadata": {
"description": "Name of the existing Traffic Manager endpoint profile 2"
}
},
"TMProfileDNS2": {
"type": "string",
"metadata": {
"description": "Name of the existing Traffic Manager DNS name 2"
}
}
},
"variables": {
"targetid1":"[resourceid('Microsoft.Network/trafficManagerProfiles',parameters('existingTMProfileName1'))]",
"targetid2":"[resourceid('Microsoft.Network/trafficManagerProfiles',parameters('existingTMProfileName2'))]"
},
"resources": [
{
"type": "Microsoft.Network/trafficManagerProfiles",
"apiVersion": "2018-08-01",
"name": "[parameters('TMProfileParent')]",
"location": "global",
"properties": {
"profileStatus": "Enabled",
"trafficRoutingMethod": "Priority",
"dnsConfig": {
"relativeName": "[parameters('TMProfileParent')]",
"ttl": 90
},
"monitorConfig": {
"profileMonitorStatus": "Enabled",
"protocol": "HTTP",
"port": 80,
"path": "/",
"intervalInSeconds": 30,
"toleratedNumberOfFailures": 3,
"timeoutInSeconds": 10
},
"endpoints": [
{
"name": "multivalue",
"type": "Microsoft.Network/trafficManagerProfiles/nestedEndpoints",
"properties": {
"endpointStatus": "Enabled",
"endpointMonitorStatus": "Online",
"targetResourceId": "[variables('targetid1')]",
"target": "[parameters('TMProfileDNS1')]",
"weight": 100,
"priority": 1,
"minChildEndpoints": 1,
"minChildEndpointsIPv4": 3,
"minChildEndpointsIPv6": 2
}
},
{
"name": "weighted",
"type": "Microsoft.Network/trafficManagerProfiles/nestedEndpoints",
"properties": {
"endpointStatus": "Enabled",
"endpointMonitorStatus": "Online",
"targetResourceId": "[variables('targetid2')]",
"target": "[parameters('TMProfileDNS2')]",
"weight": 1,
"priority": 2,
"minChildEndpoints": 1
}
}
],
"trafficViewEnrollmentStatus": "Disabled",
"maxReturn": 0
}
}
]
}
该模板中定义了两个 Azure 资源:
若要查找与 Azure 流量管理器相关的更多模板,请参阅 Azure 快速入门模板。
部署模板
下载 Azure 快速启动模板并在本地计算机上将其另存为
azuredeploy.json
文件。 使用每个参数的部署值更新模板。模板部署从两个现有 Azure 流量管理器配置文件中添加两个嵌套式终结点。
资源组名称是包含现有配置文件的现有资源组。
注意
“existingTMProfileName1”、“existingTMProfileName2”、“TMProfileDNS1”和“TMProfileDNS2”必须与现有的流量管理器配置文件匹配,以便模板可以成功部署。 如果部署失败,请从步骤 1 重新开始。
使用管理员特权打开 Powershell 控制台,然后运行以下 cmdlet。
$resourceGroupName = Read-Host -Prompt "Enter name of resource group of the existing traffic manager profiles" New-AzResourceGroupDeployment -ResourceGroupName $resourceGroupName -TemplateFile <azuredeploy.json>
部署模板需要几分钟时间。 完成后,输出类似于:
使用 Azure PowerShell 部署模板。 除了 Azure PowerShell,还可以使用 Azure 门户、Azure CLI 和 REST API。 若要了解其他部署方法,请参阅部署模板。
验证部署
使用 Get-AzTrafficManagerProfile 验证是否向配置文件添加了嵌套式终结点。 对于
-Name
,输入部署模板时输入的父流量管理器配置文件的名称。Get-AzTrafficManagerProfile -ResourceGroupName myResourceGroup -Name tmprofileparent-1 | Select Endpoints
输出类似于:
清理资源
如果不再需要流量管理器配置文件,请删除资源组。 此命令删除流量管理器配置文件和所有相关资源。
若要删除资源组,请使用 Remove-AzResourceGroup
cmdlet:
Remove-AzResourceGroup -Name <your resource group name>
后续步骤
在本快速入门中,你添加了采用嵌套式终结点和最小子功能的多值路由方法。
若要详细了解如何路由流量,请继续学习流量管理器教程。