Руководство. Добавление и настройка правил доставки для Azure Front Door категории "Стандартный" или "Премиум" (предварительная версия) с помощью Azure CLI

Azure Front Door категории "Стандартный" или "Премиум" (предварительная версия) — это быстрая и безопасная современная облачная сеть доставки содержимого. Azure Front Door использует глобальную сеть периметра Microsoft и интегрируется с интеллектуальной защитой от угроз. Azure Front Door категории "Стандартный" сосредоточен на доставке содержимого. Azure Front Door категории "Премиум" добавляет широкие возможности обеспечения безопасности и настройку. В этом руководстве рассматривается создание профиля Azure Front Door и добавление правил доставки для более детального контроля над поведением веб-приложения.

Примечание.

Эта документация предназначена для Azure Front Door категории "Стандартный" или "Премиум" (предварительная версия). Сведения об Azure Front Door См. документацию по Azure Front Door.

Из этого руководства вы узнаете, как выполнять следующие задачи:

  • Создание профиля Azure Front Door.
  • Создание двух экземпляров веб-приложения.
  • Создание новой политики безопасности.
  • Проверка подключения к веб-приложениям.
  • Создание набора правил.
  • Создание правила и добавление его в набор правил.
  • Добавление действий или условий к правилам.

Если у вас еще нет подписки Azure, создайте бесплатную учетную запись Azure, прежде чем начинать работу.

Необходимые компоненты

  • Используйте среду Bash в Azure Cloud Shell. Дополнительные сведения см . в кратком руководстве по Bash в Azure Cloud Shell.

  • Если вы предпочитаете выполнять справочные команды CLI локально, установите Azure CLI. Если вы работаете в Windows или macOS, Azure CLI можно запустить в контейнере Docker. Дополнительные сведения см. в статье Как запустить Azure CLI в контейнере Docker.

    • Если вы используете локальную установку, выполните вход в Azure CLI с помощью команды az login. Чтобы выполнить аутентификацию, следуйте инструкциям в окне терминала. Сведения о других возможностях, доступных при входе, см. в статье Вход с помощью Azure CLI.

    • Установите расширение Azure CLI при первом использовании, когда появится соответствующий запрос. Дополнительные сведения о расширениях см. в статье Использование расширений с Azure CLI.

    • Выполните команду az version, чтобы узнать установленную версию и зависимые библиотеки. Чтобы обновиться до последней версии, выполните команду az upgrade.

Создавать Azure Front Door.

Создание или изменение группы ресурсов

Для целей этого краткого руководства необходимы две группы ресурсов. Одна в центральной части США и вторая — в восточной части США.

Запустите az group create, чтобы создать группу ресурсов.

az group create \
    --name myRGFDCentral \
    --location centralus

az group create \
    --name myRGFDEast \
    --location eastus

Создание профиля Azure Front Door

Выполните команду az afd profile create, чтобы создать профиль Azure Front Door.

az afd profile create \
    --profile-name contosoafd \
    --resource-group myRGFDCentral \
    --sku Premium_AzureFrontDoor \
    --subscription mysubscription

Создание двух экземпляров веб-приложения

Для этого руководства потребуются два экземпляра веб-приложения, которые выполняются в разных регионах Azure. Оба экземпляра этого веб-приложения работают в режиме активный — активный, то есть любой из них будет принимать трафик службы.

Если у вас нет веб-приложения, создайте два его экземпляра, используя показанный ниже скрипт.

Создание планов службы приложений

Прежде чем вы сможете создавать веб-приложения, вам потребуются два плана службы приложений: один в центральной части США, а второй — в восточной части США.

Чтобы создать план службы приложений, выполните команду az appservice plan create.

az appservice plan create \
    --name myAppServicePlanCentralUS \
    --resource-group myRGFDCentral

az appservice plan create \
    --name myAppServicePlanEastUS \
    --resource-group myRGFDEast

Создание веб-приложений

Выполните командуaz webapp create, чтобы создать веб-приложение в каждом из планов службы приложений на предыдущем шаге. Имена веб-приложений должны быть глобально уникальными.

Выполните команду az webapp list-runtimes, чтобы просмотреть список встроенных стеков для веб-приложений.

az webapp create \
    --name WebAppContoso-001 \
    --resource-group myRGFDCentral \
    --plan myAppServicePlanCentralUS \
    --runtime "DOTNETCORE|2.1"

az webapp create \
    --name WebAppContoso-002 \
    --resource-group myRGFDEast \
    --plan myAppServicePlanEastUS \
    --runtime "DOTNETCORE|2.1"

Запишите имя узла по умолчанию для каждого веб-приложения, чтобы можно было определить внутренние адреса при развертывании Front Door на следующем шаге.

Добавление конечной точки

Выполните команду az afd endpoint create, чтобы создать конечную точку в вашем профиле. После завершения процесса создания в профиле можно создать несколько конечных точек.

az afd endpoint create \
    --resource-group myRGFDCentral \
    --endpoint-name contoso-frontend \
    --profile-name contosoafd \
    --origin-response-timeout-seconds 60 \
    --enabled-state Enabled

Создание группы источников

Выполните команду az afd origin-group create, чтобы создать группу источников, которая содержит два веб-приложения.

az afd origin-group create \
    --resource-group myRGFDCentral \
    --origin-group-name og1 \
    --profile-name contosoafd \
    --probe-request-type GET \
    --probe-protocol Http \
    --probe-interval-in-seconds 120 \
    --probe-path /test1/azure.txt \
    --sample-size 4 \
    --successful-samples-required 3 \
    --additional-latency-in-milliseconds 50

Добавление источников в группу

Выполните команду az afd origin create, чтобы добавить источник в группу источников.

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

Повторите этот шаг и добавьте второй источник.

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

Добавление маршрута

Выполните команду az afd route create, чтобы подключить интерфейсную конечную точку к группе источника. Этот маршрут перенаправляет запросы от конечной точки к og1.

az afd route create \
    --resource-group myRGFDCentral \
    --endpoint-name contoso-frontend \
    --profile-name contosoafd \
    --route-name route1 \
    --https-redirect Enabled \
    --origin-group og1 \
    --supported-protocols Https \
    --link-to-default-domain Enabled \
    --forwarding-protocol MatchRequest

Создание новой политики безопасности

Создание политики WAF

Выполните команду az network front-door waf-policy create, чтобы создать политику WAF для одной из групп ресурсов.

Создайте новую политику WAF для Front Door. В этом примере создается политика, которая включена и находится в режиме предотвращения.

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

Примечание.

Если выбран режим Detection, WAF не блокирует запросы.

Создание политики безопасности

Выполните команду az afd security-policy create, чтобы применить политику WAF к домену по умолчанию конечной точки.

az afd security-policy create \
    --resource-group myRGFDCentral \
    --profile-name contosoafd \
    --security-policy-name contososecurity \
    --domains /subscriptions/mysubscription/resourcegroups/myRGFDCentral/providers/Microsoft.Cdn/profiles/contosoafd/afdEndpoints/contoso-frontend.z01.azurefd.net \
    --waf-policy /subscriptions/mysubscription/resourcegroups/myRGFDCentral/providers/Microsoft.Network/frontdoorwebapplicationfirewallpolicies/contosoWAF

Проверка Azure Front Door

При создании профиля Azure Front Door уровня "Стандартный" или "Премиум" глобальное развертывание конфигурации требует нескольких минут. После завершения вы сможете получить доступ к созданному интерфейсному узлу. Для этого откройте в браузере адрес contoso-frontend.z01.azurefd.net. Ваш запрос будет автоматически направлен на ближайший сервер из указанных ранее в группе источника.

Чтобы проверить мгновенную глобальную отработку отказа, используются такие шаги:

  1. Откройте браузер и перейдите по следующему адресу интерфейсной части: contoso-frontend.azurefd.net.

  2. На портале Azure найдите и выберите Службы приложений. Прокрутите страницу вниз до одного из настроенных веб-приложений, в нашем примере это WebAppContoso-1.

  3. Выберите это веб-приложение, щелкните Остановить и подтвердите действие, щелкнув Да.

  4. Обновите свой браузер. Вы увидите ту же самую информационную страницу.

    Совет

    Но эти действия могут выполняться с небольшой задержкой. Возможно, нужно будет обновить страницу еще раз.

  5. Теперь найдите и остановите второе приложение.

  6. Обновите свой браузер. На этот раз вы увидите сообщение об ошибке.

    Both instances of the web app stopped

Создание набора правил

Создайте набор правил для настройки обработки HTTP-запросов в пограничной среде. Правила доставки, добавленные в набор правил, обеспечивают больший контроль над поведением веб-приложения. Выполните команду az afd rule-set create, чтобы создать набор правил в профиле Azure Front Door.

az afd rule-set create \
    --profile-name contosoafd \
    --resource-group myRGFDCentral \
    --rule-set-name contosorules

Создайте правило доставки и добавьте его в набор правил.

Создайте новое правило доставки в наборе правил. Выполните команду az afd rule create, чтобы создать правило доставки в наборе правил. В этом примере мы создадим правило для перенаправления HTTP в HTTPS.

az afd rule create \
    --resource-group myRGFDCentral \
    --rule-set-name contosorules \
    --profile-name contosoafd \
    --order 1 \
    --match-variable RequestScheme \
    --operator Equal \
    --match-values HTTP \
    --rule-name "redirect" \
    --action-name "UrlRedirect" \
    --redirect-protocol Https \
    --redirect-type Moved

Добавление действия или условия в правило доставки

Может оказаться, что вам потребуется дополнительная настройка нового правила доставки. Вы можете добавлять действия или условия по мере необходимости после создания. Выполните команду az afd rule action add или az afd rule condition add, чтобы обновить правило.

Добавление действия

az afd rule action add \
    --resource-group myRGFDCentral \
    --rule-set-name contosorules \
    --profile-name contosoafd \
    --rule-name redirect \
    --action-name "CacheExpiration" \
    --cache-behavior BypassCache

Добавление условия

az afd rule condition add \
    --resource-group myRGFDCentral \
    --rule-set-name contosorules \
    --profile-name contosoafd \
    --rule-name redirect \
    --match-variable RemoteAddress \
    --operator GeoMatch \
    --match-values "TH"

Очистка ресурсов

Если ресурсы для Front Door не нужны, удалите обе группы ресурсов. Удалив их, вы также удалите Front Door и все связанные с ним ресурсы.

Выполните команду az group delete:

az group delete \
    --name myRGFDCentral

az group delete \
    --name myRGFDEast