快速入門:建立 Azure Front Door 標準/進階版 - Azure CLI

在本快速入門中,您將了解如何使用 Azure CLI 建立 Azure Front Door 標準/進階版設定檔。 您將使用兩個 Web 應用程式作為來源,建立此設定檔,並新增 WAF 安全性原則。 接著便可使用 Azure Front Door 端點主機名稱,以確認與 Web 應用程式的連線。

如果您沒有 Azure 訂閱,請在開始之前,先建立 Azure 免費帳戶

必要條件

您可以使用 Azure Cloud Shell 或本機 Azure CLI。

建立資源群組

在 Azure 中,您可以將相關資源配置到資源群組。 您可以使用現有的資源群組,或建立一個新的群組。

執行 az group create 以建立資源群組。

az group create --name myRGFD --location centralus

建立 Azure Front Door 設定檔

執行 az afd profile create 以建立 Azure Front Door 設定檔。

注意

如果您想要部署 Azure Front Door 標準版而非進階版,請將 sku 參數的值取代為 Standard_AzureFrontDoor。 如果您選擇 [標準 SKU],您將無法使用 WAF 原則部署受控規則。 如需詳細比較,請檢視 Azure Front Door 階層比較

az afd profile create \
    --profile-name contosoafd \
    --resource-group myRGFD \
    --sku Premium_AzureFrontDoor

建立 Web 應用程式的兩個執行個體

本快速入門需要兩個 Web 應用程式執行個體,分別在不同的 Azure 區域中執行。 這兩個 Web 應用程式執行個體都會以「主動/主動」模式執行,因此其中任一個都可以服務流量。

如果您還沒有 Web 應用程式,請使用下列指令碼來設定兩個 Web 應用程式範例。

建立 App Service 方案

建立 Web 應用程式前,您需要兩個應用程式方案,一個在美國中部,另一個在美國東部

使用 az appservice plan create 建立應用程式方案。

az appservice plan create \
    --name myAppServicePlanCentralUS \
    --resource-group myRGFD \
    --location centralus
az appservice plan create \
    --name myAppServicePlanEastUS \
    --resource-group myRGFD \
    --location eastus

建立 Web 應用程式

執行 az webapp create,在上一步的各 App Service 方案中建立 Web 應用程式。 Web 應用程式名稱必須是全域唯一的。

az webapp create \
    --name WebAppContoso-01 \
    --resource-group myRGFD \
    --plan myAppServicePlanCentralUS
az webapp create \
    --name WebAppContoso-02 \
    --resource-group myRGFD \
    --plan myAppServicePlanEastUS

記下每個 Web 應用程式的預設主機名稱,讓您可以在下一個步驟中部署 Front Door 時定義後端位址。

建立 Azure Front Door

建立 Front Door 設定檔

執行 az afd profile create 以建立 Azure Front Door 設定檔。

注意

如果您想要部署 Azure Front Door 標準版而非進階版,請將 sku 參數的值取代為 Standard_AzureFrontDoor。 如果您選擇 [標準 SKU],您將無法使用 WAF 原則部署受控規則。 如需詳細比較,請檢視 Azure Front Door 階層比較

az afd profile create \
    --profile-name contosoafd \
    --resource-group myRGFD \
    --sku Premium_AzureFrontDoor

新增端點。

執行 az afd endpoint create 在設定檔中建立端點。 完成建立體驗後,即可在設定檔中建立多個端點。

az afd endpoint create \
    --resource-group myRGFD \
    --endpoint-name contosofrontend \
    --profile-name contosoafd \
    --enabled-state Enabled

新增來源群組

執行 az afd origin-group create,以建立包含兩個 Web 應用程式的來源群組。

az afd origin-group create \
    --resource-group myRGFD \
    --origin-group-name og \
    --profile-name contosoafd \
    --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

將來源新增至群組

執行 az afd origin create,將來源新增至原始來源群組。

az afd origin create \
    --resource-group myRGFD \
    --host-name webappcontoso-01.azurewebsites.net \
    --profile-name contosoafd \
    --origin-group-name og \
    --origin-name contoso1 \
    --origin-host-header webappcontoso-01.azurewebsites.net \
    --priority 1 \
    --weight 1000 \
    --enabled-state Enabled \
    --http-port 80 \
    --https-port 443

重複此步驟,並新增第二個來源。

az afd origin create \
    --resource-group myRGFD \
    --host-name webappcontoso-02.azurewebsites.net \
    --profile-name contosoafd \
    --origin-group-name og \
    --origin-name contoso2 \
    --origin-host-header webappcontoso-02.azurewebsites.net \
    --priority 1 \
    --weight 1000 \
    --enabled-state Enabled \
    --http-port 80 \
    --https-port 443

新增路由

執行 az afd route create,將您的端點對應至原始群組。 此路由會將要求從端點轉送至來源群組。

az afd route create \
    --resource-group myRGFD \
    --profile-name contosoafd \
    --endpoint-name contosofrontend \
    --forwarding-protocol MatchRequest \
    --route-name route \
    --https-redirect Enabled \
    --origin-group og \
    --supported-protocols Http Https \
    --link-to-default-domain Enabled 

您的 Front Door 設定檔會透過最後一個步驟完全運作。

建立新的安全性原則

建立 WAF 原則

執行 az network front-door waf-policy create,以建立 Front Door 的新 WAF 原則。 此範例建立的原則已啟用且處於防止模式。

注意

受控規則僅適用於 Front Door 進階 SKU。 您可以選擇下方標準 SKU 來使用自訂規則。

az network front-door waf-policy create \
    --name contosoWAF \
    --resource-group myRGFD \
    --sku Premium_AzureFrontDoor \
    --disabled false \
    --mode Prevention

注意

若選取 Detection 模式,WAF 不會封鎖任何要求。

將受控規則指派給 WAF 原則

執行 az network front-door waf-policy managed-rules add,以將受控規則新增至 WAF 原則。 此範例會將 Microsoft_DefaultRuleSet_1.2 和 Microsoft_BotManagerRuleSet_1.0 新增至您的原則。

az network front-door waf-policy managed-rules add \
    --policy-name contosoWAF \
    --resource-group myRGFD \
    --type Microsoft_DefaultRuleSet \
    --version 1.2 
az network front-door waf-policy managed-rules add \
    --policy-name contosoWAF \
    --resource-group myRGFD \
    --type Microsoft_BotManagerRuleSet \
    --version 1.0

建立安全性原則

執行 az afd security-policy create,將您的 WAF 原則套用至端點的預設網域。

注意

將 'mysubscription' 取代為下方網域和 waf-policy 參數中的 Azure 訂用帳戶識別碼。 執行 az account subscription list 以取得訂用帳戶識別碼詳細資料。

az afd security-policy create \
    --resource-group myRGFD \
    --profile-name contosoafd \
    --security-policy-name contososecurity \
    --domains /subscriptions/mysubscription/resourcegroups/myRGFD/providers/Microsoft.Cdn/profiles/contosoafd/afdEndpoints/contosofrontend \
    --waf-policy /subscriptions/mysubscription/resourcegroups/myRGFD/providers/Microsoft.Network/frontdoorwebapplicationfirewallpolicies/contosoWAF

測試 Front Door

建立 Azure Front Door 標準/進階版設定檔時,全域性部署組態需要幾分鐘的時間。 完成後,即可存取所建立的前端主機。

執行 az afd endpoint show 以取得 Front Door 端點的主機名稱。

az afd endpoint show --resource-group myRGFD --profile-name contosoafd --endpoint-name contosofrontend

在瀏覽器中,移至端點主機名稱:contosofrontend-<hash>.z01.azurefd.net。 您的要求將會自動路由傳送至原始群組中最直接的 Web 應用程式。

訊息的螢幕擷取畫面:您的 Web 應用程式正在執行,且正在等待您的同意

若要測試即時全域容錯移轉,請使用下列步驟:

  1. 如上方所述開啟瀏覽器,然後移至端點主機名稱:contosofrontend-<hash>.z01.azurefd.net

  2. 執行 az webapp stop 以停止其中一個 Web 應用程式

    az webapp stop --name WebAppContoso-01 --resource-group myRGFD
    
  3. 重新整理您的瀏覽器。 您應該會看到相同的資訊頁面。

提示

這些動作會有一些延遲。 您可能需要再次重新整理。

  1. 尋找其他 Web 應用程式,並將其停止。

    az webapp stop --name WebAppContoso-02 --resource-group myRGFD
    
  2. 重新整理您的瀏覽器。 此時,您應該會看到一則錯誤訊息。

    訊息的螢幕擷取畫面:已停止 Web 應用程式的兩個執行個體

  3. 執行 az webapp start 以重新啟動其中一個 Web 應用程式。 重新整理瀏覽器,頁面便會回到正常狀態。

    az webapp start --name WebAppContoso-01 --resource-group myRGFD
    

清除資源

不需要 Front Door 的資源時,請刪除這兩個資源群組。 刪除資源群組時也會刪除 Front Door 及其所有相關資源。

執行 az group delete

az group delete --name myRGFD

後續步驟

前往下一篇文章,以了解如何將自訂網域新增至您的 Front Door。