Criar uma investigação personalizada para o Gateway de Aplicativo do Azure usando o PowerShell do Azure Resource Manager

Neste artigo, você adiciona uma investigação personalizada a um gateway de aplicativo existente com o PowerShell. As investigações personalizadas são úteis para aplicativos que tenham uma página de verificação de integridade específica ou para aplicativos que não forneçam uma resposta bem-sucedida no aplicativo Web padrão.

Observação

Recomendamos que você use o módulo Azure Az do PowerShell para interagir com o Azure. Para começar, consulte Instalar o Azure PowerShell. Para saber como migrar para o módulo Az PowerShell, veja Migrar Azure PowerShell do AzureRM para o Az.

Pré-requisito: instalar o módulo do Azure PowerShell

Para seguir as etapas deste artigo, será necessário instalar e configurar o módulo do Azure PowerShell. Certifique-se de concluir todas as instruções. Depois que a instalação for concluída, entre no Azure e selecione sua assinatura.

Observação

É necessária uma conta do Azure para concluir essas etapas. Se você ainda não tem uma conta do Azure, crie-a gratuitamente.

Criar um gateway de aplicativo com uma investigação personalizada

Entrar e criar grupo de recursos

  1. Use Connect-AzAccount para autenticar.

    Connect-AzAccount
    
  2. Obter as assinaturas da conta.

    Get-AzSubscription
    
  3. Escolha quais das suas assinaturas do Azure deseja usar.

    Select-AzSubscription -Subscriptionid '{subscriptionGuid}'
    
  4. Crie um grupos de recursos. Você pode ignorar esta etapa se tem um grupo de recursos existente.

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

O Azure Resource Manager requer que todos os grupos de recursos especifiquem um local. Essa localização determina onde o Azure armazena os metadados do grupo de recursos. Verifique se todos os comandos para criar um Gateway de Aplicativo usam o mesmo grupo de recursos.

No exemplo anterior, criamos um grupo de recursos denominado appgw-RG no local Oeste dos EUA.

Criar uma rede virtual e uma sub-rede

O exemplo a seguir cria uma rede virtual e uma sub-rede para o gateway de aplicativo. O gateway de aplicativo requer sua própria sub-rede para uso. Por esse motivo, a sub-rede criada para o gateway de aplicativo deve ser menor que o espaço de endereço do VNET para possibilitar que outras sub-redes sejam criadas e usadas.

# Assign the address range 10.0.0.0/24 to a subnet variable to be used to create a virtual network.
$subnet = New-AzVirtualNetworkSubnetConfig -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-AzVirtualNetwork -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]

Criar um endereço IP público para a configuração de front-end

Crie um recurso IP público estático do SKU padrão chamado publicIP01 no grupo de recursos appgw-rg para a região Oeste dos EUA. O Application Gateway v2 suporta apenas endereços IP públicos estáticos do SKU padrão.

$publicip = New-AzPublicIpAddress -ResourceGroupName appgw-rg -Name publicIP01 -Location 'West US' -AllocationMethod Static -Sku Standard

Criar um Gateway de Aplicativo

Configure todos os itens de configuração antes de criar o gateway de aplicativo. O exemplo a seguir cria os itens de configuração necessários para um recurso de gateway de aplicativo.

Componente Descrição
Configuração de IP do gateway Uma configuração de IP para um gateway de aplicativo.
Pool de back-end Um pool de endereços IP, FQDNs ou NICs que são para os servidores de aplicativos que hospedam o aplicativo Web
Investigação de integridade Uma investigação personalizada usada para monitorar a integridade dos membros do pool de back-end
Configurações HTTP Uma coleção de configurações, inclusive porta, protocolo, afinidade baseada em cookie, investigação e tempo limite. Essas configurações determinam como o tráfego é roteado para os membros do pool de back-end
Porta de front-end A porta em que o gateway de aplicativo escuta tráfego
Ouvinte Uma combinação de um protocolo, configuração de IP front-end e porta front-end. É o que escuta solicitações de entrada.
Regra Roteia o tráfego para o back-end apropriado com base em configurações de HTTP.
# Creates an application gateway Frontend IP configuration named gatewayIP01
$gipconfig = New-AzApplicationGatewayIPConfiguration -Name gatewayIP01 -Subnet $subnet

#Creates a backend IP address pool named pool01 with IP addresses 134.170.185.46, 134.170.188.221, 134.170.185.50.
$pool = New-AzApplicationGatewayBackendAddressPool -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-AzApplicationGatewayProbeConfig -Name probe01 -Protocol Http -HostName 'contoso.com' -Path '/path/path.htm' -Interval 30 -Timeout 30 -UnhealthyThreshold 8

# Creates the backend http settings to be used. This component references the $probe created in the previous command.
$poolSetting = New-AzApplicationGatewayBackendHttpSettings -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-AzApplicationGatewayFrontendPort -Name frontendport01 -Port 80

# Creates a frontend IP configuration. This associates the $publicip variable defined previously with the frontend IP that will be used by the listener.
$fipconfig = New-AzApplicationGatewayFrontendIPConfig -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-AzApplicationGatewayHttpListener -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 previously defined HTTP settings and backend address pool. It also associates the listener with the rule.
$rule = New-AzApplicationGatewayRequestRoutingRule -Name rule01 -RuleType Basic -BackendHttpSettings $poolSetting -HttpListener $listener -BackendAddressPool $pool -Priority 1

# Sets the SKU of the application gateway. In this example, we create a Standard v2 application gateway with two instances.
$sku = New-AzApplicationGatewaySku -Name Standard_v2 -Tier Standard_v2 -Capacity 2

# The final step creates the application gateway with all the previously defined components.
$appgw = New-AzApplicationGateway -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

Adicionar uma investigação a um Application Gateway existente

O snippet de código a seguir adiciona uma investigação a um gateway de aplicativo existente.

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

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

# Set the backend HTTP settings to use the new probe
$getgw = Set-AzApplicationGatewayBackendHttpSettings -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-AzApplicationGateway -ApplicationGateway $getgw

Remover uma investigação de um Application Gateway existente

O snippet de código a seguir remove uma investigação de um gateway de aplicativo existente.

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

# Remove the probe from the application gateway configuration object
$getgw = Remove-AzApplicationGatewayProbeConfig -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-AzApplicationGatewayBackendHttpSettings -ApplicationGateway $getgw -Name $getgw.BackendHttpSettingsCollection.name -Port 80 -Protocol http -CookieBasedAffinity Disabled

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

Obtenha o endereço IP público do gateway de aplicação

Depois de criar o gateway, recupere seu endereço IP público estático. Para usar um domínio personalizado, crie um registro A que mapeie o domínio para esse endereço. Para mais informações, veja Mapear um domínio personalizado para um recurso do Azure.

$publicip = Get-AzPublicIpAddress -ResourceGroupName appgw-rg -Name publicIP01
$publicip.IpAddress

Próximas etapas

Saiba como configurar o descarregamento de TLS ao visitar Configurar descarregamento de TLS