Creare un gateway applicazione usando il modello di Gestione risorse di AzureCreate an application gateway by using the Azure Resource Manager template

Il gateway applicazione di Azure è un dispositivo di bilanciamento del carico di livello 7.Azure Application Gateway is a layer-7 load balancer. Fornisce richieste HTTP con routing delle prestazioni e failover tra server diversi, sia nel cloud che in locale.It provides failover and performance-routing HTTP requests between different servers, whether they are on the cloud or on-premises. Il gateway applicazione offre numerose funzionalità di controller per la distribuzione di applicazioni (ADC, Application Delivery Controller), tra cui bilanciamento del carico HTTP, affinità di sessione basata su cookie, offload SSL (Secure Sockets Layer), probe di integrità personalizzati, supporto per più siti e molte altre.Application Gateway provides many application delivery controller (ADC) features including HTTP load balancing, cookie-based session affinity, Secure Sockets Layer (SSL) offload, custom health probes, support for multi-site, and many others. Per un elenco completo delle funzionalità supportate, vedere Panoramica del gateway applicazione.To find a complete list of supported features, visit Application Gateway overview

Questo articolo illustra come scaricare e modificare un modello di Azure Resource Manager esistente da GitHub e come distribuirlo da GitHub, da PowerShell e dall'interfaccia della riga di comando di Azure.This article walks you through downloading and modifying an existing Azure Resource Manager template from GitHub and deploying the template from GitHub, PowerShell, and the Azure CLI.

Se si intende distribuire il modello da GitHub senza apportare alcuna modifica, andare direttamente al passaggio che illustra la distribuzione di un modello da GitHub.If you are simply deploying the template directly from GitHub without any changes, skip to deploy a template from GitHub.

ScenarioScenario

In questo scenario si apprenderà come:In this scenario you will:

  • Creare un gateway applicazione con web application firewall.Create an application gateway with web application firewall.
  • Creare una rete virtuale denominata VirtualNetwork1 con un blocco CIDR riservato 10.0.0.0/16.Create a virtual network named VirtualNetwork1 with a reserved CIDR block of 10.0.0.0/16.
  • Creare una subnet denominata Appgatewaysubnet che usa 10.0.0.0/28 come blocco CIDR.Create a subnet called Appgatewaysubnet that uses 10.0.0.0/28 as its CIDR block.
  • Impostare due indirizzi IP back-end configurati in precedenza per i server Web da usare per bilanciare il carico del traffico.Set up two previously configured back-end IPs for the web servers you want to load balance the traffic. In questo esempio di modello vengono usati gli indirizzi IP back-end 10.0.1.10 e 10.0.1.11.In this template example, the back-end IPs are 10.0.1.10 and 10.0.1.11.

Nota

Tali impostazioni sono i parametri per il modello.Those settings are the parameters for this template. Per personalizzare il modello, è possibile modificare le regole, il listener, il protocollo SSL e altre opzioni nel file azuredeploy.json.To customize the template, you can change rules, the listener, SSL, and other options in the azuredeploy.json file.

Scenario

Scaricare e comprendere il modello di Gestione risorse di AzureDownload and understand the Azure Resource Manager template

È possibile scaricare da GitHub il modello di Gestione risorse di Azure esistente per creare una rete virtuale e due subnet, apportare eventuali modifiche e riutilizzarlo.You can download the existing Azure Resource Manager template to create a virtual network and two subnets from GitHub, make any changes you might want, and reuse it. A tale scopo, seguire questa procedura:To do so, use the following steps:

  1. Passare a Create Application Gateway with web application firewall enabled (Creare un gateway applicazione con web application firewall abilitato).Navigate to Create Application Gateway with web application firewall enabled.
  2. Fare clic su azuredeploy.json, quindi fare clic su RAW.Click azuredeploy.json, and then click RAW.
  3. Salvare il file in una cartella locale nel computer.Save the file to a local folder on your computer.
  4. Se si ha familiarità con i modelli di Gestione risorse di Azure, procedere al passaggio 7.If you are familiar with Azure Resource Manager templates, skip to step 7.
  5. Aprire il file salvato e visualizzare il contenuto in parameters nella rigaOpen the file that you saved and look at the contents under parameters in line
  6. La sezione parameters del modello di Gestione risorse di Azure è un segnaposto per i valori che possono essere inseriti durante la distribuzione.Azure Resource Manager template parameters provide a placeholder for values that can be filled out during deployment.

    ParametroParameter DescrizioneDescription
    subnetPrefixsubnetPrefix Blocco CIDR della subnet del gateway applicazione.CIDR block for the application gateway subnet.
    applicationGatewaySizeapplicationGatewaySize Dimensione del gateway applicazione.Size of the application gateway. WAF consente solo gateway di medie e grandi dimensioni.WAF only allows medium and large.
    backendIpaddress1backendIpaddress1 Indirizzo IP del primo server Web.IP address of the first web server.
    backendIpaddress2backendIpaddress2 Indirizzo IP del secondo server Web.IP address of the second web server.
    wafEnabledwafEnabled Impostazione per determinare se WAF è abilitato.Setting to determine if WAF is enabled.
    wafModewafMode Modalità di web application firewall.Mode of the web application firewall. Le opzioni disponibili sono prevention (prevenzione) e detection (rilevamento).Available options are prevention or detection.
    wafRuleSetTypewafRuleSetType Tipo di set di regole per WAF.Ruleset type for WAF. Attualmente OWASP è l'unica opzione supportata.Currently OWASP is the only supported option.
    wafRuleSetVersionwafRuleSetVersion Versione del set di regole.Ruleset version. Attualmente, sono supportate le opzioni OWASP CRS 2.2.9 e 3.0.OWASP CRS 2.2.9 and 3.0 are currently the supported options.
  7. Controllare il contenuto in resources e prendere nota delle proprietà seguenti:Check the content under resources and notice the following properties:

    • type.type. Tipo di risorsa che sarà creato dal modello.Type of resource being created by the template. In questo caso il tipo è Microsoft.Network/applicationGateways, che rappresenta un gateway applicazione.In this case, the type is Microsoft.Network/applicationGateways, which represents an application gateway.
    • name.name. Nome della risorsa.Name for the resource. Si noti l'uso di [parameters('applicationGatewayName')], che indica che il nome viene specificato come input dell'utente o di un file di parametri durante la distribuzione.Notice the use of [parameters('applicationGatewayName')], which means that the name is provided as input by you or by a parameter file during deployment.
    • properties.properties. Elenco di proprietà per la risorsa.List of properties for the resource. Questo modello usa la rete virtuale e l'indirizzo IP pubblico durante la creazione del gateway applicazione.This template uses the virtual network and public IP address during application gateway creation.
  8. Tornare a https://github.com/Azure/azure-quickstart-templates/blob/master/101-application-gateway-waf/.Navigate back to https://github.com/Azure/azure-quickstart-templates/blob/master/101-application-gateway-waf/.

  9. Fare clic su azuredeploy-parameters.json e quindi su RAW.Click azuredeploy-parameters.json, and then click RAW.
  10. Salvare il file in una cartella locale nel computer.Save the file to a local folder on your computer.
  11. Aprire il file salvato e modificare i valori dei parametri.Open the file that you saved and edit the values for the parameters. Usare i valori riportati di seguito per la distribuzione del gateway applicazione descritto in questo scenario.Use the following values to deploy the application gateway described in our scenario.

    {
        "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
        "contentVersion": "1.0.0.0",
        "parameters": {
            "addressPrefix": {
            "value": "10.0.0.0/16"
            },
            "subnetPrefix": {
            "value": "10.0.0.0/28"
            },
            "applicationGatewaySize": {
            "value": "WAF_Medium"
            },
            "capacity": {
            "value": 2
            },
            "backendIpAddress1": {
            "value": "10.0.1.10"
            },
            "backendIpAddress2": {
            "value": "10.0.1.11"
            },
            "wafEnabled": {
            "value": true
            },
            "wafMode": {
            "value": "Detection"
            },
            "wafRuleSetType": {
            "value": "OWASP"
            },
            "wafRuleSetVersion": {
            "value": "3.0"
            }
        }
    }
    
  12. Salvare il file.Save the file. È possibile testare il modello JSON e il modello di parametri usando strumenti online di convalida di JSON come JSlint.com.You can test the JSON template and parameter template by using online JSON validation tools like JSlint.com.

Distribuire il modello di Gestione risorse di Azure usando PowerShellDeploy the Azure Resource Manager template by using PowerShell

Se è la prima volta che si usa Azure PowerShell, vedere Come installare e configurare Azure PowerShell e seguire le istruzioni per accedere ad Azure e selezionare la sottoscrizione.If you have never used Azure PowerShell, visit: How to install and configure Azure PowerShell and follow the instructions to sign into Azure and select your subscription.

  1. Accesso a PowerShellLogin to PowerShell

    Login-AzureRmAccount
    
  2. Controllare le sottoscrizioni per l'account.Check the subscriptions for the account.

    Get-AzureRmSubscription
    

    Verrà richiesto di eseguire l'autenticazione con le proprie credenziali.You are prompted to authenticate with your credentials.

  3. Scegliere le sottoscrizioni ad Azure da usare.Choose which of your Azure subscriptions to use.

    Select-AzureRmSubscription -Subscriptionid "GUID of subscription"
    
  4. Se necessario, creare un gruppo di risorse usando il cmdlet New-AzureResourceGroup .If needed, create a resource group by using the New-AzureResourceGroup cmdlet. Nell'esempio seguente viene creato un nuovo gruppo di risorse denominato AppgatewayRG nella località Stati Uniti orientali.In the following example, you create a resource group called AppgatewayRG in East US location.

    New-AzureRmResourceGroup -Name AppgatewayRG -Location "West US"
    
  5. Eseguire il cmdlet New-AzureRmResourceGroupDeployment per distribuire la nuova rete virtuale usando il modello e i file di parametri scaricati e modificati in precedenza.Run the New-AzureRmResourceGroupDeployment cmdlet to deploy the new virtual network by using the preceding template and parameter files you downloaded and modified.

    New-AzureRmResourceGroupDeployment -Name TestAppgatewayDeployment -ResourceGroupName AppgatewayRG `
    -TemplateFile C:\ARM\azuredeploy.json -TemplateParameterFile C:\ARM\azuredeploy-parameters.json
    

Distribuire il modello di Gestione risorse di Azure usando l'interfaccia della riga di comando di AzureDeploy the Azure Resource Manager template by using the Azure CLI

Per distribuire il modello di Azure Resource Manager scaricato usando l'interfaccia della riga di comando di Azure, seguire questa procedura:To deploy the Azure Resource Manager template you downloaded by using Azure CLI, follow the following steps:

  1. Se è la prima volta che si usa l'interfaccia della riga di comando di Azure, vedere Installare l'interfaccia della riga di comando di Azure e seguire le istruzioni fino al punto in cui si selezionano l'account e la sottoscrizione di Azure.If you have never used Azure CLI, see Install and configure the Azure CLI and follow the instructions up to the point where you select your Azure account and subscription.

  2. Se necessario, eseguire il comando az group create per creare un nuovo gruppo di risorse, come illustrato nel frammento di codice seguente.If necessary, run the az group create command to create a resource group, as shown in the following code snippet. Si noti l'output del comando.Notice the output of the command. Nell'elenco riportato dopo l'output sono indicati i parametri usati.The list shown after the output explains the parameters used. Per altre informazioni sui gruppi di risorse, vedere Panoramica di Azure Resource Manager.For more information about resource groups, visit Azure Resource Manager overview.

    az group create --location westus --name appgatewayRG
    

    -n (o --nome).-n (or --name). Nome del nuovo gruppo di risorse.Name for the new resource group. Per questo scenario, appgatewayRG.For our scenario, it's appgatewayRG.

    -l (o --location).-l (or --location). Area di Azure in cui viene creato il nuovo gruppo di risorse.Azure region where the new resource group is created. Per questo scenario, westus.For our scenario, it's westus.

  3. Eseguire il cmdlet az group deployment create per distribuire la nuova rete virtuale usando il modello e i file di parametri scaricati e modificati nel passaggio precedente.Run the az group deployment create cmdlet to deploy the new virtual network by using the template and parameter files you downloaded and modified in the preceding step. Nell'elenco riportato dopo l'output sono indicati i parametri usati.The list shown after the output explains the parameters used.

    az group deployment create --resource-group appgatewayRG --name TestAppgatewayDeployment --template-file azuredeploy.json --parameters @azuredeploy-parameters.json
    

Distribuire il modello di Gestione risorse di Azure usando il pulsante per la distribuzioneDeploy the Azure Resource Manager template by using click-to-deploy

Il pulsante per la distribuzione offre un altro modo per usare i modelli di Gestione risorse di Azure.Click-to-deploy is another way to use Azure Resource Manager templates. Questo è un modo semplice di usare i modelli con il portale di Azure.It's an easy way to use templates with the Azure portal.

  1. Andare a Creare un gateway applicazione con web application firewall.Go to Create an application gateway with web application firewall.

  2. Fare clic su Distribuzione in Azure.Click Deploy to Azure.

    Distribuzione in Azure

  3. Inserire i parametri per il modello di distribuzione nel portale e fare clic su OK.Fill out the parameters for the deployment template on the portal and click OK.

    Parametri

  4. Selezionare Accetto le condizioni riportate sopra e quindi fare clic su Acquista.Select I agree to the terms and conditions stated above and click Purchase.

  5. Nel pannello Distribuzione personalizzata fare clic su Crea.On the Custom deployment blade, click Create.

Fornire i dati certificato ai modelli di Resource ManagerProviding certificate data to Resource Manager templates

Quando si usa SSL con un modello, il certificato deve essere fornito in una stringa base64 anziché essere caricato.When using SSL with a template, the certificate needs to be provided in a base64 string instead of being uploaded. Per convertire un formato PFX o CER in una stringa base64, usare uno dei comandi seguenti.To convert a .pfx or .cer to a base64 string use one of the following commands. I comandi seguenti convertono il certificato in una stringa base64 che può essere assegnata al modello.The following commands convert the certificate to a base64 string, which can be provided to the template. L'output previsto è una stringa che può essere archiviata in una variabile e incollata nel modello.The expected output is a string that can be stored in a variable and pasted in the template.

macOSmacOS

cert=$( base64 <certificate path and name>.pfx )
echo $cert

WindowsWindows

[System.Convert]::ToBase64String([System.IO.File]::ReadAllBytes("<certificate path and name>.pfx"))

Eliminare tutte le risorseDelete all resources

Per eliminare tutte le risorse create durante l'esecuzione dell'esercizio, seguire questa procedura:To delete all resources created in this article, complete one of the following steps:

PowerShellPowerShell

Remove-AzureRmResourceGroup -Name appgatewayRG

Interfaccia della riga di comando di AzureAzure CLI

az group delete --name appgatewayRG

Passaggi successiviNext steps

Per configurare l'offload SSL, visitare Configurare un gateway applicazione per l'offload SSL.If you want to configure SSL offload, visit: Configure an application gateway for SSL offload.

Per configurare un gateway applicazione da usare con un servizio di bilanciamento del carico interno, visitare Creare un gateway applicazione con un dispositivo di bilanciamento del carico interno (ILB).If you want to configure an application gateway to use with an internal load balancer, visit: Create an application gateway with an internal load balancer (ILB).

Per altre informazioni generali sulle opzioni di bilanciamento del carico, vedere:If you want more information about load balancing options in general, visit: