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

快速入门:使用 Azure PowerShell 创建 Azure Front Door

本快速入门介绍如何使用 Azure PowerShell 创建 Azure Front Door 配置文件。 你将使用两个 Web 应用作为源,并通过 Azure Front Door 终结点主机名验证连接。

使用 Azure PowerShell 的 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 托管 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”运行代码或命令。

创建资源组

使用 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 应用。

屏幕截图显示了以下消息:你的 Web 应用正在运行,并正在等待你的内容。

若要测试即时全局故障转移,请执行以下操作:

  1. 打开浏览器并转到终结点主机名:contosofrontend-<hash>.z01.azurefd.net

  2. 通过运行 Stop-AzWebApp 停止其中一个 Web 应用:

    Stop-AzWebApp -ResourceGroupName myRGFD -Name "WebAppContoso-01"
    
  3. 刷新浏览器。 应会看到相同的信息页。

  4. 停止其他 Web 应用:

    Stop-AzWebApp -ResourceGroupName myRGFD -Name "WebAppContoso-02"
    
  5. 刷新浏览器。 此时,应会看到一条错误消息。

    消息的屏幕截图:Web 应用的两个实例均已停止。

  6. 通过运行 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 教程。