Guia de início rápido: tráfego da Web direto com o Gateway de Aplicativo do Azure usando o Azure PowerShell

Neste início rápido, você usa o Azure PowerShell para criar um gateway de aplicativo. Em seguida, você testá-lo para se certificar de que funciona corretamente.

O gateway de aplicativo direciona o tráfego da Web do aplicativo para recursos específicos em um pool de back-end. Você atribui ouvintes a portas, cria regras e adiciona recursos a um pool de back-end. Para simplificar, este artigo usa uma configuração simples com um endereço IP de front-end público, um ouvinte básico para hospedar um único site no gateway de aplicativo, uma regra de roteamento de solicitação básica e duas máquinas virtuais no pool de back-end.

Diagrama conceitual da configuração de início rápido.

Você também pode concluir este início rápido usando a CLI do Azure ou o portal do Azure.

Nota

O frontend do Application Gateway agora suporta endereços IP de pilha dupla (visualização). Agora você pode criar até quatro endereços IP frontend: dois endereços IPv4 (público e privado) e dois endereços IPv6 (público e privado).

Pré-requisitos

Azure Cloud Shell

O Azure aloja o Azure Cloud Shell, um ambiente de shell interativo que pode utilizar através do seu browser. Pode utilizar o Bash ou o PowerShell com o Cloud Shell para trabalhar com os serviços do Azure. Você pode usar os comandos pré-instalados do Cloud Shell para executar o código neste artigo, sem precisar instalar nada em seu ambiente local.

Para iniciar o Azure Cloud Shell:

Opção Exemplo/Ligação
Selecione Experimentar no canto superior direito de um código ou bloco de comandos. Selecionar Experimentar não copia automaticamente o código ou comando para o Cloud Shell. Captura de tela que mostra um exemplo de Try It for Azure Cloud Shell.
Aceda a https://shell.azure.com ou selecione o botão Iniciar Cloud Shell para abrir o Cloud Shell no browser. Botão para iniciar o Azure Cloud Shell.
Selecione o botão Cloud Shell na barra de menus, na parte direita do portal do Azure. Captura de tela que mostra o botão Cloud Shell no portal do Azure

Para usar o Azure Cloud Shell:

  1. Inicie o Cloud Shell.

  2. Selecione o botão Copiar em um bloco de código (ou bloco de comando) para copiar o código ou comando.

  3. Cole o código ou comando na sessão do Cloud Shell selecionando Ctrl+Shift+V no Windows e Linux ou selecionando Cmd+Shift+V no macOS.

  4. Selecione Enter para executar o código ou comando.

Nota

Recomendamos que utilize 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 do Az PowerShell, veja Migrar o Azure PowerShell do AzureRM para o Az.

Ligar ao Azure

Para se conectar ao Azure, execute Connect-AzAccount.

Criar um grupo de recursos

No Azure, você aloca recursos relacionados a um grupo de recursos. Você pode usar um grupo de recursos existente ou criar um novo.

Para criar um novo grupo de recursos, use o New-AzResourceGroup cmdlet:

New-AzResourceGroup -Name myResourceGroupAG -Location eastus

Criar recursos de rede

Para que o Azure se comunique entre os recursos que você cria, ele precisa de uma rede virtual. A sub-rede do gateway de aplicativo pode conter apenas gateways de aplicativo. Não são permitidos outros recursos. Você pode criar uma nova sub-rede para o Application Gateway ou usar uma existente. Você cria duas sub-redes neste exemplo: uma para o gateway de aplicativo e outra para os servidores back-end. Você pode configurar o endereço IP Frontend do Application Gateway para ser Público ou Privado de acordo com seu caso de uso. Neste exemplo, você escolherá um endereço IP Frontend Público.

  1. Crie as configurações de sub-rede usando New-AzVirtualNetworkSubnetConfigo .
  2. Crie a rede virtual com as configurações de sub-rede usando New-AzVirtualNetworko .
  3. Crie o endereço IP público usando New-AzPublicIpAddresso .

Nota

Atualmente, não há suporte para políticas de ponto de extremidade de serviço de rede virtual em uma sub-rede do Application Gateway.

$agSubnetConfig = New-AzVirtualNetworkSubnetConfig `
  -Name myAGSubnet `
  -AddressPrefix 10.21.0.0/24
$backendSubnetConfig = New-AzVirtualNetworkSubnetConfig `
  -Name myBackendSubnet `
  -AddressPrefix 10.21.1.0/24
New-AzVirtualNetwork `
  -ResourceGroupName myResourceGroupAG `
  -Location eastus `
  -Name myVNet `
  -AddressPrefix 10.21.0.0/16 `
  -Subnet $agSubnetConfig, $backendSubnetConfig
New-AzPublicIpAddress `
  -ResourceGroupName myResourceGroupAG `
  -Location eastus `
  -Name myAGPublicIPAddress `
  -AllocationMethod Static `
  -Sku Standard

Criar um gateway de aplicação

O SKU padrão v2 é usado neste exemplo.

Criar as configurações de IP e a porta de front-end

  1. Use New-AzApplicationGatewayIPConfiguration para criar a configuração que associa a sub-rede criada ao gateway de aplicativo.
  2. Use New-AzApplicationGatewayFrontendIPConfig para criar a configuração que atribui o endereço IP público que você criou anteriormente para o gateway de aplicativo.
  3. Use New-AzApplicationGatewayFrontendPort para atribuir a porta 80 para acessar o gateway de aplicativo.
$vnet   = Get-AzVirtualNetwork -ResourceGroupName myResourceGroupAG -Name myVNet
$subnet = Get-AzVirtualNetworkSubnetConfig -VirtualNetwork $vnet -Name myAGSubnet
$pip    = Get-AzPublicIPAddress -ResourceGroupName myResourceGroupAG -Name myAGPublicIPAddress 
$gipconfig = New-AzApplicationGatewayIPConfiguration `
  -Name myAGIPConfig `
  -Subnet $subnet
$fipconfig = New-AzApplicationGatewayFrontendIPConfig `
  -Name myAGFrontendIPConfig `
  -PublicIPAddress $pip
$frontendport = New-AzApplicationGatewayFrontendPort `
  -Name myFrontendPort `
  -Port 80

Nota

O frontend do Application Gateway agora suporta endereços IP de pilha dupla (visualização pública). Agora você pode criar até quatro endereços IP frontend: dois endereços IPv4 (público e privado) e dois endereços IPv6 (público e privado).

Criar o conjunto de back-end

  1. Use New-AzApplicationGatewayBackendAddressPool para criar o pool de back-end para o gateway de aplicativo. O pool de back-end está vazio por enquanto. Ao criar as NICs do servidor back-end na próxima seção, você as adicionará ao pool de back-end.
  2. Configure as configurações para o pool de back-end com New-AzApplicationGatewayBackendHttpSetting.
$backendPool = New-AzApplicationGatewayBackendAddressPool `
  -Name myAGBackendPool
$poolSettings = New-AzApplicationGatewayBackendHttpSetting `
  -Name myPoolSettings `
  -Port 80 `
  -Protocol Http `
  -CookieBasedAffinity Enabled `
  -RequestTimeout 30

Criar o serviço de escuta e adicionar uma regra

O Azure requer um ouvinte para habilitar o gateway de aplicativo para rotear o tráfego adequadamente para o pool de back-end. O Azure também requer uma regra para que o ouvinte saiba qual pool de back-end usar para o tráfego de entrada.

  1. Crie um ouvinte usando New-AzApplicationGatewayHttpListener com a configuração de frontend e a porta de frontend que você criou anteriormente.
  2. Use New-AzApplicationGatewayRequestRoutingRule para criar uma regra chamada rule1.
$defaultlistener = New-AzApplicationGatewayHttpListener `
  -Name myAGListener `
  -Protocol Http `
  -FrontendIPConfiguration $fipconfig `
  -FrontendPort $frontendport
$frontendRule = New-AzApplicationGatewayRequestRoutingRule `
  -Name rule1 `
  -RuleType Basic `
  -Priority 100 `
  -HttpListener $defaultlistener `
  -BackendAddressPool $backendPool `
  -BackendHttpSettings $poolSettings

Criar o gateway de aplicação

Agora que você criou os recursos de suporte necessários, crie o gateway de aplicativo:

  1. Use New-AzApplicationGatewaySku para especificar parâmetros para o gateway de aplicativo.
  2. Use New-AzApplicationGateway para criar o gateway de aplicativo.
$sku = New-AzApplicationGatewaySku `
  -Name Standard_v2 `
  -Tier Standard_v2 `
  -Capacity 2
New-AzApplicationGateway `
  -Name myAppGateway `
  -ResourceGroupName myResourceGroupAG `
  -Location eastus `
  -BackendAddressPools $backendPool `
  -BackendHttpSettingsCollection $poolSettings `
  -FrontendIpConfigurations $fipconfig `
  -GatewayIpConfigurations $gipconfig `
  -FrontendPorts $frontendport `
  -HttpListeners $defaultlistener `
  -RequestRoutingRules $frontendRule `
  -Sku $sku

Gorjeta

Você pode modificar valores dos Name parâmetros e Tier para usar uma SKU diferente. Por exemplo: Basic.

Servidores de back-end

Agora que você criou o Application Gateway, crie as máquinas virtuais de back-end que hospedarão os sites. Um back-end pode ser composto por NICs, conjuntos de dimensionamento de máquina virtual, endereço IP público, endereço IP interno, FQDN (nomes de domínio totalmente qualificados) e back-ends multilocatários, como o Serviço de Aplicativo do Azure.

Neste exemplo, você cria duas máquinas virtuais para usar como servidores back-end para o gateway de aplicativo. Você também instala o IIS nas máquinas virtuais para verificar se o Azure criou com êxito o gateway de aplicativo.

Criar duas máquinas virtuais

  1. Obtenha a configuração do pool de back-end do Application Gateway criada recentemente com Get-AzApplicationGatewayBackendAddressPoolo .
  2. Crie uma interface de rede com New-AzNetworkInterfaceo .
  3. Crie uma configuração de máquina virtual com New-AzVMConfigo .
  4. Crie a máquina virtual com New-AzVMo .

Quando você executa o exemplo de código a seguir para criar as máquinas virtuais, o Azure solicita credenciais. Introduza um nome de utilizador e uma palavra-passe:

$appgw = Get-AzApplicationGateway -ResourceGroupName myResourceGroupAG -Name myAppGateway
$backendPool = Get-AzApplicationGatewayBackendAddressPool -Name myAGBackendPool -ApplicationGateway $appgw
$vnet   = Get-AzVirtualNetwork -ResourceGroupName myResourceGroupAG -Name myVNet
$subnet = Get-AzVirtualNetworkSubnetConfig -VirtualNetwork $vnet -Name myBackendSubnet
$cred = Get-Credential
for ($i=1; $i -le 2; $i++)
{
  $nic = New-AzNetworkInterface `
    -Name myNic$i `
    -ResourceGroupName myResourceGroupAG `
    -Location EastUS `
    -Subnet $subnet `
    -ApplicationGatewayBackendAddressPool $backendpool
  $vm = New-AzVMConfig `
    -VMName myVM$i `
    -VMSize Standard_DS2_v2
  Set-AzVMOperatingSystem `
    -VM $vm `
    -Windows `
    -ComputerName myVM$i `
    -Credential $cred
  Set-AzVMSourceImage `
    -VM $vm `
    -PublisherName MicrosoftWindowsServer `
    -Offer WindowsServer `
    -Skus 2016-Datacenter `
    -Version latest
  Add-AzVMNetworkInterface `
    -VM $vm `
    -Id $nic.Id
  Set-AzVMBootDiagnostic `
    -VM $vm `
    -Disable
  New-AzVM -ResourceGroupName myResourceGroupAG -Location EastUS -VM $vm
  Set-AzVMExtension `
    -ResourceGroupName myResourceGroupAG `
    -ExtensionName IIS `
    -VMName myVM$i `
    -Publisher Microsoft.Compute `
    -ExtensionType CustomScriptExtension `
    -TypeHandlerVersion 1.4 `
    -SettingString '{"commandToExecute":"powershell Add-WindowsFeature Web-Server; powershell Add-Content -Path \"C:\\inetpub\\wwwroot\\Default.htm\" -Value $($env:computername)"}' `
    -Location EastUS
}

Testar o gateway de aplicação

Embora o IIS não seja necessário para criar o gateway de aplicativo, você o instalou neste início rápido para verificar se o Azure criou com êxito o gateway de aplicativo.

Use o IIS para testar o gateway de aplicativo:

  1. Execute Get-AzPublicIPAddress para obter o endereço IP público do gateway de aplicativo.
  2. Copie e cole o endereço IP público na barra de endereços do seu navegador. Ao atualizar o navegador, você verá o nome da máquina virtual. Uma resposta válida verifica se o gateway de aplicativo foi criado com êxito e se ele pode se conectar com êxito ao back-end.
Get-AzPublicIPAddress -ResourceGroupName myResourceGroupAG -Name myAGPublicIPAddress

Testar o gateway de aplicação

Clean up resources (Limpar recursos)

Quando não precisar mais dos recursos criados com o gateway de aplicativo, exclua o grupo de recursos. Ao excluir o grupo de recursos, você também exclui o gateway de aplicativo e todos os seus recursos relacionados.

Para excluir o grupo de recursos, chame o Remove-AzResourceGroup cmdlet:

Remove-AzResourceGroup -Name myResourceGroupAG

Próximos passos