Início Rápido: Direcionar o tráfego da Web com o Gateway de Aplicativo do Azure usando o Azure PowerShell
Neste início rápido, você usará o Azure PowerShell para criar um gateway de aplicativo. Em seguida, você o testará para verificar se ele 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ê atribuirá ouvintes a portas, criará regras e adicionará 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 site no gateway de aplicativo, uma regra básica de roteamento de solicitação e duas máquinas virtuais no pool de back-end.
Conclua também este início rápido usando a CLI do Azure ou o portal do Azure.
Observação
O front-end do Gateway de Aplicativo já dá suporte aos endereços de IP de pilha dupla (Versão prévia). Agora você pode criar até quatro endereços IP de front-end: dois endereços IPv4 (públicos e privados) e dois endereços IPv6 (públicos e privados).
Pré-requisitos
- Uma conta do Azure com uma assinatura ativa. Crie uma conta gratuitamente.
- Azure PowerShell versão 1.0.0 ou posterior (se você executar o Azure PowerShell localmente).
Azure Cloud Shell
O Azure hospeda o Azure Cloud Shell, um ambiente de shell interativo que pode ser usado por meio do navegador. É possível usar o bash ou o PowerShell com o Cloud Shell para trabalhar com os serviços do Azure. É possível usar os comandos pré-instalados do Cloud Shell para executar o código neste artigo, sem precisar instalar nada no seu ambiente local.
Para iniciar o Azure Cloud Shell:
Opção | Exemplo/Link |
---|---|
Selecione Experimentar no canto superior direito de um bloco de código ou de comando. Selecionar Experimentar não copia automaticamente o código nem o comando para o Cloud Shell. | |
Acesse https://shell.azure.com ou selecione o botão Iniciar o Cloud Shell para abri-lo no navegador. | |
Selecione o botão Cloud Shell na barra de menus no canto superior direito do portal do Azure. |
Para usar o Azure Cloud Shell:
Inicie o Cloud Shell.
Selecione o botão Copiar em um bloco de código (ou bloco de comando) para copiar o código ou o comando.
Cole o código ou comando na sessão do Cloud Shell selecionando Ctrl+Shift+V no Windows e no Linux, ou selecionando Cmd+Shift+V no macOS.
Pressione Enter para executar o código ou o comando.
Observação
Recomendamos que você use o módulo Az PowerShell do Azure para interagir com o Azure. Para começar, consulte Instalar o Azure PowerShell. Para saber como migrar para o módulo Az PowerShell, confira Migrar o Azure PowerShell do AzureRM para o Az.
Conectar-se ao Azure
Para se conectar com o Azure, execute Connect-AzAccount
.
Criar um grupo de recursos
No Azure, você pode alocar recursos relacionados a um grupo de recursos. Você pode usar um grupo de recursos existente ou criar um novo.
Para criar um grupo de recursos, use o cmdlet New-AzResourceGroup
:
New-AzResourceGroup -Name myResourceGroupAG -Location eastus
Criar recursos da rede
Para que o Azure se comunique entre os recursos que você cria, ele precisa de uma rede virtual. A sub-rede de gateway de aplicativo pode conter apenas gateways de aplicativo. Nenhum outro recurso é permitido. Você pode criar uma nova sub-rede do Gateway de aplicativo ou usar uma existente. Crie duas sub-redes neste exemplo: uma para o gateway de aplicativo e outra para os servidores de back-end. É possível configurar o endereço IP de front-end do Gateway de Aplicativo como Público ou Privado, de acordo com o caso de uso. Neste exemplo, você escolherá um endereço IP público de front-end.
- Crie as configurações de sub-rede usando
New-AzVirtualNetworkSubnetConfig
. - Crie a rede virtual com as configurações de sub-rede usando
New-AzVirtualNetwork
. - Crie o endereço IP público usando
New-AzPublicIpAddress
.
Observação
As políticas de ponto de extremidade de serviço de rede virtual atualmente não têm suporte em uma sub-rede do Gateway de Aplicativo.
$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 Aplicativo
O SKU Standard v2 é usado neste exemplo.
Criar as configurações de IP e porta de front-end
- Use
New-AzApplicationGatewayIPConfiguration
para criar a configuração que associa a sub-rede que você criou ao gateway de aplicativo. - 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. - 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
Observação
O front-end do gateway de aplicativo agora dá suporte a endereços IP de pilha dupla (Visualização Pública). Agora você pode criar até quatro endereços IP de front-end: dois endereços IPv4 (públicos e privados) e dois endereços IPv6 (públicos e privados).
Criar o pool de back-end
- 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 de back-end na próxima seção, você as adicionará ao pool de back-end. - Defina 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 aplicativo para rotear o tráfego corretamente para o pool de back-end. O Azure também requer uma regra para o ouvinte saber qual pool de back-end deve ser usado para tráfego de entrada.
- Crie um ouvinte usando
New-AzApplicationGatewayHttpListener
com a configuração de front-end e a porta de front-end que você criou anteriormente. - 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ário, crie o gateway de aplicativo:
- Use
New-AzApplicationGatewaySku
para especificar parâmetros para o gateway de aplicativo. - 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
Dica
Você pode modificar os valores dos parâmetros Name
e Tier
para usar um SKU diferente. Por exemplo: Basic
.
Servidores de back-end
Agora que você criou o Gateway de Aplicativo, 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áquinas virtuais, endereço de IP público, endereço de IP interno, nomes de domínio totalmente qualificados (FQDN) e back-ends multilocatários, como o Serviço de Aplicativo do Azure.
Neste exemplo, você cria duas máquinas virtuais para serem usadas como servidores de back-end para o Gateway de Aplicativo. Você também pode instalar o IIS nas máquinas virtuais para verificar se o Azure criou o gateway de aplicativo com êxito.
Criar duas máquinas virtuais
- Obtenha a configuração do pool de back-end do Gateway de Aplicativo criado recentemente com
Get-AzApplicationGatewayBackendAddressPool
. - Crie um adaptador de rede com
New-AzNetworkInterface
. - Crie uma configuração de máquina virtual com
New-AzVMConfig
. - Crie a máquina virtual com
New-AzVM
.
Quando você executa o exemplo de código a seguir para criar as máquinas virtuais, o Azure solicita credenciais. Insira um nome de usuário e uma senha:
$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 exigido para criar o gateway de aplicativo, você o instalou neste início rápido para verificar se o Azure criou o gateway de aplicativo com êxito.
Use o IIS para testar o gateway de aplicativo:
- Execute
Get-AzPublicIPAddress
para obter o endereço IP público do gateway de aplicativo. - Copie e cole o endereço IP público na barra de endereços do seu navegador. Quando atualizar o navegador, você deverá ver o nome da máquina virtual. Uma resposta válida verifica se o gateway de aplicativo foi criado com êxito e é capaz de conectar-se com êxito ao back-end.
Get-AzPublicIPAddress -ResourceGroupName myResourceGroupAG -Name myAGPublicIPAddress
Limpar os recursos
Quando não precisar mais dos recursos que você criou com o gateway de aplicativo, exclua o grupo de recursos. Ao excluir o grupo de recursos, exclua também o gateway de aplicativo e todos os recursos relacionados a ele.
Para excluir o grupo de recursos, chame o cmdlet Remove-AzResourceGroup
:
Remove-AzResourceGroup -Name myResourceGroupAG