Início Rápido: Direcionar tráfego da Web com o Gateway de Aplicação do Azure - CLI do Azure
Neste início rápido, você usa a CLI do Azure 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 o Azure PowerShell ou o portal do Azure.
Se não tiver uma subscrição do Azure, crie uma conta gratuita do Azure antes de começar.
Pré-requisitos
Use o ambiente Bash no Azure Cloud Shell. Para obter mais informações, consulte Guia de início rápido para Bash no Azure Cloud Shell.
Se preferir executar comandos de referência da CLI localmente, instale a CLI do Azure. Se estiver a utilizar o Windows ou macOS, considere executar a CLI do Azure num contentor Docker. Para obter mais informações, consulte Como executar a CLI do Azure em um contêiner do Docker.
Se estiver a utilizar uma instalação local, inicie sessão no CLI do Azure ao utilizar o comando az login. Para concluir o processo de autenticação, siga os passos apresentados no seu terminal. Para outras opções de entrada, consulte Entrar com a CLI do Azure.
Quando solicitado, instale a extensão da CLI do Azure na primeira utilização. Para obter mais informações sobre as extensões, veja Utilizar extensões com o CLI do Azure.
Execute o comando az version para localizar a versão e as bibliotecas dependentes instaladas. Para atualizar para a versão mais recente, execute o comando az upgrade.
- Este artigo requer a versão 2.0.4 ou posterior da CLI do Azure. Se estiver usando o Azure Cloud Shell, a versão mais recente já está instalada.
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).
Criar grupo de recursos
No Azure, você aloca recursos relacionados a um grupo de recursos. Crie um grupo de recursos usando az group create
o .
O exemplo seguinte cria um grupo de recursos com o nome myResourceGroupAG na localização eastus.
az group create --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. Neste exemplo, você cria duas sub-redes: uma para o gateway de aplicativo e outra para os servidores back-end. Você pode configurar 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.
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).
Para criar a rede virtual e a sub-rede, use az network vnet create
. Execute az network public-ip create
para criar o endereço IP público.
az network vnet create \
--name myVNet \
--resource-group myResourceGroupAG \
--location eastus \
--address-prefix 10.21.0.0/16 \
--subnet-name myAGSubnet \
--subnet-prefix 10.21.0.0/24
az network vnet subnet create \
--name myBackendSubnet \
--resource-group myResourceGroupAG \
--vnet-name myVNet \
--address-prefix 10.21.1.0/24
az network public-ip create \
--resource-group myResourceGroupAG \
--name myAGPublicIPAddress \
--allocation-method Static \
--sku Standard
Criar os servidores de back-end
Um back-end pode ter NICs, conjuntos de dimensionamento de máquina virtual, endereços IP públicos, endereços IP internos, 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 NGINX nas máquinas virtuais para testar o gateway de aplicativo.
Criar duas máquinas virtuais
Instale o servidor Web NGINX nas máquinas virtuais para verificar se o gateway de aplicativo foi criado com êxito. Você pode usar um arquivo de configuração cloud-init para instalar o NGINX e executar um aplicativo Node.js "Hello World" em uma máquina virtual Linux. Para obter mais informações sobre cloud-init, consulte Cloud-init support for virtual machines in Azure.
No Azure Cloud Shell, copie e cole a seguinte configuração em um arquivo chamado cloud-init.txt. Digite o cloud-init.txt do editor para criar o arquivo.
#cloud-config
package_upgrade: true
packages:
- nginx
- nodejs
- npm
write_files:
- owner: www-data:www-data
- path: /etc/nginx/sites-available/default
content: |
server {
listen 80;
location / {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection keep-alive;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
- owner: azureuser:azureuser
- path: /home/azureuser/myapp/index.js
content: |
var express = require('express')
var app = express()
var os = require('os');
app.get('/', function (req, res) {
res.send('Hello World from host ' + os.hostname() + '!')
})
app.listen(3000, function () {
console.log('Hello world app listening on port 3000!')
})
runcmd:
- service nginx restart
- cd "/home/azureuser/myapp"
- npm init
- npm install express -y
- nodejs index.js
Crie as interfaces de rede com az network nic create
o . Para criar as máquinas virtuais, use az vm create
o .
for i in `seq 1 2`; do
az network nic create \
--resource-group myResourceGroupAG \
--name myNic$i \
--vnet-name myVNet \
--subnet myBackendSubnet
az vm create \
--resource-group myResourceGroupAG \
--name myVM$i \
--nics myNic$i \
--image Ubuntu2204 \
--admin-username azureuser \
--generate-ssh-keys \
--custom-data cloud-init.txt
done
Criar o gateway de aplicação
Crie um gateway de aplicativo usando az network application-gateway create
o . Ao criar um gateway de aplicativo com a CLI do Azure, você especifica informações de configuração, como capacidade, SKU (por exemplo: Basic
) e configurações HTTP. Em seguida, o Azure adiciona os endereços IP privados das interfaces de rede como servidores no pool de back-end do gateway de aplicativo.
O SKU padrão v2 é usado neste exemplo.
address1=$(az network nic show --name myNic1 --resource-group myResourceGroupAG | grep "\"privateIPAddress\":" | grep -oE '[^ ]+$' | tr -d '",')
address2=$(az network nic show --name myNic2 --resource-group myResourceGroupAG | grep "\"privateIPAddress\":" | grep -oE '[^ ]+$' | tr -d '",')
az network application-gateway create \
--name myAppGateway \
--location eastus \
--resource-group myResourceGroupAG \
--capacity 2 \
--sku Standard_v2 \
--public-ip-address myAGPublicIPAddress \
--vnet-name myVNet \
--subnet myAGSubnet \
--servers "$address1" "$address2" \
--priority 100
Pode levar até 30 minutos para o Azure criar o gateway de aplicativo. Depois de criado, você pode exibir as seguintes configurações na seção Configurações da página Gateway de aplicativo :
- appGatewayBackendPool: localizado na página Pools de back-end. Ele especifica o pool de back-end necessário.
- appGatewayBackendHttpSettings: localizado na página de configurações HTTP. Ele especifica que o gateway de aplicativo usa a porta 80 e o protocolo HTTP para comunicação.
- appGatewayHttpListener: localizado na página Listeners. Ele especifica o ouvinte padrão associado a appGatewayBackendPool.
- appGatewayFrontendIP: Localizado na página Configurações de IP Frontend. Ele atribui myAGPublicIPAddress a appGatewayHttpListener.
- rule1: Localizado na página Regras . Ele especifica a regra de roteamento padrão associada a appGatewayHttpListener.
Testar o gateway de aplicação
Embora o Azure não exija um servidor Web NGINX 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. Para obter o endereço IP público do novo gateway de aplicativo, use az network public-ip show
.
az network public-ip show \
--resource-group myResourceGroupAG \
--name myAGPublicIPAddress \
--query [ipAddress] \
--output tsv
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 segunda VM. Isso indica que o gateway de aplicativo foi criado com êxito e pode se conectar ao back-end.
Clean up resources (Limpar recursos)
Quando não precisar mais dos recursos criados com o gateway de aplicativo, use o az group delete
comando para excluir o grupo de recursos. Ao excluir o grupo de recursos, você também exclui o gateway de aplicativo e todos os seus recursos relacionados.
az group delete --name myResourceGroupAG