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.
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
- Uma conta do Azure com uma subscrição 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 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. | |
Aceda a https://shell.azure.com ou selecione o botão Iniciar Cloud Shell para abrir o Cloud Shell no browser. | |
Selecione o botão Cloud Shell na barra de menus, na parte direita 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 comando.
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.
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.
- Crie as configurações de sub-rede usando
New-AzVirtualNetworkSubnetConfig
o . - Crie a rede virtual com as configurações de sub-rede usando
New-AzVirtualNetwork
o . - Crie o endereço IP público usando
New-AzPublicIpAddress
o .
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
- Use
New-AzApplicationGatewayIPConfiguration
para criar a configuração que associa a sub-rede criada 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
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
- 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. - 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.
- Crie um ouvinte usando
New-AzApplicationGatewayHttpListener
com a configuração de frontend e a porta de frontend 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 aplicação
Agora que você criou os recursos de suporte necessários, 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
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
- Obtenha a configuração do pool de back-end do Application Gateway criada recentemente com
Get-AzApplicationGatewayBackendAddressPool
o . - Crie uma interface de rede com
New-AzNetworkInterface
o . - Crie uma configuração de máquina virtual com
New-AzVMConfig
o . - Crie a máquina virtual com
New-AzVM
o .
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:
- 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. 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
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