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.

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

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 createo .

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 createo . Para criar as máquinas virtuais, use az vm createo .

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 createo . 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. ​ Testar o gateway de aplicação

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

Próximos passos