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

使用专用链接将 Azure Front Door Premium 连接到 Azure 应用程序网关(预览版)

本文会指导你完成配置 Azure Front Door Premium 以使用 Azure 专用链接私密连接到 Azure 应用程序网关的步骤。

先决条件

  • 具有活动订阅的 Azure 帐户。 免费创建帐户

  • Azure PowerShell(本地安装)或 Azure Cloud Shell。

注意

建议使用 Azure Az PowerShell 模块与 Azure 交互。 若要开始,请参阅安装 Azure PowerShell。 若要了解如何迁移到 Az PowerShell 模块,请参阅 将 Azure PowerShell 从 AzureRM 迁移到 Az

Azure Cloud Shell

Azure 托管 Azure Cloud Shell(一个可通过浏览器使用的交互式 shell 环境)。 可以将 Bash 或 PowerShell 与 Cloud Shell 配合使用来使用 Azure 服务。 可以使用 Cloud Shell 预安装的命令来运行本文中的代码,而不必在本地环境中安装任何内容。

若要启动 Azure Cloud Shell,请执行以下操作:

选项 示例/链接
选择代码或命令块右上角的“试用”。 选择“试用”不会自动将代码或命令复制到 Cloud Shell。 显示 Azure Cloud Shell 的“试用”示例的屏幕截图。
转到 https://shell.azure.com 或选择“启动 Cloud Shell”按钮可在浏览器中打开 Cloud Shell。 用于启动 Azure Cloud Shell 的按钮。
选择 Azure 门户右上角菜单栏上的 Cloud Shell 按钮。 显示 Azure 门户中的 Cloud Shell 按钮的屏幕截图

若要使用 Azure Cloud Shell,请执行以下操作:

  1. 启动 Cloud Shell。

  2. 选择代码块(或命令块)上的“复制”按钮以复制代码或命令。

  3. 在 Windows 和 Linux 上选择 Ctrl+Shift+V,或在 macOS 上选择 Cmd+Shift+V 将代码或命令粘贴到 Cloud Shell 会话中。

  4. 选择“Enter”运行代码或命令。

启用与 Azure 应用程序网关的专用连接

按照配置 Azure 应用程序网关专用链接中的说明操作,但请勿完成创建专用终结点的最后一步。

创建源组,并将应用程序网关添加为源

  1. 使用 New-AzFrontDoorCdnOriginGroupHealthProbeSettingObject 创建用于存储运行状况探测设置的内存中对象。

    $healthProbeSetting = New-AzFrontDoorCdnOriginGroupHealthProbeSettingObject `
        -ProbeIntervalInSecond 60 `
        -ProbePath "/" `
        -ProbeRequestType GET `
        -ProbeProtocol Http
    
  2. 使用 New-AzFrontDoorCdnOriginGroupLoadBalancingSettingObject 创建用于存储负载均衡设置的内存中对象。

    $loadBalancingSetting = New-AzFrontDoorCdnOriginGroupLoadBalancingSettingObject `
        -AdditionalLatencyInMillisecond 50 `
        -SampleSize 4 `
        -SuccessfulSamplesRequired 3
    
  3. 运行 New-AzFrontDoorCdnOriginGroup,以创建包含应用程序网关的源组。

    $origingroup = New-AzFrontDoorCdnOriginGroup `
        -OriginGroupName myOriginGroup `
        -ProfileName myFrontDoorProfile `
        -ResourceGroupName myResourceGroup `
        -HealthProbeSetting $healthProbeSetting `
        -LoadBalancingSetting $loadBalancingSetting
    
  4. 使用 Get-AzApplicationGatewayFrontendIPConfig 命令获取应用程序网关的前端 IP 配置名称。

    $AppGw = Get-AzApplicationGateway -Name myAppGateway -ResourceGroupName myResourceGroup
    $FrontEndIPs= Get-AzApplicationGatewayFrontendIPConfig  -ApplicationGateway $AppGw
    $FrontEndIPs.name
    
  5. 使用 New-AzFrontDoorCdnOrigin 命令将应用程序网关添加到源组。

    New-AzFrontDoorCdnOrigin ` 
        -OriginGroupName myOriginGroup ` 
        -OriginName myAppGatewayOrigin ` 
        -ProfileName myFrontDoorProfile ` 
        -ResourceGroupName myResourceGroup ` 
        -HostName 10.0.0.4 ` 
        -HttpPort 80 ` 
        -HttpsPort 443 ` 
        -OriginHostHeader 10.0.0.4 ` 
        -Priority 1 ` 
        -PrivateLinkId /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroup/providers/Microsoft.Network/applicationGateways/myAppGateway ` 
        -SharedPrivateLinkResourceGroupId $FrontEndIPs.name ` 
        -SharedPrivateLinkResourcePrivateLinkLocation CentralUS ` 
        -SharedPrivateLinkResourceRequestMessage 'Azure Front Door private connectivity request' ` 
        -Weight 1000 `
    

    注意

    SharedPrivateLinkResourceGroupId 是 Azure 应用程序网关前端 IP 配置的名称。

批准专用终结点

  1. 运行 Get-AzPrivateEndpointConnection,以检索需要批准的专用终结点连接的连接名称。

    Get-AzPrivateEndpointConnection -ResourceGroupName myResourceGroup -ServiceName myAppGateway -PrivateLinkResourceType Microsoft.Network/applicationgateways
    
  2. 运行 Approve-AzPrivateEndpointConnection 以批准专用终结点连接详细信息。 使用上一步的输出中的“名称”值来批准连接。

    Get-AzPrivateEndpointConnection -Name aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb.bbbbbbbb-1111-2222-3333-cccccccccccc -ResourceGroupName myResourceGroup -ServiceName myAppGateway -PrivateLinkResourceType Microsoft.Network/applicationgateways
    

完成 Azure Front Door 设置

使用 New-AzFrontDoorCdnRoute 命令创建将终结点映射到源组的路由。 此路由会将来自终结点的请求转发到源组。

# Create a route to map the endpoint to the origin group

$Route = New-AzFrontDoorCdnRoute `
    -EndpointName myFrontDoorEndpoint `
    -Name myRoute `
    -ProfileName myFrontDoorProfile `
    -ResourceGroupName myResourceGroup `
    -ForwardingProtocol MatchRequest `
    -HttpsRedirect Enabled `
    -LinkToDefaultDomain Enabled `
    -OriginGroupId $origingroup.Id `
    -SupportedProtocol Http,Https

完成最后一步后,Azure Front Door 配置文件现已完全正常运行。

先决条件

启用与 Azure 应用程序网关的专用连接

按照配置 Azure 应用程序网关专用链接中的步骤操作,跳过创建专用终结点的最后一步。

创建源组,并将应用程序网关添加为源

  1. 运行 az afd origin-group create 以创建源组。

    az afd origin-group create \
        --resource-group myResourceGroup \
        --origin-group-name myOriginGroup \
        --profile-name myFrontDoorProfile \
        --probe-request-type GET \
        --probe-protocol Http \
        --probe-interval-in-seconds 60 \
        --probe-path / \
        --sample-size 4 \
        --successful-samples-required 3 \
        --additional-latency-in-milliseconds 50
    
  2. 运行 az network application-gaeay frontend-ip list 以获取应用程序网关的前端 IP 配置名称。

    az network application-gateway frontend-ip list --gateway-name myAppGateway --resource-group myResourceGroup
    
  3. 运行 az afd origin create,将应用程序网关添加为源组。

    az afd origin create \
        --enabled-state Enabled \
        --resource-group myResourceGroup \
        --origin-group-name myOriginGroup \
        --origin-name myAppGatewayOrigin \
        --profile-name myFrontDoorProfile \
        --host-name 10.0.0.4 \
        --origin-host-header 10.0.0.4 \
        --http-port 80  \
        --https-port 443 \
        --priority 1 \
        --weight 500 \
        --enable-private-link true \
        --private-link-location centralus \
        --private-link-request-message 'Azure Front Door private connectivity request.' \
        --private-link-resource /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myRGAG/providers/Microsoft.Network/applicationGateways/myAppGateway \
        --private-link-sub-resource-type myAppGatewayFrontendIPName
    

    注意

    private-link-sub-resource-type 是 Azure 应用程序网关前端 IP 配置名称。

批准专用终结点连接

  1. 运行 az network private-endpoint-connection list,获取需要批准的专用终结点连接的 ID

    az network private-endpoint-connection list --name myAppGateway --resource-group myResourceGroup --type Microsoft.Network/applicationgateways
    
  2. 运行 az network private-endpoint-connection approve,以使用上一步中的 ID 批准专用终结点连接。

    az network private-endpoint-connection approve --id /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroup/providers/Microsoft.Network/applicationGateways/myAppGateway/privateEndpointConnections/aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb.bbbbbbbb-1111-2222-3333-cccccccccccc
    

完成 Azure Front Door 设置

运行 az afd route create 创建将终结点映射到源组的路由。 此路由会将来自终结点的请求转发到源组。

az afd route create \
    --resource-group myResourceGroup \
    --profile-name myFrontDoorProfile \
    --endpoint-name myFrontDoorEndpoint \
    --forwarding-protocol MatchRequest \
    --route-name myRoute \
    --https-redirect Enabled \
    --origin-group myOriginGroup \
    --supported-protocols Http Https \
    --link-to-default-domain Enabled

完成最后一步后,Azure Front Door 配置文件现已完全正常运行。

要避免的常见错误

在配置启用了 Azure 专用链接的 Azure 应用程序网关源时,常见错误如下:

  1. 在 Azure 应用程序网关上配置 Azure 专用链接之前配置 Azure Front Door 源。

  2. 使用 Azure 专用链接将 Azure 应用程序网关源添加到包含公共源的现有源组。 Azure Front Door 不允许在同一源组中混合公共和专用源。

  1. 提供不正确的 Azure 应用程序网关前端 IP 配置名称作为值 SharedPrivateLinkResourceGroupId
  1. 提供不正确的 Azure 应用程序网关前端 IP 配置名称作为值 private-link-sub-resource-type

后续步骤

了解有关存储帐户的专用链接服务