Share via


Tutorial: Adicionar e personalizar regras de entrega para o Azure Front Door Standard/Premium (Pré-visualização) com a CLI do Azure

O Azure Front Door Standard/Premium (Pré-visualização) é uma CDN na nuvem moderna rápida e segura. O Azure Front Door usa a rede de borda global da Microsoft e integra-se à proteção inteligente contra ameaças. O Azure Front Door Standard concentra-se na entrega de conteúdo. O Azure Front Door Premium adiciona amplas capacidades de segurança e personalização. Este tutorial se concentra na criação de um perfil do Azure Front Door e, em seguida, na adição de regras de entrega para um controle mais granular sobre os comportamentos do seu aplicativo Web.

Nota

Esta documentação destina-se ao Azure Front Door Standard/Premium (Pré-visualização). Procurando informações sobre o Azure Front Door? Veja os documentos do Azure Front Door.

Neste tutorial, irá aprender a:

  • Crie um perfil do Azure Front Door.
  • Crie duas instâncias de um aplicativo Web.
  • Crie uma nova política de segurança.
  • Verifique a conectividade com seus aplicativos Web.
  • Crie um conjunto de regras.
  • Crie uma regra e adicione-a ao conjunto de regras.
  • Adicione ações ou condições às suas regras.

Se não tiver uma subscrição do Azure, crie uma conta gratuita do Azure antes de começar.

Pré-requisitos

  • Use o ambiente Bash no Azure Cloud Shell. Para obter mais informações, consulte Guia de início rápido para Bash no Azure Cloud Shell.

  • Se preferir executar comandos de referência da CLI localmente, instale a CLI do Azure. Se estiver a utilizar o Windows ou macOS, considere executar a CLI do Azure num contentor Docker. Para obter mais informações, consulte Como executar a CLI do Azure em um contêiner do Docker.

    • Se estiver a utilizar uma instalação local, inicie sessão no CLI do Azure ao utilizar o comando az login. Para concluir o processo de autenticação, siga os passos apresentados no seu terminal. Para outras opções de entrada, consulte Entrar com a CLI do Azure.

    • Quando solicitado, instale a extensão da CLI do Azure na primeira utilização. Para obter mais informações sobre as extensões, veja Utilizar extensões com o CLI do Azure.

    • Execute o comando az version para localizar a versão e as bibliotecas dependentes instaladas. Para atualizar para a versão mais recente, execute o comando az upgrade.

Criar uma porta de entrada do Azure

Criar um grupo de recursos

Para este início rápido, você precisará de dois grupos de recursos. Um no centro dos EUA e o segundo no leste dos EUA.

Execute az group create para criar grupos de recursos.

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

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

Criar um perfil do Azure Front Door

Execute az afd profile create para criar um perfil do Azure Front Door.

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

Criar duas instâncias de um aplicativo Web

Você precisa de duas instâncias de um aplicativo Web executado em diferentes regiões do Azure para este tutorial. Ambas as instâncias do aplicativo Web são executadas no modo Ativo/Ativo, portanto, qualquer uma delas pode atender ao tráfego.

Se você ainda não tiver um aplicativo Web, use o script a seguir para configurar dois aplicativos Web de exemplo.

Criar planos de serviço de aplicativo

Antes de criar os aplicativos Web, você precisará de dois planos de serviço de aplicativo, um na região central dos EUA e o segundo no leste dos EUA.

Execute az appservice plan create para criar seus planos de serviço de aplicativo.

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

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

Criar aplicações Web

Execute az webapp create para criar um aplicativo Web em cada um dos planos de serviço de aplicativo na etapa anterior. Os nomes dos aplicativos Web devem ser globalmente exclusivos.

Execute az webapp list-runtimes para ver uma lista de pilhas internas para aplicativos Web.

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"

Anote o nome de host padrão de cada aplicativo Web para que você possa definir os endereços de back-end quando implantar a Front Door na próxima etapa.

Adicionar um ponto final

Execute az afd endpoint create para criar um endpoint no seu perfil. Você pode criar vários pontos de extremidade em seu perfil depois de terminar a experiência de criação.

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

Criar um grupo de origem

Execute az afd origin-group create para criar um grupo de origem que contenha seus dois aplicativos Web.

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

Adicionar origens ao grupo

Execute az afd origin create para adicionar uma origem ao seu grupo de origem.

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

Repita este passo e adicione a sua segunda origem.

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

Adicionar uma rota

Execute az afd route create para mapear seu ponto de extremidade de frontend para o grupo de origem. Essa rota encaminha solicitações do ponto de extremidade para 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

Criar uma nova política de segurança

Criar uma política WAF

Execute az network front-door waf-policy create para criar uma política WAF para um dos seus grupos de recursos.

Crie uma nova política WAF para a sua porta da frente. Este exemplo cria uma política habilitada e no modo de prevenção.

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

Nota

Se você selecionar Detection o modo, o WAF não bloqueará nenhuma solicitação.

Criar a política de segurança

Execute az afd security-policy create para aplicar sua política WAF ao domínio padrão do ponto de extremidade.

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

Verificar o Azure Front Door

Quando você cria o perfil Azure Front Door Standard/Premium, leva alguns minutos para que a configuração seja implantada globalmente. Uma vez concluído, você pode acessar o host frontend que você criou. Em um navegador, vá para contoso-frontend.z01.azurefd.net. O seu pedido será automaticamente encaminhado para o servidor mais próximo a partir dos servidores especificados no grupo de origem.

Para testar o failover global instantâneo, usaremos as seguintes etapas:

  1. Abra um navegador, conforme descrito acima, e vá para o endereço de frontend: contoso-frontend.azurefd.net.

  2. No portal do Azure, procure e selecione Serviços de aplicativo. Role para baixo para localizar um de seus aplicativos Web, WebAppContoso-1 neste exemplo.

  3. Selecione seu aplicativo Web e, em seguida, selecione Parar e Sim para verificar.

  4. Atualize o seu browser. Você deve ver a mesma página de informações.

    Gorjeta

    Há um pouco de atraso para essas ações. Talvez seja necessário atualizar novamente.

  5. Encontre o outro aplicativo Web e pare-o também.

  6. Atualize o seu browser. Desta vez, você verá uma mensagem de erro.

    Both instances of the web app stopped

Criar um conjunto de regras

Crie um conjunto de regras para personalizar como as solicitações HTTP são tratadas na borda. As regras de entrega adicionadas ao conjunto de regras fornecem mais controle sobre os comportamentos do aplicativo Web. Execute az afd rule-set create para criar um conjunto de regras no seu perfil do Azure Front Door.

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

Criar uma regra de entrega e adicioná-la ao seu conjunto de regras

Crie uma nova regra de entrega dentro do seu conjunto de regras. Execute az afd rule create para criar uma regra de entrega no seu conjunto de regras. Neste exemplo, criaremos uma regra para um redirecionamento http para 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

Adicionar uma ação ou condição à sua regra de entrega

Você pode achar que precisa personalizar ainda mais sua nova regra de entrega. Você pode adicionar ações ou condições conforme necessário após a criação. Execute az afd rule action add ou az afd rule condition add para atualizar sua regra.

Adicionar uma ação

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

Adicionar uma condição

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"

Clean up resources (Limpar recursos)

Quando não precisar dos recursos para a Porta da Frente, exclua ambos os grupos de recursos. A exclusão dos grupos de recursos também exclui a Porta da Frente e todos os recursos relacionados.

Executar az group delete:

az group delete \
    --name myRGFDCentral

az group delete \
    --name myRGFDEast