分享方式:


使用 Private Link 將 Azure Front Door Premium 連線至 Azure API 管理

適用於: ✔️ Front Door Premium

本文會引導您完成相關步驟,將 Azure Front Door Premium 設定為使用 Azure Private Link 私下連線到您的 Azure API 管理原點。

必要條件

建立原點組並將 API 管理執行個體新增為原點

  1. 在 [Azure Front Door Premium 配置文件的 設定 ] 底下,選取 [ 來源群組]。

  2. 選取 [新增]

  3. 輸入來源群組的名稱。

  4. 選取 [+ 新增來源]

  5. 使用下表來設定原點設定:

    設定
    名稱 輸入名稱以識別此來源。
    原點類型 選取 [API 管理]。
    主機名稱 從下拉式清單中選取您想要作為來源的主機。
    來源主機標題 將會自動填入所選 API 管理實例的主機名稱。
    HTTP 連接埠 80 (預設值)。
    HTTPS 連接埠 443 (預設值)。
    優先順序 針對主要、次要和備份目的,將不同的優先順序指派給來源。
    重量 1000 (預設)。 使用權數在不同來源之間散發流量。
    區域 選取符合或最接近您來源的區域。
    目標子資源 選擇 網關
    要求訊息 輸入自訂訊息,以在核准私人端點時顯示。

    將 API 管理配置為專用來源的源設定螢幕截圖。

  6. 選取 [新增 ] 以儲存原始設定

  7. 選取 [新增 ] 以儲存原始群組設定。

核准私人端點

  1. 移至您在上一節中使用 Private Link 設定的 API 管理實例。

  2. [部署 + 基礎結構] 底下,選取 [ 網络]。

  3. 選取 [入站私人端點連線] 索引標籤。

  4. 從 Azure Front Door Premium 尋找 待處理 的私人端點請求,然後點擊 核准

  5. 核准之後,連線狀態將會更新。 連線可能需要幾分鐘的時間才能完全建立。 建立之後,您可以透過 Front Door 存取您的 API 管理。

    API 管理入口網站中私人端點連線索引標籤的螢幕快照。

必要條件

  • 具有有效訂用帳戶的 Azure 帳戶。 免費建立帳戶

  • Azure Front Door Premium 配置檔和端點。 如需如何建立 Azure Front Door 配置文件的詳細資訊,請參閱 使用 Azure PowerShell 建立 Front Door

  • Azure API 管理執行個體。 如需如何建立 API 管理實例的詳細資訊,請參閱 使用 PowerShell 建立新的 Azure API 管理實例。 針對 v1 層,實例應該以公用模式部署,而不是在虛擬網路模式中。

  • Azure Cloud Shell 或 Azure PowerShell。

    本文中的步驟會在 Azure Cloud Shell 中以互動方式執行 Azure PowerShell Cmdlet。 若要在 Cloud Shell 中執行 Cmdlet,請選取程式碼區塊右上角的 [開啟 Cloud Shell]。 選取 [複製] 以複製程式碼,然後將其貼入 Cloud Shell 以執行。 您也可以從 Azure 入口網站內執行 Cloud Shell。

    您也可以 在本機安裝 Azure PowerShell 來執行 Cmdlet。 如果您在本機執行 PowerShell,請使用 Connect-AzAccount Cmdlet 登入 Azure。

建立原點組並將 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 設定檔現在已完全正常運作。

必要條件

  • 具有有效訂用帳戶的 Azure 帳戶。 免費建立帳戶

  • Azure Front Door Premium 配置檔和端點。 如需如何建立 Azure Front Door 配置文件的詳細資訊,請參閱 使用 Azure CLI 建立 Front Door

  • Azure API 管理執行個體。 如需如何建立 API 管理實例的詳細資訊,請參閱 使用 Azure CLI 建立新的 Azure API 管理實例。 針對 v1 層,實例應該以公用模式部署,而不是在虛擬網路模式中。

  • Azure Cloud Shell 或 Azure CLI。

    本文中的步驟會在 Azure Cloud Shell 中以互動方式執行 Azure CLI 命令。 若要在 Cloud Shell 中執行命令,請選取程式碼區塊右上角的 [開啟 Cloud Shell]。 選取 [複製] 以複製程式碼,並將它貼到 Cloud Shell 中以執行。 您也可以從 Azure 入口網站內執行 Cloud Shell。

    您也可以 在本機安裝 Azure CLI 來執行命令。 如果您在本機執行 Azure CLI,請使用 az login 命令登入 Azure。

建立原點組並將 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 設定檔現在已完全正常運作。

要避免的常見錯誤

設定已啟用 Azure Private Link 的 Azure API 管理來源時,常見的錯誤如下:

  • 使用 Azure Private Link 將 Azure API 管理來源新增至包含公用來源的現有原始來源群組。 Azure Front Door 不允許在相同的來源群組中混合使用公用來源和私人來源。

後續步驟