Partilhar via


Guia de Início Rápido: Dirigir o Tráfego Web com o Gateway de Aplicação do Azure usando o Azure PowerShell

Neste início rápido, você usa o Azure PowerShell para criar um gateway de aplicativo. Depois testas para te certificares de que funciona corretamente.

O gateway de aplicações direciona o tráfego web de aplicações para recursos específicos num 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 frontend público, um módulo de escuta básico para hospedar um único site no gateway de aplicações, uma regra de roteamento de solicitação básica e duas máquinas virtuais no pool de backend.

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.

Note

O frontend do Application Gateway agora suporta endereços IP de pilha dupla (Pré-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).

Prerequisites

Azure Cloud Shell

O Azure hospeda o Azure Cloud Shell, um ambiente de shell interativo que você pode usar por meio do navegador. Você pode usar 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:

Option Example/Link
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.
Vá para https://shell.azure.com, ou selecione o botão Iniciar o Cloud Shell para abrir o Cloud Shell no navegador. Botão para iniciar o Azure Cloud Shell.
Selecione o botão Cloud Shell na barra de menus no canto superior direito 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.

Note

Recomendamos que utilize o módulo Azure Az PowerShell para interagir com o Azure. Para começar, veja Install Azure PowerShell. Para saber como migrar para o módulo Az PowerShell, veja Migrate Azure PowerShell from AzureRM to Az.

Conectar-se 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-AzVirtualNetworkSubnetConfig.
  2. Crie a rede virtual com as configurações de sub-rede usando New-AzVirtualNetwork.
  3. Crie o endereço IP público usando New-AzPublicIpAddress.

Note

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.

Crie as configurações de IP e a porta de frontend

  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

Note

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 pool de back-end

  1. Use New-AzApplicationGatewayBackendAddressPool para criar o pool de back-end para o gateway de aplicação. O pool de back-end está vazio por agora. 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 ouvinte e adicionar uma regra

O Azure requer um ouvinte para habilitar o gateway de aplicações para rotear o tráfego adequadamente para o grupo de servidores backend. Azure também requer uma regra para que o escutador saiba qual backend pool 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 aplicativo

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

Tip

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

Note

Em regiões que dão suporte a zonas de disponibilidade, se você não especificar zonas durante a criação por meio de CLI, PowerShell, ARM/Bicep ou API REST, o Gateway de Aplicativo do Azure habilitará automaticamente a redundância de zona, distribuindo instâncias em várias zonas de disponibilidade para maior resiliência

Servidores de retaguarda

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 recentemente criada do pool de back-end do Application Gateway com Get-AzApplicationGatewayBackendAddressPool.
  2. Crie uma interface de rede com New-AzNetworkInterface.
  3. Crie uma configuração de máquina virtual com New-AzVMConfig.
  4. Crie a máquina virtual usando New-AzVM.

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 aplicativo

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

Gateway de Teste de Aplicação

Limpeza de 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