Creare un probe personalizzato per il gateway applicazione di Azure con PowerShell per Azure Resource ManagerCreate a custom probe for Azure Application Gateway by using PowerShell for Azure Resource Manager

Questo articolo illustra come aggiungere un probe personalizzato a un gateway applicazione esistente con PowerShell.In this article, you add a custom probe to an existing application gateway with PowerShell. I probe personalizzati sono utili per le applicazioni che dispongono di una pagina di controllo dell'integrità specifica o per quelle che non rispondono in modo corretto all'applicazione Web predefinita.Custom probes are useful for applications that have a specific health check page or for applications that do not provide a successful response on the default web application.

Nota

Azure offre due modelli di distribuzione per creare e usare le risorse: Gestione risorse e la distribuzione classica.Azure has two different deployment models for creating and working with resources: Resource Manager and classic. Questo articolo illustra il modello di distribuzione Resource Manager che Microsoft consiglia di usare per le distribuzioni più recenti in sostituzione del modello di distribuzione classica.This article covers using the Resource Manager deployment model, which Microsoft recommends for most new deployments instead of the classic deployment model.

Prerequisito: installare il modulo Azure PowerShellPrerequisite: Install the Azure PowerShell module

Per eseguire i passaggi indicati in questo articolo, è necessario installare e configurare il modulo Azure PowerShell.To perform the steps in this article, you need to install and configure the Azure PowerShell module. Assicurarsi di completare tutte le istruzioni.Be sure to complete all of the instructions. Al termine dell'installazione, accedere ad Azure e selezionare la sottoscrizione.After the installation is finished, sign in to Azure and select your subscription.

Nota

Per completare questi passaggi, è necessario un account Azure.You need an Azure account to complete these steps. Se non si ha un account Azure, è possibile iscriversi per ottenere una versione di valutazione gratuita.If you don't have an Azure account, you can sign up for a free trial.

Creare un gateway applicazione con un probe personalizzatoCreate an application gateway with a custom probe

Eseguire l'accesso e creare un gruppo di risorseSign in and create resource group

  1. Usare Login-AzureRmAccount per eseguire l'autenticazione.Use Login-AzureRmAccount to authenticate.

    Login-AzureRmAccount
    
  2. Acquisire le sottoscrizioni per l'account.Get the subscriptions for the account.

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

    Select-AzureRmSubscription -Subscriptionid '{subscriptionGuid}'
    
  4. Creare un gruppo di risorse.Create a resource group. Se si dispone di un gruppo di risorse, è possibile ignorare questo passaggio.You can skip this step if you have an existing resource group.

    New-AzureRmResourceGroup -Name appgw-rg -Location 'West US'
    

Azure Resource Manager richiede che tutti i gruppi di risorse specifichino una località.Azure Resource Manager requires that all resource groups specify a location. che viene usato come percorso predefinito per le risorse presenti in tale gruppo di risorse.This location is used as the default location for resources in that resource group. Assicurarsi che tutti i comandi per creare un gateway applicazione usino lo stesso gruppo di risorse.Make sure that all commands to create an application gateway use the same resource group.

Nell'esempio precedente è stato creato un gruppo di risorse denominato appgw-RG nella località West US.In the preceding example, we created a resource group called appgw-RG in location West US.

Creare una rete virtuale e una subnetCreate a virtual network and a subnet

L'esempio seguente crea una rete virtuale e una subnet per il gateway applicazione.The following example creates a virtual network and a subnet for the application gateway. Per il gateway applicazione è necessaria una propria subnet.Application gateway requires its own subnet for use. Per questo motivo, la subnet creata per il gateway applicazione deve avere dimensioni minori rispetto allo spazio degli indirizzi della rete virtuale per consentire la creazione e l'uso di altre subnet.For this reason, the subnet created for the application gateway should be smaller than the address space of the VNET to allow for other subnets to be created and used.

# Assign the address range 10.0.0.0/24 to a subnet variable to be used to create a virtual network.
$subnet = New-AzureRmVirtualNetworkSubnetConfig -Name subnet01 -AddressPrefix 10.0.0.0/24

# Create a virtual network named appgwvnet in resource group appgw-rg for the West US region using the prefix 10.0.0.0/16 with subnet 10.0.0.0/24.
$vnet = New-AzureRmVirtualNetwork -Name appgwvnet -ResourceGroupName appgw-rg -Location 'West US' -AddressPrefix 10.0.0.0/16 -Subnet $subnet

# Assign a subnet variable for the next steps, which create an application gateway.
$subnet = $vnet.Subnets[0]

Creare un indirizzo IP pubblico per la configurazione front-endCreate a public IP address for the front-end configuration

Creare una risorsa IP pubblica denominata publicIP01 nel gruppo di risorse appgw-rg per l'area Stati Uniti occidentali.Create a public IP resource publicIP01 in resource group appgw-rg for the West US region. Questo esempio usa un indirizzo IP pubblico per l'indirizzo IP front-end del gateway applicazione.This example uses a public IP address for the front-end IP address of the application gateway. Per il gateway applicazione è necessario che l'indirizzo IP pubblico disponga di un nome DNS creato dinamicamente e di conseguenza l'elemento -DomainNameLabel non può essere specificato durante la creazione dell'indirizzo IP pubblico.Application gateway requires the public IP address to have a dynamically created DNS name therefore the -DomainNameLabel cannot be specified during the creation of the public IP address.

$publicip = New-AzureRmPublicIpAddress -ResourceGroupName appgw-rg -Name publicIP01 -Location 'West US' -AllocationMethod Dynamic

Creare un gateway applicazioneCreate an application gateway

È necessario impostare tutti gli elementi di configurazione prima di creare il gateway applicazione.You set up all configuration items before creating the application gateway. L'esempio seguente crea gli elementi di configurazione necessari per una risorsa del gateway applicazione.The following example creates the configuration items that are needed for an application gateway resource.

ComponenteComponent DescrizioneDescription
Configurazione IP del gatewayGateway IP configuration Configurazione IP per un gateway applicazione.An IP configuration for an application gateway.
Pool back-endBackend pool Pool di indirizzi IP, nomi di dominio completi o schede di interfacce di rete per i server applicazioni che ospitano l'applicazione Web.A pool of IP addresses, FQDN's, or NICs that are to the application servers that host the web application
Probe di integritàHealth probe Probe personalizzato usato per monitorare l'integrità dei membri del pool back-endA custom probe used to monitor the health of the backend pool members
Impostazioni HTTPHTTP settings Raccolta di impostazioni quali porta, protocollo, affinità basata sui cookie, probe e timeout.A collection of settings including, port, protocol, cookie-based affinity, probe, and timeout. Tali impostazioni determinano il modo in cui il traffico viene indirizzato ai membri del pool back-end.These settings determine how traffic is routed to the backend pool members
Porta front-endFrontend port Porta su cui è in ascolto il gateway applicazioneThe port that the application gateway listens for traffic on
ListenerListener Combinazione di protocollo, configurazione IP front-end e porta front-endA combination of a protocol, frontend IP configuration, and frontend port. che consente di ascoltare le richieste in ingresso.This is what listens for incoming requests.
RegolaRule Indirizza il traffico al back-end appropriato in base alle impostazioni HTTP.Routes the traffic to the appropriate backend based on HTTP settings.
# Creates a application gateway Frontend IP configuration named gatewayIP01
$gipconfig = New-AzureRmApplicationGatewayIPConfiguration -Name gatewayIP01 -Subnet $subnet

#Creates a back-end IP address pool named pool01 with IP addresses 134.170.185.46, 134.170.188.221, 134.170.185.50.
$pool = New-AzureRmApplicationGatewayBackendAddressPool -Name pool01 -BackendIPAddresses 134.170.185.46, 134.170.188.221, 134.170.185.50

# Creates a probe that will check health at http://contoso.com/path/path.htm
$probe = New-AzureRmApplicationGatewayProbeConfig -Name probe01 -Protocol Http -HostName 'contoso.com' -Path '/path/path.htm' -Interval 30 -Timeout 120 -UnhealthyThreshold 8

# Creates the backend http settings to be used. This component references the $probe created in the previous command.
$poolSetting = New-AzureRmApplicationGatewayBackendHttpSettings -Name poolsetting01 -Port 80 -Protocol Http -CookieBasedAffinity Disabled -Probe $probe -RequestTimeout 80

# Creates a frontend port for the application gateway to listen on port 80 that will be used by the listener.
$fp = New-AzureRmApplicationGatewayFrontendPort -Name frontendport01 -Port 80

# Creates a frontend IP configuration. This associates the $publicip variable defined previously with the front-end IP that will be used by the listener.
$fipconfig = New-AzureRmApplicationGatewayFrontendIPConfig -Name fipconfig01 -PublicIPAddress $publicip

# Creates the listener. The listener is a combination of protocol and the frontend IP configuration $fipconfig and frontend port $fp created in previous steps.
$listener = New-AzureRmApplicationGatewayHttpListener -Name listener01  -Protocol Http -FrontendIPConfiguration $fipconfig -FrontendPort $fp

# Creates the rule that routes traffic to the backend pools.  In this example we create a basic rule that uses the previous defined http settings and backend address pool.  It also associates the listener to the rule
$rule = New-AzureRmApplicationGatewayRequestRoutingRule -Name rule01 -RuleType Basic -BackendHttpSettings $poolSetting -HttpListener $listener -BackendAddressPool $pool

# Sets the SKU of the application gateway, in this example we create a small standard application gateway with 2 instances.
$sku = New-AzureRmApplicationGatewaySku -Name Standard_Small -Tier Standard -Capacity 2

# The final step creates the application gateway with all the previously defined components.
$appgw = New-AzureRmApplicationGateway -Name appgwtest -ResourceGroupName appgw-rg -Location 'West US' -BackendAddressPools $pool -Probes $probe -BackendHttpSettingsCollection $poolSetting -FrontendIpConfigurations $fipconfig  -GatewayIpConfigurations $gipconfig -FrontendPorts $fp -HttpListeners $listener -RequestRoutingRules $rule -Sku $sku

Aggiungere un probe a un gateway applicazione esistenteAdd a probe to an existing application gateway

Il frammento di codice seguente aggiunge un probe a un gateway applicazione esistente.The following code snippet adds a probe to an existing application gateway.

# Load the application gateway resource into a PowerShell variable by using Get-AzureRmApplicationGateway.
$getgw =  Get-AzureRmApplicationGateway -Name appgwtest -ResourceGroupName appgw-rg

# Create the probe object that will check health at http://contoso.com/path/path.htm
$getgw = Add-AzureRmApplicationGatewayProbeConfig -ApplicationGateway $getgw -Name probe01 -Protocol Http -HostName 'contoso.com' -Path '/path/custompath.htm' -Interval 30 -Timeout 120 -UnhealthyThreshold 8

# Set the backend HTTP settings to use the new probe
$getgw = Set-AzureRmApplicationGatewayBackendHttpSettings -ApplicationGateway $getgw -Name $getgw.BackendHttpSettingsCollection.name -Port 80 -Protocol Http -CookieBasedAffinity Disabled -Probe $probe -RequestTimeout 120

# Save the application gateway with the configuration changes
Set-AzureRmApplicationGateway -ApplicationGateway $getgw

Rimuovere un probe da un gateway applicazione esistenteRemove a probe from an existing application gateway

Il frammento di codice seguente rimuove un probe da un gateway applicazione esistente.The following code snippet removes a probe from an existing application gateway.

# Load the application gateway resource into a PowerShell variable by using Get-AzureRmApplicationGateway.
$getgw =  Get-AzureRmApplicationGateway -Name appgwtest -ResourceGroupName appgw-rg

# Remove the probe from the application gateway configuration object
$getgw = Remove-AzureRmApplicationGatewayProbeConfig -ApplicationGateway $getgw -Name $getgw.Probes.name

# Set the backend HTTP settings to remove the reference to the probe. The backend http settings now use the default probe
$getgw = Set-AzureRmApplicationGatewayBackendHttpSettings -ApplicationGateway $getgw -Name $getgw.BackendHttpSettingsCollection.name -Port 80 -Protocol http -CookieBasedAffinity Disabled

# Save the application gateway with the configuration changes
Set-AzureRmApplicationGateway -ApplicationGateway $getgw

Ottenere il nome DNS del gateway applicazioneGet application gateway DNS name

Dopo avere creato il gateway, il passaggio successivo prevede la configurazione del front-end per la comunicazione.Once the gateway is created, the next step is to configure the front end for communication. Quando si usa un IP pubblico, il gateway applicazione richiede un nome DNS assegnato in modo dinamico, non descrittivo.When using a public IP, application gateway requires a dynamically assigned DNS name, which is not friendly. Per assicurarsi che gli utenti finali possano raggiungere il gateway applicazione, è possibile usare un record CNAME per fare riferimento all'endpoint pubblico del gateway applicazione.To ensure end users can hit the application gateway a CNAME record can be used to point to the public endpoint of the application gateway. Configurazione di un nome di dominio personalizzato in Azure.Configuring a custom domain name for in Azure. A questo scopo, recuperare i dettagli del gateway applicazione e il nome DNS e l'IP associati, usando l'elemento PublicIPAddress collegato al gateway applicazione.To do this, retrieve details of the application gateway and its associated IP/DNS name using the PublicIPAddress element attached to the application gateway. Il nome DNS del gateway applicazione dovrà essere usato per creare un record CNAME che associa le due applicazioni Web a questo nome DNS.The application gateway's DNS name should be used to create a CNAME record, which points the two web applications to this DNS name. Non è consigliabile usare record A perché l'indirizzo VIP può cambiare al riavvio del gateway applicazione.The use of A-records is not recommended since the VIP may change on restart of application gateway.

Get-AzureRmPublicIpAddress -ResourceGroupName appgw-RG -Name publicIP01
Name                     : publicIP01
ResourceGroupName        : appgw-RG
Location                 : westus
Id                       : /subscriptions/<subscription_id>/resourceGroups/appgw-RG/providers/Microsoft.Network/publicIPAddresses/publicIP01
Etag                     : W/"00000d5b-54ed-4907-bae8-99bd5766d0e5"
ResourceGuid             : 00000000-0000-0000-0000-000000000000
ProvisioningState        : Succeeded
Tags                     : 
PublicIpAllocationMethod : Dynamic
IpAddress                : xx.xx.xxx.xx
PublicIpAddressVersion   : IPv4
IdleTimeoutInMinutes     : 4
IpConfiguration          : {
                                "Id": "/subscriptions/<subscription_id>/resourceGroups/appgw-RG/providers/Microsoft.Network/applicationGateways/appgwtest/frontendIP
                            Configurations/frontend1"
                            }
DnsSettings              : {
                                "Fqdn": "00000000-0000-xxxx-xxxx-xxxxxxxxxxxx.cloudapp.net"
                            }

Passaggi successiviNext steps

Per informazioni sulla configurazione dell'offload SSL, vedere Configurare un gateway applicazione per l'offload SSL con Azure Resource ManagerLearn to configure SSL offloading by visiting: Configure SSL Offload