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

快速入门:创建 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 配置文件

若要创建 Azure Front Door 配置文件,请运行 az afd profile create

注意

如果要部署 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 应用的两个实例

对于本教程,你需要两个在不同 Azure 区域中运行的 Web 应用程序实例。 这两个 Web 应用程序实例都以“主动/主动”模式运行,因此其中的任何一个实例都可以为流量提供服务。

如果还没有 Web 应用,请使用以下脚本设置两个示例 Web 应用。

创建应用服务计划

在创建 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 应用

若要在上一步的每个应用服务计划中创建一个 Web 应用,请运行 az webapp create。 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 配置文件

若要创建 Azure Front Door 配置文件,请运行 az afd profile create

注意

如果要部署 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

创建源组

若要创建包含两个 Web 应用的源组,请运行 az afd origin-group create

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 策略

若要为 Front Door 创建新的 WAF 策略,请运行 az network front-door waf-policy create。 此示例创建一个已启用且处于阻止模式的策略。

注意

托管规则仅适用于 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 策略

若要将托管规则添加到 WAF 策略,请运行 az network front-door waf-policy managed-rules add。 此示例将 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

创建安全策略

若要将 WAF 策略应用到终结点的默认域,请运行 az afd security-policy create

注意

在下面的域和 waf 策略参数中,使用 Azure 订阅 ID 替换“mysubscription”。 若要获取订阅 ID 详细信息,请运行 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 标准版/高级版配置文件时,需要花费几分钟时间才能全局部署完配置。 完成后,即可访问你创建的前端主机。

若要获取 Front Door 终结点的主机名,请运行 az afd endpoint show

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。