Compartilhar via


Início Rápido: Direcionar o tráfego da Web com o Gateway de Aplicativo do Azure – CLI do Azure

Neste início rápido, você usará a CLI do Azure 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. Visando a simplicidade, este artigo usa uma configuração simples com um endereço IP de front-end público, um listener básico para hospedar um site no Application Gateway, uma regra básica de roteamento de solicitação e duas máquinas virtuais no pool de back-end.

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

Conclua também este início rápido usando o Azure PowerShell ou o portal do Azure.

Se você ainda não tiver uma conta do Azure, crie uma conta gratuita antes de começar.

Pré-requisitos

  • Este artigo exige a versão 2.0.4 ou posterior da CLI do Azure. Se você está usando o Azure Cloud Shell, a versão mais recente já está instalada.

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

Criar grupo de recursos

No Azure, você pode alocar recursos relacionados a um grupo de recursos. Crie um grupo de recursos usando az group create.

O exemplo a seguir cria um grupo de recursos denominado myResourceGroupAG no local eastus.

az group create --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. Neste exemplo, você criará duas sub-redes: uma para o gateway de aplicativo e outra para os servidores de back-end. É possível configurar 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.

Observação

O front-end do Application Gateway agora dá suporte a endereços IP dual-stack (Prévia 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).

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 um grupo de segurança de rede

Crie um grupo de segurança de rede com az network nsg create. As regras padrão no grupo de segurança de rede bloqueiam todo o acesso de entrada da Internet.

az network nsg create \
  --resource-group myResourceGroupAG \
  --name myNSG

Observação

As regras padrão do grupo de segurança de rede bloqueiam todo o acesso de entrada da Internet, incluindo SSH. Para se conectar à máquina virtual, use o Azure Bastion. Para obter mais informações, consulte Início Rápido: Implantar o Azure Bastion com configurações padrão.

Criar servidores de back-end

Um back-end pode ter NICs, conjuntos de escalonamento de máquinas virtuais, endereços IP públicos, endereços IP internos, nomes de domínio totalmente qualificados (FQDN) e back-ends multitenant, 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 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 "Olá, Mundo" em uma máquina virtual Linux. Para obter mais informações sobre a cloud-init, veja Suporte a cloud-init para máquinas virtuais no Azure.

No Azure Cloud Shell, copie e cole a seguinte configuração em um arquivo chamado cloud-init.txt. Insira editor cloud-init.txt 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 os adaptadores de rede com az network nic create. Para criar as máquinas virtuais, use az vm create.

for i in `seq 1 2`; do
  az network nic create \
    --resource-group myResourceGroupAG \
    --name myNic$i \
    --vnet-name myVNet \
    --subnet myBackendSubnet \
    --network-security-group myNSG
  az vm create \
    --resource-group myResourceGroupAG \
    --name myVM$i \
    --nics myNic$i \
    --image Ubuntu2204 \
    --public-ip-address "" \
    --admin-username azureuser \
    --generate-ssh-keys \
    --custom-data cloud-init.txt
done

Criar o gateway de aplicativo

Crie um gateway de aplicativo usando az network application-gateway create. 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 Standard 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 que o Azure crie o gateway de aplicativo. Depois que ele é criado, você pode exibir as configurações a seguir na seção Configurações da página Gateway de aplicativo:

  • appGatewayBackendPool: Localizado na página Pools de Back-end. Especifica o pool de back-end necessário.
  • appGatewayBackendHttpSettings: Localizado na página Configurações de HTTP. Especifica que o gateway de aplicativo usa a porta 80 e o protocolo HTTP para comunicação.
  • appGatewayHttpListener: Localizado na página Ouvintes. Especifica o ouvinte padrão associado a appGatewayBackendPool.
  • appGatewayFrontendIP: Localizado na página Configurações de IP de front-end. Ele atribui myAGPublicIPAddress a appGatewayHttpListener.
  • rule1: Localizado na página Regras. Especifica a regra de roteamento padrão que está associada ao appGatewayHttpListener.

Observação

Em regiões que dão suporte a zonas de disponibilidade, se você não especificar zonas durante a criação via CLI, PowerShell, ARM/Bicep ou a 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 resiliência aprimorada

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 o gateway de aplicativo com êxito. 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. ​ Teste o gateway de aplicativo

Quando atualizar o navegador, você deverá ver o nome da segunda VM. Isso indica que o gateway de aplicativo foi criado com êxito e que pode conectar-se ao back-end.

Limpar os recursos

Quando não precisar mais dos recursos que você criou com o gateway de aplicativo, use o comando az group delete para excluir o grupo de recursos. Ao excluir o grupo de recursos, exclua também o gateway de aplicativo e todos os recursos relacionados a ele.

az group delete --name myResourceGroupAG

Próximas etapas