你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Microsoft.Network frontDoors 2020-01-01

Bicep 资源定义

frontDoors 资源类型可以部署到:

有关每个 API 版本中更改的属性的列表,请参阅 更改日志

资源格式

若要创建 Microsoft.Network/frontDoors 资源,请将以下 Bicep 添加到模板。

resource symbolicname 'Microsoft.Network/frontDoors@2020-01-01' = {
  name: 'string'
  location: 'string'
  tags: {
    tagName1: 'tagValue1'
    tagName2: 'tagValue2'
  }
  properties: {
    backendPools: [
      {
        id: 'string'
        name: 'string'
        properties: {
          backends: [
            {
              address: 'string'
              backendHostHeader: 'string'
              enabledState: 'string'
              httpPort: int
              httpsPort: int
              priority: int
              privateLinkAlias: 'string'
              privateLinkApprovalMessage: 'string'
              weight: int
            }
          ]
          healthProbeSettings: {
            id: 'string'
          }
          loadBalancingSettings: {
            id: 'string'
          }
        }
      }
    ]
    backendPoolsSettings: {
      enforceCertificateNameCheck: 'string'
      sendRecvTimeoutSeconds: int
    }
    enabledState: 'string'
    friendlyName: 'string'
    frontendEndpoints: [
      {
        id: 'string'
        name: 'string'
        properties: {
          hostName: 'string'
          sessionAffinityEnabledState: 'string'
          sessionAffinityTtlSeconds: int
          webApplicationFirewallPolicyLink: {
            id: 'string'
          }
        }
      }
    ]
    healthProbeSettings: [
      {
        id: 'string'
        name: 'string'
        properties: {
          enabledState: 'string'
          healthProbeMethod: 'string'
          intervalInSeconds: int
          path: 'string'
          protocol: 'string'
        }
      }
    ]
    loadBalancingSettings: [
      {
        id: 'string'
        name: 'string'
        properties: {
          additionalLatencyMilliseconds: int
          sampleSize: int
          successfulSamplesRequired: int
        }
      }
    ]
    routingRules: [
      {
        id: 'string'
        name: 'string'
        properties: {
          acceptedProtocols: [
            'string'
          ]
          enabledState: 'string'
          frontendEndpoints: [
            {
              id: 'string'
            }
          ]
          patternsToMatch: [
            'string'
          ]
          routeConfiguration: {
            '@odata.type': 'string'
            // For remaining properties, see RouteConfiguration objects
          }
          rulesEngine: {
            id: 'string'
          }
        }
      }
    ]
  }
}

RouteConfiguration 对象

设置 @odata.type 属性以指定对象的类型。

对于 #Microsoft.Azure.FrontDoor.Models.FrontdoorForwardingConfiguration,请使用:

  '@odata.type': '#Microsoft.Azure.FrontDoor.Models.FrontdoorForwardingConfiguration'
  backendPool: {
    id: 'string'
  }
  cacheConfiguration: {
    cacheDuration: 'string'
    dynamicCompression: 'string'
    queryParameters: 'string'
    queryParameterStripDirective: 'string'
  }
  customForwardingPath: 'string'
  forwardingProtocol: 'string'

对于 #Microsoft.Azure.FrontDoor.Models.FrontdoorRedirectConfiguration,请使用:

  '@odata.type': '#Microsoft.Azure.FrontDoor.Models.FrontdoorRedirectConfiguration'
  customFragment: 'string'
  customHost: 'string'
  customPath: 'string'
  customQueryString: 'string'
  redirectProtocol: 'string'
  redirectType: 'string'

属性值

frontDoors

名称 说明
name 资源名称 字符串 (必需)

字符限制:5-64

有效字符:
字母数字和连字符。

以字母数字开头和结尾。

资源名称在 Azure 中必须是唯一的。
location 资源位置。 字符串
标记 资源标记。 标记名称和值的字典。 请参阅 模板中的标记
properties Front Door 负载均衡器的属性 FrontDoorProperties

FrontDoorProperties

名称 说明
backendPools 可用于路由规则的后端池。 BackendPool[]
backendPoolsSettings 所有 backendPools 的设置 BackendPoolsSettings
enabledState Front Door 负载均衡器的运行状态。 允许的值为“Enabled”或“Disabled” “Disabled”
“已启用”
friendlyName frontDoor 的友好名称 字符串
frontendEndpoints 可用于路由规则的前端终结点。 FrontendEndpoint[]
healthProbeSettings 与此 Front Door 实例关联的运行状况探测设置。 HealthProbeSettingsModel[]
loadBalancingSettings 与此 Front Door 实例关联的负载均衡设置。 LoadBalancingSettingsModel[]
routingRules 与此 Front Door 关联的路由规则。 RoutingRule[]

BackendPool

名称 说明 Value
id 资源 ID。 string
name 资源名称。 string
properties Front Door 后端池的属性 BackendPoolProperties

BackendPoolProperties

名称 说明
后端 此池的后端集 Backend[]
healthProbeSettings 后端池的 L7 运行状况探测设置 SubResource
loadBalancingSettings 后端池的负载均衡设置 SubResource

后端

名称 说明
address 后端的位置(IP 地址或 FQDN) string
backendHostHeader 要用作发送到后端的主机标头的值。 如果为空或未指定,则默认为传入主机。 字符串
enabledState 是否要启用此后端。 允许的值为“Enabled”或“Disabled” 'Disabled'
'Enabled'
httpPort HTTP TCP 端口号。 必须介于 1 和 65535 之间。 int
httpsPort HTTPS TCP 端口号。 必须介于 1 和 65535 之间。 int
priority 要用于负载均衡的优先级。 如果任何优先级较低的后端正常运行,则不会使用较高优先级进行负载均衡。 int
privateLinkAlias 专用链接资源的别名。 填充此可选字段表示此后端为“专用” 字符串
privateLinkApprovalMessage 要包含在审批请求中的自定义消息,用于连接到专用链接 字符串
重量 此终结点用于负载均衡的权重。 int

SubResource

名称 说明 Value
id 资源 ID。 string

BackendPoolsSettings

名称 说明
enforceCertificateNameCheck 是否对对所有后端池的 HTTPS 请求强制执行证书名称检查。 对非 HTTPS 请求没有影响。 'Disabled'
'Enabled'
sendRecvTimeoutSeconds 将请求转发到后端时发送和接收超时。 达到超时时,请求将失败并返回。 int

FrontendEndpoint

名称 说明 Value
id 资源 ID。 字符串
name 资源名称。 string
properties 前端终结点的属性 FrontendEndpointProperties

FrontendEndpointProperties

名称 说明
hostName frontendEndpoint 的主机名。 必须是域名。 string
sessionAffinityEnabledState 是否允许此主机上的会话相关性。 有效选项为“Enabled”或“Disabled” 'Disabled'
'Enabled'
sessionAffinityTtlSeconds 闲置。 将忽略此字段。 会话相关性要使用的 TTL(如果适用,以秒为单位)。 int
webApplicationFirewallPolicyLink 为每个主机 (定义Web 应用程序防火墙策略(如果适用) FrontendEndpointUpdateParametersWebApplicationFirewa...

FrontendEndpointUpdateParametersWebApplicationFirewa...

名称 说明 Value
id 资源 ID。 string

HealthProbeSettingsModel

名称 说明 Value
id 资源 ID。 string
name 资源名称。 string
properties 运行状况探测设置的属性 HealthProbeSettingsProperties

HealthProbeSettingsProperties

名称 说明
enabledState 是否对 backendPools 下定义的后端启用运行状况探测。 仅当单个已启用的后端池中有一个已启用的后端时,才能禁用运行状况探测。 'Disabled'
'Enabled'
healthProbeMethod 配置用于探测 backendPools 下定义的后端的 HTTP 方法。 'GET'
“HEAD”
intervalInSeconds 运行状况探测之间间隔的秒数。 int
path 要用于运行状况探测的路径。 默认值为“/” 字符串
protocol 用于此探测的协议方案 'Http'
'Https'

LoadBalancingSettingsModel

名称 说明 Value
id 资源 ID。 string
name 资源名称。 string
properties 负载均衡设置的属性 LoadBalancingSettingsProperties

LoadBalancingSettingsProperties

名称 说明
additionalLatencyMilliseconds 探测进入最低延迟存储桶的额外延迟(以毫秒为单位) int
sampleSize 负载均衡决策要考虑的样本数 int
successfulSamplesRequired 样本周期内必须成功的样本数 int

RoutingRule

名称 说明 Value
id 资源 ID。 字符串
name 资源名称。 string
properties Front Door 路由规则的属性 RoutingRuleProperties

RoutingRuleProperties

名称 说明
acceptedProtocols 要与此规则匹配的协议方案 包含任何一项的字符串数组:
'Http'
'Https'
enabledState 是否要启用此规则。 允许的值为“Enabled”或“Disabled” 'Disabled'
'Enabled'
frontendEndpoints 与此规则关联的前端终结点 SubResource[]
patternsToMatch 规则的路由模式。 string[]
routeConfiguration 对路由配置的引用。 RouteConfiguration
rulesEngine 对要应用于此路由的特定规则引擎配置的引用。 SubResource

RouteConfiguration

名称 说明
@odata.type 设置对象类型 #Microsoft.Azure.FrontDoor.Models.FrontdoorForwardingConfiguration
#Microsoft.Azure.FrontDoor.Models.FrontdoorRedirectConfiguration (必需)

ForwardingConfiguration

名称 说明
@odata.type 需要“#Microsoft.Azure.FrontDoor.Models.FrontdoorForwardingConfiguration” ()
backendPool 对此规则路由到的 BackendPool 的引用。 SubResource
cacheConfiguration 与此规则关联的缓存配置。 CacheConfiguration
customForwardingPath 用于重写此规则匹配的资源路径的自定义路径。 保留为空以使用传入路径。 字符串
forwardingProtocol 将流量转发到后端时此规则将使用的协议。 “HttpOnly”
“HttpsOnly”
“MatchRequest”

CacheConfiguration

名称 说明
cacheDuration 需要缓存内容的持续时间。 允许的格式采用 ISO 8601 格式 (http://en.wikipedia.org/wiki/ISO_8601#Durations) 。 HTTP 要求该值不超过一年 字符串
dynamicCompression 是否对缓存内容使用动态压缩 “Disabled”
“已启用”
queryParameters 用于包含或排除 (逗号分隔) 的查询参数。 字符串
queryParameterStripDirective 在形成缓存密钥时处理 URL 查询词。 “StripAll”
“StripAllExcept”
“StripNone”
“StripOnly”

RedirectConfiguration

名称 说明
@odata.type 需要“#Microsoft.Azure.FrontDoor.Models.FrontdoorRedirectConfiguration” ()
customFragment 要添加到重定向 URL 的片段。 片段是 #之后的 URL 的一部分。 不要包含 #。 string
customHost 要重定向的主机。 留空以使用传入主机作为目标主机。 字符串
customPath 要重定向的完整路径。 路径不能为空,并且必须以 /开头。 保留为空,以使用传入路径作为目标路径。 字符串
customQueryString 要放置在重定向 URL 中的查询字符串集。 设置此值将替换任何现有的查询字符串;保留空以保留传入的查询字符串。 查询字符串必须采用 {key}={value} 格式。 第一个? 和 & 将自动添加,因此不要将它们包含在前面,而是使用 & 分隔多个查询字符串。 字符串
redirectProtocol 流量重定向到的目标协议 “HttpOnly”
“HttpsOnly”
“MatchRequest”
redirectType 规则在重定向流量时将使用的重定向类型。 “找到”
“已移动”
“PermanentRedirect”
“TemporaryRedirect”

快速入门模板

以下快速入门模板部署此资源类型。

模板 说明
在 Azure API 管理前面创建 Azure Front Door

部署到 Azure
此示例演示如何在 Azure API 管理前面使用 Azure Front Door 作为全局负载均衡器。
创建基本 Front Door

部署到 Azure
此模板使用单个后端创建基本的 Front Door 配置。
Create Front Door with caching enabled for certain routes(通过为某些路由启用的缓存创建 Front Door)

部署到 Azure
此模板创建一个 Front Door,其中为定义的路由配置启用了缓存,从而缓存工作负载的任何静态资产。
创建具有多个后端和后端池的 Front Door

部署到 Azure
此模板创建一个 Front Door,该 Front Door 为后端池中的多个后端以及基于 URL 路径跨后端池配置负载均衡。
使用 HTTP 到 HTTPS 重定向创建 Front Door

部署到 Azure
此模板为 HTTP 到 HTTPS 重定向创建 Front Door 配置。
使用 Front Door 添加自定义域和托管证书

部署到 Azure
此模板使用 Front Door 载入并保护自定义域
使用 Front Door 添加自定义域和自定义证书

部署到 Azure
此模板使用客户管理的证书加入并使用 Front Door 保护自定义域
Control Health Probes for your backends on Front Door(在 Front Door 上控制后端的健康状况探测)

部署到 Azure
此模板通过设置探测路径以及发送探测的间隔来更新 Front Door 以更改运行状况探测设置。
使用 Active-Standby 配置创建 Front Door

部署到 Azure
此模板创建一个 Front Door,用于演示 Active-Standby 应用程序拓扑的基于优先级的路由。
Configure Session Affinity for your Front Door host names(为 Front Door 主机名配置会话相关性)

部署到 Azure
此模板更新 Front Door 以启用前端主机的会话相关性,从而将来自同一用户会话的后续流量发送到同一后端。

ARM 模板资源定义

frontDoors 资源类型可以部署到:

有关每个 API 版本中已更改属性的列表,请参阅 更改日志

资源格式

若要创建 Microsoft.Network/frontDoors 资源,请将以下 JSON 添加到模板。

{
  "type": "Microsoft.Network/frontDoors",
  "apiVersion": "2020-01-01",
  "name": "string",
  "location": "string",
  "tags": {
    "tagName1": "tagValue1",
    "tagName2": "tagValue2"
  },
  "properties": {
    "backendPools": [
      {
        "id": "string",
        "name": "string",
        "properties": {
          "backends": [
            {
              "address": "string",
              "backendHostHeader": "string",
              "enabledState": "string",
              "httpPort": "int",
              "httpsPort": "int",
              "priority": "int",
              "privateLinkAlias": "string",
              "privateLinkApprovalMessage": "string",
              "weight": "int"
            }
          ],
          "healthProbeSettings": {
            "id": "string"
          },
          "loadBalancingSettings": {
            "id": "string"
          }
        }
      }
    ],
    "backendPoolsSettings": {
      "enforceCertificateNameCheck": "string",
      "sendRecvTimeoutSeconds": "int"
    },
    "enabledState": "string",
    "friendlyName": "string",
    "frontendEndpoints": [
      {
        "id": "string",
        "name": "string",
        "properties": {
          "hostName": "string",
          "sessionAffinityEnabledState": "string",
          "sessionAffinityTtlSeconds": "int",
          "webApplicationFirewallPolicyLink": {
            "id": "string"
          }
        }
      }
    ],
    "healthProbeSettings": [
      {
        "id": "string",
        "name": "string",
        "properties": {
          "enabledState": "string",
          "healthProbeMethod": "string",
          "intervalInSeconds": "int",
          "path": "string",
          "protocol": "string"
        }
      }
    ],
    "loadBalancingSettings": [
      {
        "id": "string",
        "name": "string",
        "properties": {
          "additionalLatencyMilliseconds": "int",
          "sampleSize": "int",
          "successfulSamplesRequired": "int"
        }
      }
    ],
    "routingRules": [
      {
        "id": "string",
        "name": "string",
        "properties": {
          "acceptedProtocols": [ "string" ],
          "enabledState": "string",
          "frontendEndpoints": [
            {
              "id": "string"
            }
          ],
          "patternsToMatch": [ "string" ],
          "routeConfiguration": {
            "@odata.type": "string"
            // For remaining properties, see RouteConfiguration objects
          },
          "rulesEngine": {
            "id": "string"
          }
        }
      }
    ]
  }
}

RouteConfiguration 对象

设置 @odata.type 属性以指定对象的类型。

对于 #Microsoft.Azure.FrontDoor.Models.FrontdoorForwardingConfiguration,请使用:

  "@odata.type": "#Microsoft.Azure.FrontDoor.Models.FrontdoorForwardingConfiguration",
  "backendPool": {
    "id": "string"
  },
  "cacheConfiguration": {
    "cacheDuration": "string",
    "dynamicCompression": "string",
    "queryParameters": "string",
    "queryParameterStripDirective": "string"
  },
  "customForwardingPath": "string",
  "forwardingProtocol": "string"

对于 #Microsoft.Azure.FrontDoor.Models.FrontdoorRedirectConfiguration,请使用:

  "@odata.type": "#Microsoft.Azure.FrontDoor.Models.FrontdoorRedirectConfiguration",
  "customFragment": "string",
  "customHost": "string",
  "customPath": "string",
  "customQueryString": "string",
  "redirectProtocol": "string",
  "redirectType": "string"

属性值

frontDoors

名称 说明 Value
type 资源类型 “Microsoft.Network/frontDoors”
apiVersion 资源 API 版本 '2020-01-01'
name 资源名称 字符串 (必需)

字符限制:5-64

有效字符:
字母数字和连字符。

以字母数字开头和结尾。

资源名称在 Azure 中必须是唯一的。
location 资源位置。 字符串
标记 资源标记。 标记名称和值的字典。 请参阅 模板中的标记
properties Front Door 负载均衡器的属性 FrontDoorProperties

FrontDoorProperties

名称 说明
backendPools 可用于路由规则的后端池。 BackendPool[]
backendPoolsSettings 所有 backendPools 的设置 BackendPoolsSettings
enabledState Front Door 负载均衡器的运行状态。 允许的值为“Enabled”或“Disabled” 'Disabled'
'Enabled'
friendlyName frontDoor 的友好名称 string
frontendEndpoints 可用于路由规则的前端终结点。 FrontendEndpoint[]
healthProbeSettings 与此 Front Door 实例关联的运行状况探测设置。 HealthProbeSettingsModel[]
loadBalancingSettings 与此 Front Door 实例关联的负载均衡设置。 LoadBalancingSettingsModel[]
routingRules 与此 Front Door 关联的路由规则。 RoutingRule[]

BackendPool

名称 说明 Value
id 资源 ID。 字符串
name 资源名称。 string
properties Front Door 后端池的属性 BackendPoolProperties

BackendPoolProperties

名称 说明
后端 此池的后端集 Backend[]
healthProbeSettings 后端池的 L7 运行状况探测设置 SubResource
loadBalancingSettings 后端池的负载均衡设置 SubResource

后端

名称 说明
address 后端的位置(IP 地址或 FQDN) string
backendHostHeader 要用作发送到后端的主机标头的值。 如果为空或未指定,则默认为传入主机。 字符串
enabledState 是否要启用此后端。 允许的值为“Enabled”或“Disabled” “Disabled”
“已启用”
httpPort HTTP TCP 端口号。 必须介于 1 和 65535 之间。 int
httpsPort HTTPS TCP 端口号。 必须介于 1 和 65535 之间。 int
priority 要用于负载均衡的优先级。 如果任何优先级较低的后端正常,则不会使用较高优先级进行负载均衡。 int
privateLinkAlias 专用链接资源的别名。 填充此可选字段表示此后端为“专用” 字符串
privateLinkApprovalMessage 要包含在审批请求中的自定义消息,用于连接到专用链接 字符串
重量 此终结点用于负载均衡的权重。 int

SubResource

名称 说明 Value
id 资源 ID。 字符串

BackendPoolsSettings

名称 说明
enforceCertificateNameCheck 是否对所有后端池的 HTTPS 请求强制执行证书名称检查。 对非 HTTPS 请求没有影响。 “Disabled”
“已启用”
sendRecvTimeoutSeconds 将请求转发到后端时发送和接收超时。 达到超时后,请求将失败并返回。 int

FrontendEndpoint

名称 说明 Value
id 资源 ID。 string
name 资源名称。 string
properties 前端终结点的属性 FrontendEndpointProperties

FrontendEndpointProperties

名称 说明
hostName frontendEndpoint 的主机名。 必须是域名。 string
sessionAffinityEnabledState 是否允许此主机上的会话相关性。 有效选项为“已启用”或“已禁用” “Disabled”
'Enabled'
sessionAffinityTtlSeconds 闲置。 将忽略此字段。 会话相关性要使用的 TTL(如果适用,以秒为单位)。 int
webApplicationFirewallPolicyLink 为每个主机 (定义Web 应用程序防火墙策略(如果适用) FrontendEndpointUpdateParametersWebApplicationFirewa...

FrontendEndpointUpdateParametersWebApplicationFirewa...

名称 说明 Value
id 资源 ID。 string

HealthProbeSettingsModel

名称 说明 Value
id 资源 ID。 字符串
name 资源名称。 string
properties 运行状况探测设置的属性 HealthProbeSettingsProperties

HealthProbeSettingsProperties

名称 说明
enabledState 是否对 backendPools 下定义的后端启用运行状况探测。 仅当单个已启用的后端池中有一个已启用的后端时,才能禁用运行状况探测。 'Disabled'
'Enabled'
healthProbeMethod 配置用于探测 backendPools 下定义的后端的 HTTP 方法。 'GET'
“HEAD”
intervalInSeconds 运行状况探测之间间隔的秒数。 int
path 要用于运行状况探测的路径。 默认值为“/” string
protocol 用于此探测的协议方案 'Http'
'Https'

LoadBalancingSettingsModel

名称 说明 Value
id 资源 ID。 字符串
name 资源名称。 string
properties 负载均衡设置的属性 LoadBalancingSettingsProperties

LoadBalancingSettingsProperties

名称 说明
additionalLatencyMilliseconds 探测进入最低延迟存储桶的额外延迟(以毫秒为单位) int
sampleSize 负载均衡决策要考虑的样本数 int
successfulSamplesRequired 样本周期内必须成功的样本数 int

RoutingRule

名称 说明 Value
id 资源 ID。 字符串
name 资源名称。 string
properties Front Door 路由规则的属性 RoutingRuleProperties

RoutingRuleProperties

名称 说明
acceptedProtocols 要与此规则匹配的协议方案 包含任何一项的字符串数组:
'Http'
'Https'
enabledState 是否要启用此规则。 允许的值为“Enabled”或“Disabled” 'Disabled'
'Enabled'
frontendEndpoints 与此规则关联的前端终结点 SubResource[]
patternsToMatch 规则的路由模式。 string[]
routeConfiguration 对路由配置的引用。 RouteConfiguration
rulesEngine 对要应用于此路由的特定规则引擎配置的引用。 SubResource

RouteConfiguration

名称 说明
@odata.type 设置对象类型 #Microsoft.Azure.FrontDoor.Models.FrontdoorForwardingConfiguration
#Microsoft.Azure.FrontDoor.Models.FrontdoorRedirectConfiguration (必需)

ForwardingConfiguration

名称 说明
@odata.type 需要“#Microsoft.Azure.FrontDoor.Models.FrontdoorForwardingConfiguration” ()
backendPool 对此规则路由到的 BackendPool 的引用。 SubResource
cacheConfiguration 与此规则关联的缓存配置。 CacheConfiguration
customForwardingPath 用于重写此规则匹配的资源路径的自定义路径。 保留为空以使用传入路径。 string
forwardingProtocol 将流量转发到后端时此规则将使用的协议。 “HttpOnly”
'HttpsOnly'
“MatchRequest”

CacheConfiguration

名称 说明
cacheDuration 需要缓存内容的持续时间。 允许的格式采用 ISO 8601 格式 (http://en.wikipedia.org/wiki/ISO_8601#Durations) 。 HTTP 要求该值不超过一年 字符串
dynamicCompression 是否对缓存的内容使用动态压缩 'Disabled'
'Enabled'
queryParameters 要包含或排除 (逗号分隔) 的查询参数。 字符串
queryParameterStripDirective 形成缓存密钥时的 URL 查询词的处理。 “StripAll”
'StripAllExcept'
“StripNone”
'StripOnly'

RedirectConfiguration

名称 说明
@odata.type “#Microsoft.Azure.FrontDoor.Models.FrontdoorRedirectConfiguration” ()
customFragment 要添加到重定向 URL 的片段。 片段是 #之后的 URL 的一部分。 不要包含 #。 string
customHost 要重定向的主机。 留空以使用传入主机作为目标主机。 字符串
customPath 要重定向的完整路径。 路径不能为空,并且必须以 /开头。 留空以使用传入路径作为目标路径。 字符串
customQueryString 要放置在重定向 URL 中的查询字符串集。 设置此值将替换任何现有的查询字符串;保留空以保留传入的查询字符串。 查询字符串必须采用 {key}={value} 格式。 第一个? 和 & 将自动添加,因此不要将它们包含在前面,而是使用 & 分隔多个查询字符串。 字符串
redirectProtocol 流量重定向到的目标协议 “HttpOnly”
'HttpsOnly'
“MatchRequest”
redirectType 重定向流量时规则将使用的重定向类型。 “找到”
“已移动”
“PermanentRedirect”
“TemporaryRedirect”

快速入门模板

以下快速入门模板部署此资源类型。

模板 说明
在 Azure API 管理前面创建 Azure Front Door

部署到 Azure
此示例演示如何在 Azure API 管理前面使用 Azure Front Door 作为全局负载均衡器。
创建基本 Front Door

部署到 Azure
此模板使用单个后端创建基本的 Front Door 配置。
Create Front Door with caching enabled for certain routes(通过为某些路由启用的缓存创建 Front Door)

部署到 Azure
此模板创建一个 Front Door,该 Front Door 为定义的路由配置启用了缓存,从而缓存工作负载的任何静态资产。
创建具有多个后端和后端池的 Front Door

部署到 Azure
此模板创建一个 Front Door,其中包含为后端池中的多个后端以及基于 URL 路径跨后端池配置的负载均衡。
使用 HTTP 到 HTTPS 重定向创建 Front Door

部署到 Azure
此模板为 HTTP 到 HTTPS 重定向创建 Front Door 配置。
使用 Front Door 添加自定义域和托管证书

部署到 Azure
此模板使用 Front Door 载入并保护自定义域
使用 Front Door 添加自定义域和自定义证书

部署到 Azure
此模板使用客户管理的证书加入并保护 Front Door 的自定义域
Control Health Probes for your backends on Front Door(在 Front Door 上控制后端的健康状况探测)

部署到 Azure
此模板通过设置探测路径以及发送探测的间隔来更新 Front Door 以更改运行状况探测设置。
使用 Active-Standby 配置创建 Front Door

部署到 Azure
此模板创建一个 Front Door,用于演示 Active-Standby 应用程序拓扑的基于优先级的路由。
Configure Session Affinity for your Front Door host names(为 Front Door 主机名配置会话相关性)

部署到 Azure
此模板更新 Front Door 以启用前端主机的会话相关性,从而将后续流量从同一用户会话发送到同一后端。

Terraform (AzAPI 提供程序) 资源定义

frontDoors 资源类型可以部署到:

  • 资源组

有关每个 API 版本中更改的属性的列表,请参阅 更改日志

资源格式

若要创建 Microsoft.Network/frontDoors 资源,请将以下 Terraform 添加到模板。

resource "azapi_resource" "symbolicname" {
  type = "Microsoft.Network/frontDoors@2020-01-01"
  name = "string"
  location = "string"
  parent_id = "string"
  tags = {
    tagName1 = "tagValue1"
    tagName2 = "tagValue2"
  }
  body = jsonencode({
    properties = {
      backendPools = [
        {
          id = "string"
          name = "string"
          properties = {
            backends = [
              {
                address = "string"
                backendHostHeader = "string"
                enabledState = "string"
                httpPort = int
                httpsPort = int
                priority = int
                privateLinkAlias = "string"
                privateLinkApprovalMessage = "string"
                weight = int
              }
            ]
            healthProbeSettings = {
              id = "string"
            }
            loadBalancingSettings = {
              id = "string"
            }
          }
        }
      ]
      backendPoolsSettings = {
        enforceCertificateNameCheck = "string"
        sendRecvTimeoutSeconds = int
      }
      enabledState = "string"
      friendlyName = "string"
      frontendEndpoints = [
        {
          id = "string"
          name = "string"
          properties = {
            hostName = "string"
            sessionAffinityEnabledState = "string"
            sessionAffinityTtlSeconds = int
            webApplicationFirewallPolicyLink = {
              id = "string"
            }
          }
        }
      ]
      healthProbeSettings = [
        {
          id = "string"
          name = "string"
          properties = {
            enabledState = "string"
            healthProbeMethod = "string"
            intervalInSeconds = int
            path = "string"
            protocol = "string"
          }
        }
      ]
      loadBalancingSettings = [
        {
          id = "string"
          name = "string"
          properties = {
            additionalLatencyMilliseconds = int
            sampleSize = int
            successfulSamplesRequired = int
          }
        }
      ]
      routingRules = [
        {
          id = "string"
          name = "string"
          properties = {
            acceptedProtocols = [
              "string"
            ]
            enabledState = "string"
            frontendEndpoints = [
              {
                id = "string"
              }
            ]
            patternsToMatch = [
              "string"
            ]
            routeConfiguration = {
              @odata.type = "string"
              // For remaining properties, see RouteConfiguration objects
            }
            rulesEngine = {
              id = "string"
            }
          }
        }
      ]
    }
  })
}

RouteConfiguration 对象

设置 @odata.type 属性以指定对象的类型。

对于 #Microsoft.Azure.FrontDoor.Models.FrontdoorForwardingConfiguration,请使用:

  @odata.type = "#Microsoft.Azure.FrontDoor.Models.FrontdoorForwardingConfiguration"
  backendPool = {
    id = "string"
  }
  cacheConfiguration = {
    cacheDuration = "string"
    dynamicCompression = "string"
    queryParameters = "string"
    queryParameterStripDirective = "string"
  }
  customForwardingPath = "string"
  forwardingProtocol = "string"

对于 #Microsoft.Azure.FrontDoor.Models.FrontdoorRedirectConfiguration,请使用:

  @odata.type = "#Microsoft.Azure.FrontDoor.Models.FrontdoorRedirectConfiguration"
  customFragment = "string"
  customHost = "string"
  customPath = "string"
  customQueryString = "string"
  redirectProtocol = "string"
  redirectType = "string"

属性值

frontDoors

名称 说明 Value
type 资源类型 “Microsoft.Network/frontDoors@2020-01-01”
name 资源名称 字符串 (必需)

字符限制:5-64

有效字符:
字母数字和连字符。

以字母数字开头和结尾。

资源名称在 Azure 中必须是唯一的。
location 资源位置。 string
parent_id 若要部署到资源组,请使用该资源组的 ID。 字符串 (必需)
标记 资源标记。 标记名称和值的字典。
properties Front Door 负载均衡器的属性 FrontDoorProperties

FrontDoorProperties

名称 说明
backendPools 可用于路由规则的后端池。 BackendPool[]
backendPoolsSettings 所有 backendPools 的设置 BackendPoolsSettings
enabledState Front Door 负载均衡器的运行状态。 允许的值为“Enabled”或“Disabled” “Disabled”
“已启用”
friendlyName frontDoor 的友好名称 字符串
frontendEndpoints 可用于路由规则的前端终结点。 FrontendEndpoint[]
healthProbeSettings 与此 Front Door 实例关联的运行状况探测设置。 HealthProbeSettingsModel[]
loadBalancingSettings 与此 Front Door 实例关联的负载均衡设置。 LoadBalancingSettingsModel[]
routingRules 与此 Front Door 关联的路由规则。 RoutingRule[]

BackendPool

名称 说明 Value
id 资源 ID。 string
name 资源名称。 string
properties Front Door 后端池的属性 BackendPoolProperties

BackendPoolProperties

名称 说明
后端 此池的后端集 Backend[]
healthProbeSettings 后端池的 L7 运行状况探测设置 SubResource
loadBalancingSettings 后端池的负载均衡设置 SubResource

后端

名称 说明
address 后端的位置(IP 地址或 FQDN) 字符串
backendHostHeader 要用作发送到后端的主机标头的值。 如果为空或未指定,则默认为传入主机。 字符串
enabledState 是否要启用此后端。 允许的值为“Enabled”或“Disabled” “Disabled”
“Enabled”
httpPort HTTP TCP 端口号。 必须介于 1 和 65535 之间。 int
httpsPort HTTPS TCP 端口号。 必须介于 1 和 65535 之间。 int
priority 要用于负载均衡的优先级。 如果任何优先级较低的后端正常运行,则不会使用较高优先级进行负载均衡。 int
privateLinkAlias 专用链接资源的别名。 填充此可选字段表示此后端为“专用” 字符串
privateLinkApprovalMessage 要包含在审批请求中的自定义消息,用于连接到专用链接 string
重量 此终结点用于负载均衡的权重。 int

SubResource

名称 说明 Value
id 资源 ID。 string

BackendPoolsSettings

名称 说明
enforceCertificateNameCheck 是否对对所有后端池的 HTTPS 请求强制执行证书名称检查。 对非 HTTPS 请求没有影响。 “Disabled”
“Enabled”
sendRecvTimeoutSeconds 将请求转发到后端时发送和接收超时。 达到超时时,请求将失败并返回。 int

FrontendEndpoint

名称 说明 Value
id 资源 ID。 字符串
name 资源名称。 string
properties 前端终结点的属性 FrontendEndpointProperties

FrontendEndpointProperties

名称 说明
hostName frontendEndpoint 的主机名。 必须是域名。 string
sessionAffinityEnabledState 是否允许此主机上的会话相关性。 有效选项为“Enabled”或“Disabled” “Disabled”
“Enabled”
sessionAffinityTtlSeconds 闲置。 将忽略此字段。 会话相关性要使用的 TTL(如果适用,以秒为单位)。 int
webApplicationFirewallPolicyLink 为每个主机 (定义Web 应用程序防火墙策略(如果适用) FrontendEndpointUpdateParametersWebApplicationFirewa...

FrontendEndpointUpdateParametersWebApplicationFirewa...

名称 说明 Value
id 资源 ID。 string

HealthProbeSettingsModel

名称 说明 Value
id 资源 ID。 字符串
name 资源名称。 string
properties 运行状况探测设置的属性 HealthProbeSettingsProperties

HealthProbeSettingsProperties

名称 说明
enabledState 是否对 backendPools 下定义的后端启用运行状况探测。 仅当单个已启用的后端池中有一个已启用的后端时,才能禁用运行状况探测。 “Disabled”
“Enabled”
healthProbeMethod 配置用于探测 backendPools 下定义的后端的 HTTP 方法。 "GET"
"HEAD"
intervalInSeconds 运行状况探测之间间隔的秒数。 int
path 要用于运行状况探测的路径。 默认值为“/” string
protocol 用于此探测的协议方案 “Http”
“Https”

LoadBalancingSettingsModel

名称 说明 Value
id 资源 ID。 字符串
name 资源名称。 string
properties 负载均衡设置的属性 LoadBalancingSettingsProperties

LoadBalancingSettingsProperties

名称 说明
additionalLatencyMilliseconds 探测进入最低延迟存储桶的额外延迟(以毫秒为单位) int
sampleSize 负载均衡决策要考虑的样本数 int
successfulSamplesRequired 样本周期内必须成功的样本数 int

RoutingRule

名称 说明 Value
id 资源 ID。 字符串
name 资源名称。 string
properties Front Door 路由规则的属性 RoutingRuleProperties

RoutingRuleProperties

名称 说明
acceptedProtocols 要与此规则匹配的协议方案 包含任何一项的字符串数组:
“Http”
“Https”
enabledState 是否要启用此规则。 允许的值为“Enabled”或“Disabled” “Disabled”
“Enabled”
frontendEndpoints 与此规则关联的前端终结点 SubResource[]
patternsToMatch 规则的路由模式。 string[]
routeConfiguration 对路由配置的引用。 RouteConfiguration
rulesEngine 对要应用于此路由的特定规则引擎配置的引用。 SubResource

RouteConfiguration

名称 说明
@odata.type 设置对象类型 #Microsoft.Azure.FrontDoor.Models.FrontdoorForwardingConfiguration
#Microsoft.Azure.FrontDoor.Models.FrontdoorRedirectConfiguration (必需)

ForwardingConfiguration

名称 说明
@odata.type “#Microsoft.Azure.FrontDoor.Models.FrontdoorForwardingConfiguration” ()
backendPool 对此规则路由到的 BackendPool 的引用。 SubResource
cacheConfiguration 与此规则关联的缓存配置。 CacheConfiguration
customForwardingPath 用于重写此规则匹配的资源路径的自定义路径。 保留为空以使用传入路径。 字符串
forwardingProtocol 将流量转发到后端时此规则将使用的协议。 “HttpOnly”
“HttpsOnly”
“MatchRequest”

CacheConfiguration

名称 说明
cacheDuration 需要缓存内容的持续时间。 允许的格式采用 ISO 8601 格式 (http://en.wikipedia.org/wiki/ISO_8601#Durations) 。 HTTP 要求该值不超过一年 string
dynamicCompression 是否对缓存的内容使用动态压缩 “Disabled”
“Enabled”
queryParameters 要包含或排除 (逗号分隔) 的查询参数。 字符串
queryParameterStripDirective 形成缓存密钥时的 URL 查询词的处理。 “StripAll”
“StripAllExcept”
“StripNone”
“StripOnly”

RedirectConfiguration

名称 说明
@odata.type “#Microsoft.Azure.FrontDoor.Models.FrontdoorRedirectConfiguration” (必需)
customFragment 要添加到重定向 URL 的片段。 片段是 #之后的 URL 的一部分。 不要包含 #。 字符串
customHost 要重定向的主机。 留空以使用传入主机作为目标主机。 string
customPath 要重定向的完整路径。 路径不能为空,并且必须以 /开头。 留空以使用传入路径作为目标路径。 string
customQueryString 要放置在重定向 URL 中的查询字符串集。 设置此值将替换任何现有的查询字符串;保留空以保留传入的查询字符串。 查询字符串必须采用 {key}={value} 格式。 第一个? 和 & 将自动添加,因此不要将它们包含在前面,而是使用 & 分隔多个查询字符串。 字符串
redirectProtocol 流量重定向到的目标协议 “HttpOnly”
“HttpsOnly”
“MatchRequest”
redirectType 重定向流量时规则将使用的重定向类型。 “Found”
“已移动”
“PermanentRedirect”
“TemporaryRedirect”