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

使用专用链接将 Azure Front Door Premium 连接到 Azure API 管理(预览版)

本文会指导你完成配置 Azure Front Door Premium 以使用 Azure 专用链接私密连接到 Azure API 管理源的步骤。

先决条件

  • 具有活动订阅的 Azure 帐户。 免费创建帐户
  • 具有正常运行的 Azure Front Door Premium 配置文件和终结点。 有关如何创建 Azure Front Door 配置文件的详细信息,请参阅创建 Front Door
  • 具有正常运行的 Azure API 管理实例。 有关如何创建 API 管理实例的详细信息,请参阅创建新的 Azure API 管理实例

创建源组,并将 API 管理实例添加为源

  1. 在 Azure Front Door 高级版配置文件中,转到“设置”并选择“源组”

  2. 单击“添加”

  3. 输入源组的名称

  4. 选择“+ 添加源”

  5. 使用下表配置源的设置:

    设置
    名称 输入名称以标识此源。
    原点类型 API 管理
    主机名 从下拉列表中选择要用作源的主机。
    源主机标头 将自动填充所选 API 管理实例的主机
    HTTP 端口 80(默认值)
    HTTPS 端口 443(默认值)
    优先级 为源分配不同的优先级,以用于主要、次要和备份目的。
    Weight 1000(默认值)。 使用权重在不同源之间分配流量。
    区域 选择与源匹配或最接近的区域。
    目标子资源 选择“网关”
    请求消息 输入将在批准专用终结点时显示的自定义消息。

用于将 API 管理配置为专用源的源设置的屏幕截图。

  1. 选择“添加”以保存源设置
  2. 选择“添加”以保存源组设置

批准专用终结点

  1. 导航到你在上一部分中使用专用链接配置的 API 管理实例。 在“部署 + 基础结构”下,选择“网络”

  2. 选择“入站专用终结点连接”选项卡

  3. 找到 Azure Front Door 高级版中待处理的专用终结点请求,然后选择“批准”

  4. 批准后,连接状态将更新。 可能需要几分钟时间才能完全建立连接。 建立后,即可通过 Front Door 访问 API 管理。

API 管理门户中专用终结点连接选项卡的屏幕截图。

先决条件

  • 具有活动订阅的 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”运行代码或命令。

创建源组,并将 API 管理实例添加为源

  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,以创建包含你的 API 管理实例的源组。

    $origingroup = New-AzFrontDoorCdnOriginGroup `
        -OriginGroupName myOriginGroup `
        -ProfileName myFrontDoorProfile `
        -ResourceGroupName myResourceGroup `
        -HealthProbeSetting $healthProbeSetting `
        -LoadBalancingSetting $loadBalancingSetting
    
  4. 使用 New-AzFrontDoorCdnOrigin 命令将你的 API 管理实例添加到源组。

    New-AzFrontDoorCdnOrigin ` 
        -OriginGroupName myOriginGroup ` 
        -OriginName myAPIMOrigin ` 
        -ProfileName myFrontDoorProfile ` 
        -ResourceGroupName myResourceGroup ` 
        -HostName myapim.azure-api.net ` 
        -HttpPort 80 ` 
        -HttpsPort 443 ` 
        -OriginHostHeader myapim.azure-api.net ` 
        -Priority 1 ` 
        -PrivateLinkId /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroup/providers/Microsoft.ApiManagement/service/myAPIM ` 
        -SharedPrivateLinkResourceGroupId Gateway ` 
        -SharedPrivateLinkResourcePrivateLinkLocation CentralUS ` 
        -SharedPrivateLinkResourceRequestMessage 'Azure Front Door private connectivity request' ` 
        -Weight 1000 `
    

批准专用终结点

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

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

    Get-AzPrivateEndpointConnection -Name $PrivateEndpoint.Name -ResourceGroupName myResourceGroup -ServiceName myAPIM -PrivateLinkResourceType Microsoft.ApiManagement/service
    

完成 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 配置文件现已完全正常运行。

先决条件

创建源组,并将 API 管理实例添加为源

  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 afd origin create,将 API 管理实例作为源添加到源组。

    az afd origin create \
        --enabled-state Enabled \
        --resource-group myResourceGroup \
        --origin-group-name myOriginGroup \
        --origin-name myAPIMOrigin \
        --profile-name myFrontDoorProfile \
        --host-name myapim.azure-api.net \
        --origin-host-header myapim.azure-api.net \
        --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/myResourceGroup/providers/Microsoft.ApiManagement/service/myAPIM \
        --private-link-sub-resource-type Gateway
    

批准专用终结点连接

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

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

    az network private-endpoint-connection approve --id /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroup/providers/Microsoft.ApiManagement/service/myAPIM/privateEndpointConnections/aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb
    

完成 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 配置文件现已完全正常运行。

后续步骤

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