快速入門:使用 Azure PowerShell 建立 Azure Front Door
在本快速入門中,您將瞭解如何使用 Azure PowerShell 建立 Azure Front Door 配置檔。 您會使用兩個 Web Apps 作為來源,並透過 Azure Front Door 端點主機名驗證連線能力。
注意
針對 Web 工作負載,強烈建議使用 Azure DDoS 保護和 Web 應用程式防火牆來防範新興的 DDoS 攻擊。 另一個選項是運用 Azure Front Door 和 Web 應用程式防火牆。 Azure Front Door 提供平台層級保護來防範網路層級 DDoS 攻擊。 如需詳細資訊,請參閱 Azure 服務的安全性基準。
必要條件
- 具有有效訂用帳戶的 Azure 帳戶。 免費建立帳戶。
- 已在本地安裝 Azure PowerShell 或 Azure Cloud Shell。
注意
建議您使用 Azure Az PowerShell 模組來與 Azure 互動。 若要開始使用,請參閱安裝 Azure PowerShell (部分機器翻譯)。 若要了解如何移轉至 Az PowerShell 模組,請參閱將 Azure PowerShell 從 AzureRM 移轉至 Az。
Azure Cloud Shell
Azure Cloud Shell 是裝載於 Azure 中的互動式殼層環境,可在瀏覽器中使用。 您可以使用 Bash 或 PowerShell 搭配 Cloud Shell,與 Azure 服務共同使用。 您可以使用 Cloud Shell 預先安裝的命令,執行本文提到的程式碼,而不必在本機環境上安裝任何工具。
要啟動 Azure Cloud Shell:
選項 | 範例/連結 |
---|---|
選取程式碼或命令區塊右上角的 [試試看]。 選取 [試試看] 並不會自動將程式碼或命令複製到 Cloud Shell 中。 | |
請前往 https://shell.azure.com,或選取 [啟動 Cloud Shell] 按鈕,在瀏覽器中開啟 Cloud Shell。 | |
選取 Azure 入口網站右上方功能表列上的 [Cloud Shell] 按鈕。 |
若要使用 Azure Cloud Shell:
啟動 Cloud Shell。
選取程式碼區塊 (或命令區塊) 上的 [複製] 按鈕以複製程式碼或命令。
透過在 Windows 和 Linux 上選取 Ctrl+Shift+V;或在 macOS 上選取 Cmd+Shift+V,將程式碼或命令貼到 Cloud Shell 工作階段中。
選取 Enter 鍵執行程式碼或命令。
建立資源群組
使用 New-AzResourceGroup 建立資源群組:
New-AzResourceGroup -Name myRGFD -Location centralus
建立兩個 Web 應用程式實例
使用 New-AzWebApp 在不同的 Azure 區域中建立兩個 Web 應用程式實例:
# Create first web app in Central US region.
$webapp1 = New-AzWebApp `
-Name "WebAppContoso-01" `
-Location centralus `
-ResourceGroupName myRGFD `
-AppServicePlan myAppServicePlanCentralUS
# Create second web app in East US region.
$webapp2 = New-AzWebApp `
-Name "WebAppContoso-02" `
-Location EastUS `
-ResourceGroupName myRGFD `
-AppServicePlan myAppServicePlanEastUS
建立 Azure Front Door
建立 Azure Front Door 設定檔
執行 New-AzFrontDoorCdnProfile 以建立 Azure Front Door 配置文件:
$fdprofile = New-AzFrontDoorCdnProfile `
-ResourceGroupName myRGFD `
-Name contosoAFD `
-SkuName Premium_AzureFrontDoor `
-Location Global
新增端點
執行 New-AzFrontDoorCdnEndpoint 以在設定文件中建立端點:
$FDendpoint = New-AzFrontDoorCdnEndpoint `
-EndpointName contosofrontend `
-ProfileName contosoAFD `
-ResourceGroupName myRGFD `
-Location Global
新增來源群組
建立健康情況探查和負載平衡設定,然後使用 New-AzFrontDoorCdnOriginGroup 建立原始群組:
# Create health probe settings
$HealthProbeSetting = New-AzFrontDoorCdnOriginGroupHealthProbeSettingObject `
-ProbeIntervalInSecond 60 `
-ProbePath "/" `
-ProbeRequestType GET `
-ProbeProtocol Http
# Create load balancing settings
$LoadBalancingSetting = New-AzFrontDoorCdnOriginGroupLoadBalancingSettingObject `
-AdditionalLatencyInMillisecond 50 `
-SampleSize 4 `
-SuccessfulSamplesRequired 3
# Create origin group
$originpool = New-AzFrontDoorCdnOriginGroup `
-OriginGroupName og `
-ProfileName contosoAFD `
-ResourceGroupName myRGFD `
-HealthProbeSetting $HealthProbeSetting `
-LoadBalancingSetting $LoadBalancingSetting
將來源新增至群組
使用 New-AzFrontDoorCdnOrigin 將 Web 應用程式來源新增至原始群組:
# Add first web app origin to origin group.
$origin1 = New-AzFrontDoorCdnOrigin `
-OriginGroupName og `
-OriginName contoso1 `
-ProfileName contosoAFD `
-ResourceGroupName myRGFD `
-HostName webappcontoso-01.azurewebsites.net `
-OriginHostHeader webappcontoso-01.azurewebsites.net `
-HttpPort 80 `
-HttpsPort 443 `
-Priority 1 `
-Weight 1000
# Add second web app origin to origin group.
$origin2 = New-AzFrontDoorCdnOrigin `
-OriginGroupName og `
-OriginName contoso2 `
-ProfileName contosoAFD `
-ResourceGroupName myRGFD `
-HostName webappcontoso-02.azurewebsites.net `
-OriginHostHeader webappcontoso-02.azurewebsites.net `
-HttpPort 80 `
-HttpsPort 443 `
-Priority 1 `
-Weight 1000
新增路由
使用 New-AzFrontDoorCdnRoute 將您的端點對應至源群組:
$Route = New-AzFrontDoorCdnRoute `
-EndpointName contosofrontend `
-Name defaultroute `
-ProfileName contosoAFD `
-ResourceGroupName myRGFD `
-ForwardingProtocol MatchRequest `
-HttpsRedirect Enabled `
-LinkToDefaultDomain Enabled `
-OriginGroupId $originpool.Id `
-SupportedProtocol Http,Https
測試 Azure Front Door
建立 Azure Front Door 配置文件之後,需要幾分鐘的時間才能全域部署設定。 完成後,請存取您建立的前端主機。
執行 Get-AzFrontDoorCdnEndpoint 以取得 Azure Front Door 端點的主機名:
$fd = Get-AzFrontDoorCdnEndpoint `
-EndpointName contosofrontend `
-ProfileName contosoafd `
-ResourceGroupName myRGFD
$fd.hostname
在瀏覽器中,移至端點主機名稱:contosofrontend-<hash>.z01.azurefd.net
。 您的要求會路由傳送至原始群組中延遲最低的 Web 應用程式。
若要測試立即全域故障轉移:
開啟瀏覽器,移至端點主機名稱:
contosofrontend-<hash>.z01.azurefd.net
。執行 Stop-AzWebApp 以停止其中一個 Web Apps:
Stop-AzWebApp -ResourceGroupName myRGFD -Name "WebAppContoso-01"
重新整理您的瀏覽器。 您應該會看到相同的資訊頁面。
停止其他 Web 應用程式:
Stop-AzWebApp -ResourceGroupName myRGFD -Name "WebAppContoso-02"
重新整理您的瀏覽器。 此時,您應該會看到一則錯誤訊息。
執行 Start-AzWebApp 以重新啟動其中一個 Web 應用程式。 重新整理您的瀏覽器,而頁面會回到正常狀態:
Start-AzWebApp -ResourceGroupName myRGFD -Name "WebAppContoso-01"
清除資源
當您不再需要使用 Azure Front Door 建立的資源時,請刪除資源群組。 此動作會刪除 Azure Front Door 及其所有相關資源。 執行 Remove-AzResourceGroup:
Remove-AzResourceGroup -Name myRGFD
下一步
若要瞭解如何將自定義網域新增至 Azure Front Door,請繼續進行 Azure Front Door 教學課程。