你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Microsoft.Network frontDoors
Bicep 资源定义
frontDoors 资源类型可以部署到:
- 资源组 - 请参阅 资源组部署命令
有关每个 API 版本中更改的属性的列表,请参阅 更改日志。
资源格式
若要创建 Microsoft.Network/frontDoors 资源,请将以下 Bicep 添加到模板。
resource symbolicname 'Microsoft.Network/frontDoors@2021-06-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'
privateLinkLocation: 'string'
privateLinkResourceId: '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'
}
webApplicationFirewallPolicyLink: {
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) | 字符串 |
backendHostHeader | 要用作发送到后端的主机标头的值。 如果为空或未指定,则默认为传入主机。 | 字符串 |
enabledState | 是否要启用此后端。 允许的值为“Enabled”或“Disabled” | 'Disabled' 'Enabled' |
httpPort | HTTP TCP 端口号。 必须介于 1 和 65535 之间。 | int |
httpsPort | HTTPS TCP 端口号。 必须介于 1 和 65535 之间。 | int |
priority | 要用于负载均衡的优先级。 如果任何优先级较低的后端正常运行,则不会使用较高优先级进行负载均衡。 | int |
privateLinkAlias | 专用链接资源的别名。 填充此可选字段表示此后端为“专用” | 字符串 |
privateLinkApprovalMessage | 要包含在审批请求中的自定义消息,用于连接到专用链接 | 字符串 |
privateLinkLocation | 专用链接资源的位置。 仅当填充了“privateLinkResourceId”时才需要 | 字符串 |
privateLinkResourceId | 专用链接资源的资源 ID。 填充此可选字段表示此后端为“专用” | 字符串 |
重量 | 此终结点用于负载均衡的权重。 | int |
SubResource
名称 | 说明 | Value |
---|---|---|
id | 资源 ID。 | 字符串 |
BackendPoolsSettings
名称 | 说明 | 值 |
---|---|---|
enforceCertificateNameCheck | 是否对对所有后端池的 HTTPS 请求强制执行证书名称检查。 对非 HTTPS 请求没有影响。 | 'Disabled' 'Enabled' |
sendRecvTimeoutSeconds | 将请求转发到后端时发送和接收超时。 达到超时时,请求将失败并返回。 | int |
FrontendEndpoint
名称 | 说明 | Value |
---|---|---|
id | 资源 ID。 | 字符串 |
name | 资源名称。 | string |
properties | 前端终结点的属性 | FrontendEndpointProperties |
FrontendEndpointProperties
名称 | 说明 | 值 |
---|---|---|
hostName | frontendEndpoint 的主机名。 必须是域名。 | 字符串 |
sessionAffinityEnabledState | 是否允许此主机上的会话相关性。 有效选项为“Enabled”或“Disabled” | 'Disabled' 'Enabled' |
sessionAffinityTtlSeconds | 闲置。 将忽略此字段。 会话相关性要使用的 TTL(如果适用,以秒为单位)。 | int |
webApplicationFirewallPolicyLink | 为每个主机 (定义Web 应用程序防火墙策略(如果适用) | FrontendEndpointUpdateParametersWebApplicationFirewa... |
FrontendEndpointUpdateParametersWebApplicationFirewa...
名称 | 说明 | Value |
---|---|---|
id | 资源 ID。 | 字符串 |
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 |
webApplicationFirewallPolicyLink | 定义每个路由规则 (Web 应用程序防火墙策略(如果适用)) | RoutingRuleUpdateParametersWebApplicationFirewallPol... |
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” “已启用” |
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 | 规则在重定向流量时将使用的重定向类型。 | “找到” “已移动” “PermanentRedirect” “TemporaryRedirect” |
RoutingRuleUpdateParametersWebApplicationFirewallPol...
名称 | 说明 | Value |
---|---|---|
id | 资源 ID。 | string |
快速入门模板
以下快速入门模板部署此资源类型。
模板 | 说明 |
---|---|
在 Azure API 管理前面创建 Azure Front Door |
此示例演示如何在 Azure API 管理前面使用 Azure Front Door 作为全局负载均衡器。 |
创建基本 Front Door |
此模板使用单个后端创建基本的 Front Door 配置。 |
Create Front Door with caching enabled for certain routes(通过为某些路由启用的缓存创建 Front Door) |
此模板创建一个 Front Door,该 Front Door 为定义的路由配置启用了缓存,从而缓存工作负载的任何静态资产。 |
创建具有多个后端和后端池的 Front Door |
此模板创建一个 Front Door,其中包含为后端池中的多个后端以及基于 URL 路径跨后端池配置的负载均衡。 |
使用 HTTP 到 HTTPS 重定向创建 Front Door |
此模板为 HTTP 到 HTTPS 重定向创建 Front Door 配置。 |
使用 Front Door 添加自定义域和托管证书 |
此模板使用 Front Door 载入并保护自定义域 |
使用 Front Door 添加自定义域和自定义证书 |
此模板使用客户管理的证书加入并保护 Front Door 的自定义域 |
Control Health Probes for your backends on Front Door(在 Front Door 上控制后端的健康状况探测) |
此模板通过设置探测路径以及发送探测的间隔来更新 Front Door 以更改运行状况探测设置。 |
使用 Active-Standby 配置创建 Front Door |
此模板创建一个 Front Door,用于演示 Active-Standby 应用程序拓扑的基于优先级的路由。 |
Configure Session Affinity for your Front Door host names(为 Front Door 主机名配置会话相关性) |
此模板更新 Front Door 以启用前端主机的会话相关性,从而将后续流量从同一用户会话发送到同一后端。 |
ARM 模板资源定义
frontDoors 资源类型可以部署到:
- 资源组 - 请参阅 资源组部署命令
有关每个 API 版本中更改的属性的列表,请参阅 更改日志。
资源格式
若要创建 Microsoft.Network/frontDoors 资源,请将以下 JSON 添加到模板。
{
"type": "Microsoft.Network/frontDoors",
"apiVersion": "2021-06-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",
"privateLinkLocation": "string",
"privateLinkResourceId": "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"
},
"webApplicationFirewallPolicyLink": {
"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 版本 | '2021-06-01' |
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) | 字符串 |
backendHostHeader | 要用作发送到后端的主机标头的值。 如果为空或未指定,则默认为传入主机。 | string |
enabledState | 是否要启用此后端。 允许的值为“Enabled”或“Disabled” | 'Disabled' 'Enabled' |
httpPort | HTTP TCP 端口号。 必须介于 1 和 65535 之间。 | int |
httpsPort | HTTPS TCP 端口号。 必须介于 1 和 65535 之间。 | int |
priority | 要用于负载均衡的优先级。 如果任何优先级较低的后端正常运行,则不会使用较高优先级进行负载均衡。 | int |
privateLinkAlias | 专用链接资源的别名。 填充此可选字段表示此后端为“专用” | 字符串 |
privateLinkApprovalMessage | 要包含在审批请求中的自定义消息,用于连接到专用链接 | 字符串 |
privateLinkLocation | 专用链接资源的位置。 仅当填充了“privateLinkResourceId”时才需要 | 字符串 |
privateLinkResourceId | 专用链接资源的资源 ID。 填充此可选字段表示此后端为“专用” | 字符串 |
重量 | 此终结点用于负载均衡的权重。 | 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 的主机名。 必须是域名。 | 字符串 |
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 | 要用于运行状况探测的路径。 默认值为“/” | 字符串 |
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” “已启用” |
frontendEndpoints | 与此规则关联的前端终结点 | SubResource[] |
patternsToMatch | 规则的路由模式。 | string[] |
routeConfiguration | 对路由配置的引用。 | RouteConfiguration |
rulesEngine | 对要应用于此路由的特定规则引擎配置的引用。 | SubResource |
webApplicationFirewallPolicyLink | 定义每个路由规则 (Web 应用程序防火墙策略(如果适用)) | RoutingRuleUpdateParametersWebApplicationFirewallPol... |
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 | 用于包含或排除 (逗号分隔) 的查询参数。 | string |
queryParameterStripDirective | 在形成缓存密钥时处理 URL 查询词。 | “StripAll” “StripAllExcept” “StripNone” “StripOnly” |
RedirectConfiguration
名称 | 说明 | 值 |
---|---|---|
@odata.type | 需要“#Microsoft.Azure.FrontDoor.Models.FrontdoorRedirectConfiguration” () | |
customFragment | 要添加到重定向 URL 的片段。 片段是 #之后的 URL 的一部分。 不要包含 #。 | 字符串 |
customHost | 要重定向的主机。 留空以使用传入主机作为目标主机。 | 字符串 |
customPath | 要重定向的完整路径。 路径不能为空,并且必须以 /开头。 保留为空,以使用传入路径作为目标路径。 | string |
customQueryString | 要放置在重定向 URL 中的查询字符串集。 设置此值将替换任何现有的查询字符串;保留空以保留传入的查询字符串。 查询字符串必须采用 {key}={value} 格式。 第一个? 和 & 将自动添加,因此不要将它们包含在前面,而是使用 & 分隔多个查询字符串。 | 字符串 |
redirectProtocol | 流量重定向到的目标协议 | “HttpOnly” “HttpsOnly” “MatchRequest” |
redirectType | 规则在重定向流量时将使用的重定向类型。 | “找到” “已移动” “PermanentRedirect” “TemporaryRedirect” |
RoutingRuleUpdateParametersWebApplicationFirewallPol...
名称 | 说明 | Value |
---|---|---|
id | 资源 ID。 | 字符串 |
快速入门模板
以下快速入门模板部署此资源类型。
模板 | 说明 |
---|---|
在 Azure API 管理前面创建 Azure Front Door |
此示例演示如何在 Azure API 管理前面使用 Azure Front Door 作为全局负载均衡器。 |
创建基本 Front Door |
此模板使用单个后端创建基本的 Front Door 配置。 |
Create Front Door with caching enabled for certain routes(通过为某些路由启用的缓存创建 Front Door) |
此模板创建一个 Front Door,该 Front Door 为定义的路由配置启用了缓存,从而缓存工作负载的任何静态资产。 |
创建具有多个后端和后端池的 Front Door |
此模板创建一个 Front Door,其中包含为后端池中的多个后端以及基于 URL 路径跨后端池配置的负载均衡。 |
使用 HTTP 到 HTTPS 重定向创建 Front Door |
此模板为 HTTP 到 HTTPS 重定向创建 Front Door 配置。 |
使用 Front Door 添加自定义域和托管证书 |
此模板使用 Front Door 载入并保护自定义域 |
使用 Front Door 添加自定义域和自定义证书 |
此模板使用客户管理的证书加入并保护 Front Door 的自定义域 |
Control Health Probes for your backends on Front Door(在 Front Door 上控制后端的健康状况探测) |
此模板通过设置探测路径以及发送探测的间隔来更新 Front Door 以更改运行状况探测设置。 |
使用 Active-Standby 配置创建 Front Door |
此模板创建一个 Front Door,用于演示 Active-Standby 应用程序拓扑的基于优先级的路由。 |
Configure Session Affinity for your Front Door host names(为 Front Door 主机名配置会话相关性) |
此模板更新 Front Door 以启用前端主机的会话相关性,从而将后续流量从同一用户会话发送到同一后端。 |
Terraform (AzAPI 提供程序) 资源定义
frontDoors 资源类型可以部署到:
- 资源组
有关每个 API 版本中更改的属性的列表,请参阅 更改日志。
资源格式
若要创建 Microsoft.Network/frontDoors 资源,请将以下 Terraform 添加到模板。
resource "azapi_resource" "symbolicname" {
type = "Microsoft.Network/frontDoors@2021-06-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"
privateLinkLocation = "string"
privateLinkResourceId = "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"
}
webApplicationFirewallPolicyLink = {
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@2021-06-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。 | 字符串 |
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 | 要包含在审批请求中的自定义消息,用于连接到专用链接 | 字符串 |
privateLinkLocation | 专用链接资源的位置。 仅当填充了“privateLinkResourceId”时才需要 | 字符串 |
privateLinkResourceId | 专用链接资源的资源 ID。 填充此可选字段表示此后端为“专用” | 字符串 |
重量 | 此终结点用于负载均衡的权重。 | int |
SubResource
名称 | 说明 | Value |
---|---|---|
id | 资源 ID。 | 字符串 |
BackendPoolsSettings
名称 | 说明 | 值 |
---|---|---|
enforceCertificateNameCheck | 是否对所有后端池的 HTTPS 请求强制执行证书名称检查。 对非 HTTPS 请求没有影响。 | “Disabled” “已启用” |
sendRecvTimeoutSeconds | 将请求转发到后端时发送和接收超时。 达到超时后,请求将失败并返回。 | int |
FrontendEndpoint
名称 | 说明 | Value |
---|---|---|
id | 资源 ID。 | 字符串 |
name | 资源名称。 | string |
properties | 前端终结点的属性 | FrontendEndpointProperties |
FrontendEndpointProperties
名称 | 说明 | 值 |
---|---|---|
hostName | frontendEndpoint 的主机名。 必须是域名。 | 字符串 |
sessionAffinityEnabledState | 是否允许此主机上的会话相关性。 有效选项为“已启用”或“已禁用” | “Disabled” “已启用” |
sessionAffinityTtlSeconds | 闲置。 将忽略此字段。 会话相关性要使用的 TTL(如果适用,以秒为单位)。 | int |
webApplicationFirewallPolicyLink | 为每个主机定义Web 应用程序防火墙策略(如果适用) () | FrontendEndpointUpdateParametersWebApplicationFirewa... |
FrontendEndpointUpdateParametersWebApplicationFirewa...
名称 | 说明 | Value |
---|---|---|
id | 资源 ID。 | 字符串 |
HealthProbeSettingsModel
名称 | 说明 | Value |
---|---|---|
id | 资源 ID。 | 字符串 |
name | 资源名称。 | string |
properties | 运行状况探测设置的属性 | HealthProbeSettingsProperties |
HealthProbeSettingsProperties
名称 | 说明 | 值 |
---|---|---|
enabledState | 是否对 backendPools 下定义的后端启用运行状况探测。 仅当单个已启用的后端池中有一个已启用的后端时,才能禁用运行状况探测。 | “Disabled” “已启用” |
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 |
webApplicationFirewallPolicyLink | 为每个路由规则定义 (Web 应用程序防火墙策略(如果适用)) | RoutingRuleUpdateParametersWebApplicationFirewallPol... |
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” “Enabled” |
queryParameters | 要包含或排除 (逗号分隔) 的查询参数。 | 字符串 |
queryParameterStripDirective | 形成缓存密钥时的 URL 查询词的处理。 | “StripAll” “StripAllExcept” “StripNone” “StripOnly” |
RedirectConfiguration
名称 | 说明 | 值 |
---|---|---|
@odata.type | “#Microsoft.Azure.FrontDoor.Models.FrontdoorRedirectConfiguration” (必需) | |
customFragment | 要添加到重定向 URL 的片段。 片段是 #之后的 URL 的一部分。 不要包含 #。 | 字符串 |
customHost | 要重定向的主机。 留空以使用传入主机作为目标主机。 | 字符串 |
customPath | 要重定向的完整路径。 路径不能为空,并且必须以 /开头。 留空以使用传入路径作为目标路径。 | string |
customQueryString | 要放置在重定向 URL 中的查询字符串集。 设置此值将替换任何现有的查询字符串;保留空以保留传入的查询字符串。 查询字符串必须采用 {key}={value} 格式。 第一个? 和 & 将自动添加,因此不要将它们包含在前面,而是使用 & 分隔多个查询字符串。 | 字符串 |
redirectProtocol | 流量重定向到的目标协议 | “HttpOnly” “HttpsOnly” “MatchRequest” |
redirectType | 重定向流量时规则将使用的重定向类型。 | “Found” “已移动” “PermanentRedirect” “TemporaryRedirect” |
RoutingRuleUpdateParametersWebApplicationFirewallPol...
名称 | 说明 | Value |
---|---|---|
id | 资源 ID。 | 字符串 |