Esercitazione: Aggiungere e personalizzare le regole di recapito per Frontdoor di Azure Standard/Premium (anteprima) con l'interfaccia della riga di comando di Azure
Frontdoor di Azure Standard/Premium (anteprima) è un cloud moderno e sicuro rete CDN. Frontdoor di Azure usa la rete perimetrale globale Microsoft e si integra con la protezione intelligente dalle minacce. Frontdoor di Azure Standard è incentrato sulla distribuzione di contenuti. Frontdoor di Azure Premium aggiunge numerose funzionalità di sicurezza e personalizzazione. Questa esercitazione è incentrata sulla creazione di un profilo frontdoor di Azure, quindi sull'aggiunta di regole di recapito per un controllo più granulare sui comportamenti dell'app Web.
Nota
Questa documentazione è per Frontdoor di Azure Standard/Premium (anteprima). Per informazioni su Frontdoor di Azure, vedere Frontdoor di Azure? Visualizzare la documentazione di Frontdoor di Azure.
Questa esercitazione illustra come:
- Creare un profilo frontdoor di Azure.
- Creare due istanze di un'app Web.
- Creare un nuovo criterio di sicurezza.
- Verificare la connettività alle app Web.
- Creare un set di regole.
- Creare una regola e aggiungerla al set di regole.
- Aggiungere azioni o condizioni alle regole.
Se non si ha una sottoscrizione di Azure, creare un account Azure gratuito prima di iniziare.
Prerequisiti
Usare l'ambiente Bash in Azure Cloud Shell. Per altre informazioni, vedere Avvio rapido per Bash in Azure Cloud Shell.
Se si preferisce eseguire i comandi di riferimento dell'interfaccia della riga di comando in locale, installare l'interfaccia della riga di comando di Azure. Per l'esecuzione in Windows o macOS, è consigliabile eseguire l'interfaccia della riga di comando di Azure in un contenitore Docker. Per altre informazioni, vedere Come eseguire l'interfaccia della riga di comando di Azure in un contenitore Docker.
Se si usa un'installazione locale, accedere all'interfaccia della riga di comando di Azure con il comando az login. Per completare il processo di autenticazione, seguire la procedura visualizzata nel terminale. Per altre opzioni di accesso, vedere Accedere con l'interfaccia della riga di comando di Azure.
Quando richiesto, installare l'estensione dell'interfaccia della riga di comando di Azure al primo uso. Per altre informazioni sulle estensioni, vedere Usare le estensioni con l'interfaccia della riga di comando di Azure.
Eseguire az version per trovare la versione e le librerie dipendenti installate. Per eseguire l'aggiornamento alla versione più recente, eseguire az upgrade.
Creare un servizio Frontdoor di Azure
Creare un gruppo di risorse
Per questa guida introduttiva sono necessari due gruppi di risorse. Uno negli Stati Uniti centrali e il secondo negli Stati Uniti orientali.
Eseguire az group create per creare gruppi di risorse.
az group create \
--name myRGFDCentral \
--location centralus
az group create \
--name myRGFDEast \
--location eastus
Creare un profilo frontdoor di Azure
Eseguire az afd profile create per creare un profilo frontdoor di Azure.
az afd profile create \
--profile-name contosoafd \
--resource-group myRGFDCentral \
--sku Premium_AzureFrontDoor \
--subscription mysubscription
Creare due istanze di un'app Web
Per questa esercitazione sono necessarie due istanze di un'applicazione Web eseguita in aree di Azure diverse. Entrambe le istanze dell'applicazione Web vengono eseguite in modalità attiva/attiva, in modo che entrambe possano gestire il traffico.
Se non si dispone già di un'app Web, usare lo script seguente per configurare due app Web di esempio.
Creare piani di servizio app
Prima di poter creare le app Web sono necessari due piani di servizio app, uno negli Stati Uniti centrali e il secondo negli Stati Uniti orientali.
Eseguire az appservice plan create per creare i piani di servizio app.
az appservice plan create \
--name myAppServicePlanCentralUS \
--resource-group myRGFDCentral
az appservice plan create \
--name myAppServicePlanEastUS \
--resource-group myRGFDEast
Creare app Web
Eseguire az webapp create per creare un'app Web in ognuno dei piani di servizio app nel passaggio precedente. I nomi delle app Web devono essere univoci a livello globale.
Eseguire az webapp list-runtimes per visualizzare un elenco di stack predefiniti per le app 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"
Prendere nota del nome host predefinito di ogni app Web, in modo da poter definire gli indirizzi back-end quando si distribuirà l'istanza di Frontdoor nel passaggio successivo.
Aggiungi un endpoint
Eseguire az afd endpoint create per creare un endpoint nel profilo. È possibile creare più endpoint nel profilo dopo aver completato l'esperienza di creazione.
az afd endpoint create \
--resource-group myRGFDCentral \
--endpoint-name contoso-frontend \
--profile-name contosoafd \
--origin-response-timeout-seconds 60 \
--enabled-state Enabled
Creare un gruppo di origine
Eseguire az afd origin-group create per creare un gruppo di origine contenente le due app 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
Aggiungere origini al gruppo
Eseguire az afd origin create per aggiungere un'origine al gruppo di origine.
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
Ripetere questo passaggio e aggiungere la seconda origine.
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
Aggiungere una route
Eseguire az afd route create per eseguire il mapping dell'endpoint front-end al gruppo di origine. Questa route inoltra le richieste dall'endpoint a 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
Creare un nuovo criterio di sicurezza
Creare un criterio WAF
Eseguire az network front-door waf-policy create per creare un criterio WAF per uno dei gruppi di risorse.
Creare un nuovo criterio WAF per Frontdoor. In questo esempio viene creato un criterio abilitato e in modalità di prevenzione.
az network front-door waf-policy create
--name contosoWAF /
--resource-group myRGFDCentral /
--sku Premium_AzureFrontDoor
--disabled false /
--mode Prevention
Nota
Se si seleziona Detection
la modalità, waf non blocca le richieste.
Creare i criteri di sicurezza
Eseguire az afd security-policy create per applicare i criteri WAF al dominio predefinito dell'endpoint.
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
Verificare frontdoor di Azure
Quando si crea il profilo Frontdoor di Azure Standard/Premium, la distribuzione globale della configurazione richiede alcuni minuti. Al termine, è possibile accedere all'host front-end creato. In un browser passare all'indirizzo contoso-frontend.z01.azurefd.net
. La richiesta verrà indirizzata automaticamente al server più vicino dai server specificati nel gruppo di origine.
Per testare il failover globale istantaneo, seguire questa procedura:
Aprire un browser, come descritto sopra, e passare all'indirizzo del front-end
contoso-frontend.azurefd.net
.Nel portale di Azure cercare e selezionare Servizi app. Scorrere verso il basso per trovare una delle app Web, in questo esempio WebAppContoso-1.
Selezionare l'app Web, quindi selezionare Arrestae Sì per verifica.
Aggiorna il browser. Si dovrebbe visualizzare la stessa pagina di informazioni.
Suggerimento
Per queste azioni si verifica un leggero ritardo. Può essere necessario eseguire di nuovo l'aggiornamento.
Trovare l'altra app Web e arrestarla.
Aggiorna il browser. Questa volta dovrebbe essere visualizzato un messaggio di errore.
Creare un set di regole
Creare un set di regole per personalizzare la modalità di gestione delle richieste HTTP nel perimetro. Le regole di recapito aggiunte al set di regole forniscono un maggiore controllo sui comportamenti dell'applicazione Web. Eseguire az afd rule-set create per creare un set di regole nel profilo di Frontdoor di Azure.
az afd rule-set create \
--profile-name contosoafd \
--resource-group myRGFDCentral \
--rule-set-name contosorules
Creare una regola di recapito e aggiungerla al set di regole
Creare una nuova regola di recapito all'interno del set di regole. Eseguire az afd rule create per creare una regola di recapito nel set di regole. Per questo esempio si creerà una regola per un reindirizzamento da http a 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
Aggiungere un'azione o una condizione alla regola di recapito
Potrebbe essere necessario personalizzare ulteriormente la nuova regola di recapito. È possibile aggiungere azioni o condizioni in base alle esigenze dopo la creazione. Eseguire az afd rule action add o az afd rule condition add per aggiornare la regola.
Aggiungere un'azione
az afd rule action add \
--resource-group myRGFDCentral \
--rule-set-name contosorules \
--profile-name contosoafd \
--rule-name redirect \
--action-name "CacheExpiration" \
--cache-behavior BypassCache
Aggiungere una condizione
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"
Pulire le risorse
Quando non sono necessarie le risorse per Frontdoor, eliminare entrambi i gruppi di risorse. L'eliminazione dei gruppi di risorse comporta anche l'eliminazione di Frontdoor e di tutte le relative risorse correlate.
Eseguire az group delete:
az group delete \
--name myRGFDCentral
az group delete \
--name myRGFDEast