Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Neste tutorial, cria um Registo Ligado do Gestor de Tráfego no DNS do Azure usando a CLI do Azure. Um Registo Ligado do Traffic Manager liga diretamente um conjunto de registos DNS a um perfil do Gestor de Tráfego do Azure, devolvendo endereços IP a clientes sem uma resolução intermédia CNAME.
Important
Os Registos Ligados do Gestor de Tráfego estão atualmente em PRÉ-VISUALIZAÇÃO. Consulte os Termos de Utilização Complementares das Visualizações Prévias do Microsoft Azure para obter os termos legais que se aplicam às funcionalidades do Azure que estão em beta, em pré-visualização ou que ainda não foram lançadas para disponibilidade geral.
Para um guia baseado em portal, consulte Criar um Registo Ligado do Gestor de Tráfego usando o portal Azure. Para uma visão conceptual, veja a visão geral dos Registos Ligados do Gestor de Tráfego.
Neste tutorial, aprenderás como:
- Criar a infraestrutura de redes e máquinas virtuais.
- Crie um perfil de Gestor de Tráfego com endpoints.
- Crie um registo ligado do gestor de tráfego usando CLI do Azure.
- Teste o registo ligado ao gestor de tráfego.
Se não tiver uma subscrição do Azure, crie uma conta gratuita antes de começar.
Pré-requisitos
Uma conta do Azure com uma assinatura ativa.
CLI do Azure versão 2.60 ou posterior instalada localmente, ou use Azure Cloud Shell. Execute
az --versionpara verificar sua versão. Para instalar ou atualizar, consulte Install CLI do Azure.Um nome de domínio hospedado no DNS do Azure. Se não tiveres uma zona DNS do Azure, cria uma e delega o teu domínio ao DNS do Azure.
Note
Neste tutorial,
contoso.comé usado como um nome de domínio de exemplo. Substituacontoso.compelo seu próprio nome de domínio.
Usa o ambiente Bash em Azure Cloud Shell. Para mais informações, veja Get started with Azure Cloud Shell.
Se preferires executar comandos de referência de CLI localmente, instala o CLI do Azure. Se estiver a usar Windows ou macOS, considere executar o CLI do Azure num contentor Docker. Para mais informações, veja Como executar o CLI do Azure num contentor Docker.
Se você estiver usando uma instalação local, entre na CLI do Azure usando o comando az login . Para concluir o processo de autenticação, siga os passos exibidos no seu terminal. Para outras opções de iniciação de sessão, veja Autenticar para Azure usando CLI do Azure.
Quando solicitado, instale a extensão do CLI do Azure na primeira utilização. Para mais informações sobre extensões, veja Usar e gerir extensões com a CLI do Azure.
Execute az version para descobrir a versão e as bibliotecas dependentes que estão instaladas. Para atualizar para a versão mais recente, execute az upgrade.
Definir variáveis de ambiente
Defina variáveis para os nomes dos recursos e locais usados ao longo deste tutorial para evitar repeti-los em cada comando.
RESOURCE_GROUP="test-rg"
LOCATION="eastus"
VNET_NAME="vnet-1"
TM_PROFILE_NAME="tm-profile"
DNS_ZONE="contoso.com"
Criar o grupo de recursos
az group create \
--name $RESOURCE_GROUP \
--location $LOCATION
Criar a rede virtual
az network vnet create \
--resource-group $RESOURCE_GROUP \
--name $VNET_NAME \
--address-prefix 10.10.0.0/16 \
--subnet-name subnet-1 \
--subnet-prefix 10.10.0.0/24
Criar máquinas virtuais de servidor Web
Crie duas máquinas virtuais Ubuntu com endereços IP públicos para usar como endpoints do Gestor de Tráfego.
Criar os endereços IP públicos
az network public-ip create \
--resource-group $RESOURCE_GROUP \
--name public-ip-1 \
--sku Standard \
--dns-name vm-1-tmlink
az network public-ip create \
--resource-group $RESOURCE_GROUP \
--name public-ip-2 \
--sku Standard \
--dns-name vm-2-tmlink
Criar o grupo de segurança de rede
az network nsg create \
--resource-group $RESOURCE_GROUP \
--name nsg-1
az network nsg rule create \
--resource-group $RESOURCE_GROUP \
--nsg-name nsg-1 \
--name AllowHTTP \
--protocol tcp \
--priority 100 \
--destination-port-range 80
az network nsg rule create \
--resource-group $RESOURCE_GROUP \
--nsg-name nsg-1 \
--name AllowHTTPS \
--protocol tcp \
--priority 110 \
--destination-port-range 443
Criar as NICs das máquinas virtuais
az network nic create \
--resource-group $RESOURCE_GROUP \
--name nic-1 \
--vnet-name $VNET_NAME \
--subnet subnet-1 \
--network-security-group nsg-1 \
--public-ip-address public-ip-1
az network nic create \
--resource-group $RESOURCE_GROUP \
--name nic-2 \
--vnet-name $VNET_NAME \
--subnet subnet-1 \
--network-security-group nsg-1 \
--public-ip-address public-ip-2
Criar as máquinas virtuais
Note
Substitua <your-ssh-public-key> pelo conteúdo do seu ficheiro de chave pública SSH, ou use --generate-ssh-keys para criar um novo par de chaves.
az vm create \
--resource-group $RESOURCE_GROUP \
--name vm-1 \
--nics nic-1 \
--image Ubuntu2404 \
--admin-username azureuser \
--generate-ssh-keys \
--no-wait
az vm create \
--resource-group $RESOURCE_GROUP \
--name vm-2 \
--nics nic-2 \
--image Ubuntu2404 \
--admin-username azureuser \
--generate-ssh-keys
O último comando espera que o vm-2 seja criado. Ambas as VMs estão prontas quando o comando regressa.
Instala o NGINX em ambas as VMs
az vm run-command invoke \
--resource-group $RESOURCE_GROUP \
--name vm-1 \
--command-id RunShellScript \
--scripts "sudo apt-get update && sudo apt-get install -y nginx && echo 'Hello World from vm-1' | sudo tee /var/www/html/index.html"
az vm run-command invoke \
--resource-group $RESOURCE_GROUP \
--name vm-2 \
--command-id RunShellScript \
--scripts "sudo apt-get update && sudo apt-get install -y nginx && echo 'Hello World from vm-2' | sudo tee /var/www/html/index.html"
Recuperar os endereços IP públicos
Note os endereços IP de ambas as VMs. Precisas deles ao adicionar endpoints do Traffic Manager.
VM1_IP=$(az network public-ip show \
--resource-group $RESOURCE_GROUP \
--name public-ip-1 \
--query ipAddress \
--output tsv)
VM2_IP=$(az network public-ip show \
--resource-group $RESOURCE_GROUP \
--name public-ip-2 \
--query ipAddress \
--output tsv)
echo "vm-1 IP: $VM1_IP"
echo "vm-2 IP: $VM2_IP"
Criar o perfil do Gestor de Tráfego
az network traffic-manager profile create \
--resource-group $RESOURCE_GROUP \
--name $TM_PROFILE_NAME \
--routing-method Priority \
--unique-dns-name tm-profile-$RANDOM
Adicionar endpoints ao perfil do Traffic Manager
az network traffic-manager endpoint create \
--resource-group $RESOURCE_GROUP \
--profile-name $TM_PROFILE_NAME \
--name tmendpoint-1 \
--type externalEndpoints \
--target $VM1_IP \
--priority 1
az network traffic-manager endpoint create \
--resource-group $RESOURCE_GROUP \
--profile-name $TM_PROFILE_NAME \
--name tmendpoint-2 \
--type externalEndpoints \
--target $VM2_IP \
--priority 2
Obtenha o ID completo do recurso do perfil do Traffic Manager. Precisa dele ao criar o registo ligado.
TM_PROFILE_ID=$(az network traffic-manager profile show \
--resource-group $RESOURCE_GROUP \
--name $TM_PROFILE_NAME \
--query id \
--output tsv)
echo "Traffic Manager profile ID: $TM_PROFILE_ID"
Criar o Registo Ligado do Gestor de Tráfego
Use az network dns record-set a create com o --traffic-management-profile parâmetro para criar o Registo Ligado do Gestor de Tráfego. O comando seguinte cria um registo A no ápice da zona (@).
Note
O --traffic-management-profile parâmetro está disponível na versão 2.60 do CLI do Azure e posteriores, e requer a API de pré-visualização dos Registos Ligados do Gestor de Tráfego (2024-06-01-previewou posterior).
az network dns record-set a create \
--resource-group <dns-zone-resource-group> \
--zone-name $DNS_ZONE \
--name "@" \
--traffic-management-profile $TM_PROFILE_ID
Note
Substitui <dns-zone-resource-group> pelo grupo de recursos que contém a tua zona DNS do Azure. Isto pode diferir do grupo de recursos que contém o perfil do Gestor de Tráfego.
Para criar um Registo Ligado do Gestor de Tráfego para um subdomínio em vez do ápice da zona, substitua "@" pelo nome do subdomínio, por exemplo "www":
az network dns record-set a create \
--resource-group <dns-zone-resource-group> \
--zone-name $DNS_ZONE \
--name "www" \
--traffic-management-profile $TM_PROFILE_ID
Verificar o registo associado
az network dns record-set a show \
--resource-group <dns-zone-resource-group> \
--zone-name $DNS_ZONE \
--name "@"
A saída inclui uma trafficManagementProfile propriedade com o ID de recurso do perfil do Gestor de Tráfego, confirmando que a ligação está estabelecida:
{
"name": "@",
"properties": {
"trafficManagementProfile": {
"id": "/subscriptions/.../resourceGroups/test-rg/providers/Microsoft.Network/trafficManagerProfiles/tm-profile"
},
"TTL": 30,
...
}
}
Note
O valor TTL mostrado na saída é herdado da configuração DNS do perfil do Traffic Manager. Qualquer valor TTL especificado durante a criação do registo é ignorado.
Teste o Registo Ligado do Gestor de Tráfego
Para testar a resolução de nomes, consulta diretamente um dos servidores de nomes do DNS do Azure para a tua zona. Primeiro, liste os servidores de nomes da sua zona:
az network dns record-set ns show \
--resource-group <dns-zone-resource-group> \
--zone-name $DNS_ZONE \
--name "@" \
--query "nsRecords[0].nsdname" \
--output tsv
Use o servidor de nomes devolvido para nslookup testar a resolução:
nslookup contoso.com <name-server-from-above>
A resposta contém o endereço IP do endpoint saudável do Gestor de Tráfego de maior prioridade — sem quaisquer registos CNAME na resposta. Isto confirma que os Registos Ligados do Gestor de Tráfego devolvem endereços IP diretamente.
Ativação pós-falha de teste
Navegue até ao seu domínio. Deves ver a página NGINX do VM-1.
Parar a VM VM-1 :
az vm stop --resource-group $RESOURCE_GROUP --name vm-1Espere alguns minutos até o Traffic Manager detetar o endpoint como pouco saudável.
Esvazie a cache DNS local (
ipconfig /flushdnsno Windows,sudo dscacheutil -flushcacheno macOS) e navegue novamente até ao seu domínio. Agora deves ver a página do vm-2.Reiniciar o VM-1 para restaurar a configuração original:
az vm start --resource-group $RESOURCE_GROUP --name vm-1
Limpeza de recursos
Quando já não precisares dos recursos criados neste tutorial, elimina o grupo de recursos e o registo DNS:
# Delete the resource group and all resources within it
az group delete --name $RESOURCE_GROUP --yes --no-wait
# Delete the Traffic Manager Linked Record from the DNS zone
az network dns record-set a delete \
--resource-group <dns-zone-resource-group> \
--zone-name $DNS_ZONE \
--name "@" \
--yes
Passos seguintes
Neste tutorial, criou um Registo Ligado do Gestor de Tráfego usando CLI do Azure. O registo liga o ápice da sua zona DNS a um perfil do Gestor de Tráfego, devolvendo endereços IP diretamente aos clientes.
- Saiba mais sobre os Registos Ligados do Gestor de Tráfego.
- Crie um Registo Ligado do Gestor de Tráfego usando Azure PowerShell ou o portal Azure.
- Saiba mais sobre os métodos de roteamento do Gerenciador de Tráfego.
- Saiba mais sobre Perfis Estritamente Tipados.