Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Tutorial erstellen Sie einen Traffic Manager Linked Record in Azure DNS mit der Azure CLI. Ein Traffic Manager Linked Record verbindet einen DNS-Datensatzsatz direkt mit einem Azure Traffic Manager-Profil und gibt IP-Adressen an Clients zurück, ohne eine Zwischenlösung von CNAME.
Wichtig
Traffic Manager Linked Records befindet sich derzeit in der VORSCHAU. Die zusätzlichen Nutzungsbestimmungen für Microsoft Azure-Vorschauen enthalten rechtliche Bedingungen. Sie gelten für diejenigen Azure-Features, die sich in der Beta- oder Vorschauversion befinden oder aber anderweitig noch nicht zur allgemeinen Verfügbarkeit freigegeben sind.
Für einen portalbasierten Walkthrough siehe Create a Traffic Manager Linked Record mit dem Azure-Portal. Für einen konzeptionellen Überblick siehe Traffic Manager Linked Records Übersicht.
In diesem Tutorial erfahren Sie, wie:
- Erstellen Sie die Netzwerk- und virtuelle Maschineninfrastruktur.
- Erstelle ein Traffic Manager-Profil mit Endpunkten.
- Erstellen Sie einen Traffic Manager Linked Record mit Azure CLI.
- Teste den vom Verkehrsmanager verknüpften Datensatz.
Wenn Sie noch kein Azure-Abonnement haben, erstellen Sie ein kostenloses Konto, bevor Sie beginnen.
Voraussetzungen
Ein Azure-Konto mit einem aktiven Abonnement.
Azure CLI Version 2.60 oder später lokal installiert oder Azure Cloud Shell verwenden. Führen Sie
az --versionaus, um Ihre Version zu überprüfen. Informationen zum Installieren oder Aktualisieren finden Sie unter Install Azure CLI.Ein in Azure DNS gehosteter Domänenname. Wenn du keine Azure DNS-Zone hast, erstelle eine und delegiere deine Domain an Azure DNS.
Hinweis
In diesem Tutorial wird
contoso.comals Beispieldomänenname verwendet. Ersetzen Siecontoso.comdurch Ihren eigenen Domänennamen.
Verwenden Sie die Bash-Umgebung in Azure Cloud Shell. Weitere Informationen finden Sie unter "Erste Schritte mit Azure Cloud Shell".
Wenn Sie CLI-Referenzbefehle lieber lokal ausführen möchten, installieren Sie die Azure CLI. Wenn Sie mit Windows oder macOS arbeiten, sollten Sie die Azure CLI in einem Docker-Container ausführen. Weitere Informationen finden Sie unter How to run the Azure CLI in a Docker container.
Wenn Sie eine lokale Installation verwenden, melden Sie sich mithilfe des Befehls az login bei der Azure CLI an. Führen Sie die in Ihrem Terminal angezeigten Schritte aus, um den Authentifizierungsprozess abzuschließen. Weitere Anmeldeoptionen finden Sie unter Authentifizierung bei Azure mithilfe von Azure CLI.
Wenn Sie dazu aufgefordert werden, installieren Sie die Azure CLI-Erweiterung bei der ersten Verwendung. Weitere Informationen zu Erweiterungen finden Sie unter Verwenden und Verwalten von Erweiterungen mit der Azure CLI.
Führen Sie az version aus, um die installierte Version und die abhängigen Bibliotheken zu ermitteln. Führen Sie az upgrade aus, um auf die neueste Version zu aktualisieren.
Festlegen von Umgebungsvariablen
Setze Variablen für die Ressourcennamen und -standorte, die in diesem Tutorial verwendet werden, um zu vermeiden, dass sie in jedem Befehl wiederholt werden.
RESOURCE_GROUP="test-rg"
LOCATION="eastus"
VNET_NAME="vnet-1"
TM_PROFILE_NAME="tm-profile"
DNS_ZONE="contoso.com"
Ressourcengruppe erstellen
az group create \
--name $RESOURCE_GROUP \
--location $LOCATION
Erstellen des virtuellen Netzwerks
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
Erstellen eines virtuellen Webservercomputers
Erstellen Sie zwei Ubuntu-virtuelle Maschinen mit öffentlichen IP-Adressen, die als Traffic Manager-Endpunkte verwendet werden.
Erstellen Sie die öffentlichen IP-Adressen
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
Erstellen der Netzwerksicherheitsgruppe
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
Erstellen Sie die virtuellen Maschinen-NICs
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
Erstellen der virtuellen Computer
Hinweis
Ersetzen Sie <your-ssh-public-key> sie durch den Inhalt Ihrer SSH-Public-Key-Datei oder verwenden --generate-ssh-keys Sie, um ein neues Schlüsselpaar zu erstellen.
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
Der letzte Befehl wartet darauf, dass VM-2 erstellt wird. Beide VMs sind bereit, wenn der Befehl zurückkehrt.
Installiere NGINX auf beiden 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"
Abfrage der öffentlichen IP-Adressen
Beachten Sie die IP-Adressen beider VMs. Sie brauchen sie, wenn Sie Traffic Manager-Endpunkte hinzufügen.
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"
Erstellen Sie das Traffic Manager-Profil
az network traffic-manager profile create \
--resource-group $RESOURCE_GROUP \
--name $TM_PROFILE_NAME \
--routing-method Priority \
--unique-dns-name tm-profile-$RANDOM
Fügen Sie Endpunkte zum Traffic Manager-Profil hinzu
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
Holen Sie sich die vollständige Ressourcen-ID des Traffic Manager-Profils. Du brauchst es beim Erstellen des verknüpften Datensatzes.
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"
Erstellen Sie den verknüpften Datensatz des Verkehrsmanagers
Verwenden az network dns record-set a create Sie mit dem Parameter, --traffic-management-profile um den Traffic Manager Linked Record zu erstellen. Der folgende Befehl erstellt einen A-Datensatz am Zonenapex (@).
Hinweis
Der Parameter --traffic-management-profile ist in Azure CLI Version 2.60 und später verfügbar und erfordert die Traffic Manager Linked Records Vorschau-API (2024-06-01-previewoder später).
az network dns record-set a create \
--resource-group <dns-zone-resource-group> \
--zone-name $DNS_ZONE \
--name "@" \
--traffic-management-profile $TM_PROFILE_ID
Hinweis
Ersetzen Sie <dns-zone-resource-group> sie durch die Ressourcengruppe, die Ihre Azure DNS-Zone enthält. Dies kann sich von der Ressourcengruppe unterscheiden, die das Traffic Manager-Profil enthält.
Um einen Traffic Manager Linked Record für eine Subdomain statt des Zonen-Apex zu erstellen, ersetzen "@" Sie zum Beispiel "www"durch den Unterdomainnamen:
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
Überprüfen Sie den verknüpften Datensatz
az network dns record-set a show \
--resource-group <dns-zone-resource-group> \
--zone-name $DNS_ZONE \
--name "@"
Die Ausgabe enthält eine trafficManagementProfile Eigenschaft mit der Traffic-Manager-Profil-Ressourcen-ID, die bestätigt, dass die Verbindung hergestellt ist:
{
"name": "@",
"properties": {
"trafficManagementProfile": {
"id": "/subscriptions/.../resourceGroups/test-rg/providers/Microsoft.Network/trafficManagerProfiles/tm-profile"
},
"TTL": 30,
...
}
}
Hinweis
Der in der Ausgabe angezeigte TTL-Wert wird aus der DNS-Konfiguration des Traffic Manager-Profils übernommen. Jeder TTL-Wert, der während der Datensatzerstellung angegeben wurde, wird ignoriert.
Testen Sie den verkehrsmanager-verknüpften Datensatz
Um die Namensauflösung zu testen, fragen Sie direkt einen der Azure DNS-Nameserver für Ihre Zone ab. Listen Sie zunächst die Nameserver Ihrer Zone auf:
az network dns record-set ns show \
--resource-group <dns-zone-resource-group> \
--zone-name $DNS_ZONE \
--name "@" \
--query "nsRecords[0].nsdname" \
--output tsv
Verwenden Sie den zurückgegebenen Nameserver mit nslookup , um die Auflösung zu testen:
nslookup contoso.com <name-server-from-above>
Die Antwort enthält die IP-Adresse des gesunden Traffic Manager-Endpunkts mit der höchsten Priorität – ohne CNAME-Einträge in der Antwort. Dies bestätigt, dass Traffic Manager Linked Records IP-Adressen direkt zurückgibt.
Test des Failovers
Besuchen Sie Ihre Domain. Du solltest die NGINX-Seite für VM-1 sehen.
Stoppe die VM-1 :
az vm stop --resource-group $RESOURCE_GROUP --name vm-1Warte ein paar Minuten, bis Traffic Manager den Endpunkt als ungesund erkennt.
Löschen Sie Ihren lokalen DNS-Cache (
ipconfig /flushdnsunter Windows,sudo dscacheutil -flushcacheunter macOS) und besuchen Sie erneut Ihre Domain. Du solltest jetzt die Seite für VM-2 sehen.VM-1 neu starten, um die ursprüngliche Konfiguration wiederherzustellen:
az vm start --resource-group $RESOURCE_GROUP --name vm-1
Bereinigen von Ressourcen
Wenn Sie die in diesem Tutorial erstellten Ressourcen nicht mehr benötigen, löschen Sie die Ressourcengruppe und den DNS-Datensatz:
# 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
Nächste Schritte
In diesem Tutorial hast du einen Traffic Manager Linked Record mit Azure CLI erstellt. Der Datensatz verknüpft deinen DNS-Zonen-Apex mit einem Traffic Manager-Profil und gibt IP-Adressen direkt an die Clients zurück.
- Erfahren Sie mehr über Traffic Manager Linked Records.
- Erstellen Sie einen Traffic Manager Linked Record mit Azure PowerShell oder dem Azure Portal.
- Informieren Sie sich ausführlicher über Traffic Manager-Routingmethoden.
- Erfahren Sie mehr über streng getypte Profile.