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 erstellst du einen Traffic Manager Linked Record in Azure DNS mit Azure PowerShell. 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 PowerShell.
- 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 PowerShell Version 12.0.0 oder später lokal installiert oder Azure Cloud Shell verwenden. Führen Sie
Get-Module -ListAvailable Azaus, um Ihre Version zu überprüfen. Informationen zum Installieren oder Upgraden finden Sie unter Installieren von Azure PowerShell. - 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.com als Beispieldomänenname verwendet. Ersetzen Sie contoso.com durch Ihren eigenen Domänennamen.
Hinweis
Es wird empfohlen, das Azure Az PowerShell-Modul für die Interaktion mit Azure zu verwenden. Informationen zu den ersten Schritten finden Sie unter Install Azure PowerShell. Informationen zum Migrieren zum Az PowerShell-Modul finden Sie unter Migrieren von Azure PowerShell von AzureRM zum Az-Modul.
Azure Cloud Shell
Azure hostet Azure Cloud Shell, eine interaktive Shell-Umgebung, die Sie über Ihren Browser nutzen können. Sie können entweder Bash oder PowerShell mit Cloud Shell verwenden, um mit Azure-Diensten zu arbeiten. Sie können die vorinstallierten Befehle von Cloud Shell verwenden, um den Code in diesem Artikel auszuführen, ohne etwas in Ihrer lokalen Umgebung installieren zu müssen.
So starten Sie Azure Cloud Shell:
| Auswahl | Beispiel/Link |
|---|---|
| Wählen Sie rechts oben in einem Code- oder Befehlsblock die Option Ausprobieren aus. Wenn Sie Try It auswählen, wird der Code oder befehl nicht automatisch in Cloud Shell kopiert. |
|
| Wechseln Sie zu https://shell.azure.com, oder wählen Sie die Schaltfläche "Cloud Shell starten " aus, um Cloud Shell in Ihrem Browser zu öffnen. | Schaltfläche ![]() |
| Wählen Sie im Azure-Portal rechts oben im Menü die Schaltfläche Cloud Shell aus. |
|
So verwenden Sie Azure Cloud Shell:
Starten Sie Cloud Shell.
Wählen Sie die Schaltfläche Kopieren für einen Codeblock (oder Befehlsblock) aus, um den Code oder Befehl zu kopieren.
Fügen Sie den Code oder Befehl in die Cloud Shell Sitzung ein, indem Sie Ctrl+Shift+V auf Windows und Linux auswählen, oder indem Sie Cmd+Shift+V unter macOS auswählen.
Wählen Sie Geben Sie ein, um den Code oder Befehl auszuführen.
Festlegen von Variablen
Definiere Variablen für Ressourcennamen und -standorte, die in diesem Tutorial verwendet werden.
$ResourceGroup = "test-rg"
$Location = "eastus"
$VNetName = "vnet-1"
$TmProfileName = "tm-profile"
$DnsZone = "contoso.com"
$DnsZoneResourceGroup = "<dns-zone-resource-group>"
Hinweis
Ersetzen Sie <dns-zone-resource-group> sie durch die Ressourcengruppe, die Ihre bestehende Azure DNS-Zone enthält.
Ressourcengruppe erstellen
New-AzResourceGroup -Name $ResourceGroup -Location $Location
Erstellen des virtuellen Netzwerks
$subnet = @{
Name = "subnet-1"
AddressPrefix = "10.10.0.0/24"
}
$SubnetConfig = New-AzVirtualNetworkSubnetConfig @subnet
$vnet = @{
ResourceGroupName = $ResourceGroup
Name = $VNetName
Location = $Location
AddressPrefix = "10.10.0.0/16"
Subnet = $SubnetConfig
}
New-AzVirtualNetwork @vnet
Erstellen eines virtuellen Webservercomputers
Erstellen Sie die öffentlichen IP-Adressen
$pip1 = @{
ResourceGroupName = $ResourceGroup
Name = "public-ip-1"
Location = $Location
Sku = "Standard"
AllocationMethod = "Static"
DomainNameLabel = "vm-1-tmlink"
}
$Vm1Pip = New-AzPublicIpAddress @pip1
$pip2 = @{
ResourceGroupName = $ResourceGroup
Name = "public-ip-2"
Location = $Location
Sku = "Standard"
AllocationMethod = "Static"
DomainNameLabel = "vm-2-tmlink"
}
$Vm2Pip = New-AzPublicIpAddress @pip2
Erstellen der Netzwerksicherheitsgruppe
$httpRule = @{
Name = "AllowHTTP"
Protocol = "Tcp"
Direction = "Inbound"
Priority = 100
SourceAddressPrefix = "*"
SourcePortRange = "*"
DestinationAddressPrefix = "*"
DestinationPortRange = 80
Access = "Allow"
}
$HttpRule = New-AzNetworkSecurityRuleConfig @httpRule
$httpsRule = @{
Name = "AllowHTTPS"
Protocol = "Tcp"
Direction = "Inbound"
Priority = 110
SourceAddressPrefix = "*"
SourcePortRange = "*"
DestinationAddressPrefix = "*"
DestinationPortRange = 443
Access = "Allow"
}
$HttpsRule = New-AzNetworkSecurityRuleConfig @httpsRule
$nsg = @{
ResourceGroupName = $ResourceGroup
Location = $Location
Name = "nsg-1"
SecurityRules = $HttpRule, $HttpsRule
}
$Nsg = New-AzNetworkSecurityGroup @nsg
Erstellen Sie die Netzwerkschnittstellen und virtuellen Maschinen
$VNet = Get-AzVirtualNetwork -ResourceGroupName $ResourceGroup -Name $VNetName
$Subnet = Get-AzVirtualNetworkSubnetConfig -VirtualNetwork $VNet -Name "subnet-1"
$nic1 = @{
ResourceGroupName = $ResourceGroup
Name = "nic-1"
Location = $Location
SubnetId = $Subnet.Id
PublicIpAddressId = $Vm1Pip.Id
NetworkSecurityGroupId = $Nsg.Id
}
$Vm1Nic = New-AzNetworkInterface @nic1
$nic2 = @{
ResourceGroupName = $ResourceGroup
Name = "nic-2"
Location = $Location
SubnetId = $Subnet.Id
PublicIpAddressId = $Vm2Pip.Id
NetworkSecurityGroupId = $Nsg.Id
}
$Vm2Nic = New-AzNetworkInterface @nic2
Erstellen Sie die Konfigurationen der virtuellen Maschine und bereiten Sie die VMs aus. Wenn du aufgefordert wirst, gib ein Passwort für das Administratorkonto ein.
$Credential = Get-Credential -Message "Enter a username and password for the VMs"
$image = @{
PublisherName = "Canonical"
Offer = "ubuntu-24_04-lts"
Skus = "server"
Version = "latest"
}
$Vm1Config = New-AzVMConfig -VMName "vm-1" -VMSize "Standard_B1s" |
Set-AzVMOperatingSystem -Linux -ComputerName "vm-1" -Credential $Credential |
Set-AzVMSourceImage @image |
Add-AzVMNetworkInterface -Id $Vm1Nic.Id
New-AzVM -ResourceGroupName $ResourceGroup -Location $Location -VM $Vm1Config -AsJob
$Vm2Config = New-AzVMConfig -VMName "vm-2" -VMSize "Standard_B1s" |
Set-AzVMOperatingSystem -Linux -ComputerName "vm-2" -Credential $Credential |
Set-AzVMSourceImage @image |
Add-AzVMNetworkInterface -Id $Vm2Nic.Id
New-AzVM -ResourceGroupName $ResourceGroup -Location $Location -VM $Vm2Config
Installiere NGINX auf den virtuellen Maschinen
$run1 = @{
ResourceGroupName = $ResourceGroup
VMName = "vm-1"
CommandId = "RunShellScript"
ScriptString = "sudo apt-get update && sudo apt-get install -y nginx && echo 'Hello World from vm-1' | sudo tee /var/www/html/index.html"
}
Invoke-AzVMRunCommand @run1
$run2 = @{
ResourceGroupName = $ResourceGroup
VMName = "vm-2"
CommandId = "RunShellScript"
ScriptString = "sudo apt-get update && sudo apt-get install -y nginx && echo 'Hello World from vm-2' | sudo tee /var/www/html/index.html"
}
Invoke-AzVMRunCommand @run2
Abfrage der öffentlichen IP-Adressen
$Vm1IPAddress = (Get-AzPublicIpAddress -ResourceGroupName $ResourceGroup -Name "public-ip-1").IpAddress
$Vm2IPAddress = (Get-AzPublicIpAddress -ResourceGroupName $ResourceGroup -Name "public-ip-2").IpAddress
Write-Output "vm-1 IP: $Vm1IPAddress"
Write-Output "vm-2 IP: $Vm2IPAddress"
Erstellen Sie das Traffic Manager-Profil
$tm = @{
Name = $TmProfileName
ResourceGroupName = $ResourceGroup
TrafficRoutingMethod = "Priority"
RelativeDnsName = "tm-profile-$(Get-Random)"
Ttl = 30
MonitorProtocol = "HTTP"
MonitorPort = 80
MonitorPath = "/"
RecordType = "A"
}
$TmProfile = New-AzTrafficManagerProfile @tm
Fügen Sie Endpunkte zum Traffic Manager-Profil hinzu
$ep1 = @{
EndpointName = "tmendpoint-1"
TrafficManagerProfile = $TmProfile
Type = "ExternalEndpoints"
Target = $Vm1IPAddress
EndpointStatus = "Enabled"
Priority = 1
}
Add-AzTrafficManagerEndpointConfig @ep1
$ep2 = @{
EndpointName = "tmendpoint-2"
TrafficManagerProfile = $TmProfile
Type = "ExternalEndpoints"
Target = $Vm2IPAddress
EndpointStatus = "Enabled"
Priority = 2
}
Add-AzTrafficManagerEndpointConfig @ep2
Set-AzTrafficManagerProfile -TrafficManagerProfile $TmProfile
Erstellen Sie den verknüpften Datensatz des Verkehrsmanagers
Verwenden New-AzDnsRecordSet Sie mit dem Parameter, -TrafficManagementProfile um den Traffic Manager Linked Record zu erstellen. Der folgende Befehl erstellt einen A-Datensatz am Zonenapex (@).
Hinweis
Der Parameter -TrafficManagementProfile ist in Az.Dns 5.0.0 und später verfügbar und benötigt die Traffic Manager Linked Records Vorschau-API (2024-06-01-preview oder später).
$TmProfileId = $TmProfile.Id
$apex = @{
ResourceGroupName = $DnsZoneResourceGroup
ZoneName = $DnsZone
Name = "@"
RecordType = "A"
Ttl = 30
TrafficManagementProfile = $TmProfileId
}
New-AzDnsRecordSet @apex
Um den Datensatz für eine Subdomain statt des Zonen-Apex zu erstellen, ersetzen "@" Sie durch den Subdomain-Namen. Beispiel:
$www = @{
ResourceGroupName = $DnsZoneResourceGroup
ZoneName = $DnsZone
Name = "www"
RecordType = "A"
Ttl = 30
TrafficManagementProfile = $TmProfileId
}
New-AzDnsRecordSet @www
Überprüfen Sie den verknüpften Datensatz
$record = @{
ResourceGroupName = $DnsZoneResourceGroup
ZoneName = $DnsZone
Name = "@"
RecordType = "A"
}
Get-AzDnsRecordSet @record
Die Ausgabe enthält eine TrafficManagementProfile Eigenschaft, die die Traffic-Manager-Profil-Resource ID zeigt und bestätigt, dass die Verbindung hergestellt wurde.
Hinweis
Der TTL-Wert im Datensatz spiegelt das Traffic Manager-Profil TTL wider. Jede TTL, die während der Datensatzerstellung angegeben wird, wird durch den DNS TTL-Wert des Traffic Manager-Profils ersetzt.
Testen Sie den verkehrsmanager-verknüpften Datensatz
Holen Sie die Nameserver für Ihre DNS-Zone ab und fragen Sie einen direkt an.
$ns = @{
ResourceGroupName = $DnsZoneResourceGroup
ZoneName = $DnsZone
Name = "@"
RecordType = "NS"
}
$NameServer = (Get-AzDnsRecordSet @ns).Records[0].Nsdname
Resolve-DnsName -Name $DnsZone -Server $NameServer -Type A
Die Antwort enthält A-Datensätze mit IP-Adressen und bestätigt, dass Traffic Manager Linked Records IP-Adressen direkt ohne CNAME-Hop zurückgibt.
Test des Failovers
Besuchen Sie Ihre Domain. Du solltest die NGINX-Seite für VM-1 sehen.
Stoppe die VM-1 :
Stop-AzVM -ResourceGroupName $ResourceGroup -Name "vm-1" -ForceWarte ein paar Minuten, bis Traffic Manager den Endpunkt als ungesund erkennt.
Löschen Sie bei Bedarf Ihren lokalen DNS-Cache und besuchen Sie dann erneut Ihre Domain. Du solltest jetzt die Seite für VM-2 sehen.
VM-1 neu starten, um die ursprüngliche Konfiguration wiederherzustellen:
Start-AzVM -ResourceGroupName $ResourceGroup -Name "vm-1"
Bereinigen von Ressourcen
Wenn Sie die Ressourcen nicht mehr benötigen, entfernen Sie die Ressourcengruppe und den DNS-Datensatz:
# Delete the resource group and all resources within it
Remove-AzResourceGroup -Name $ResourceGroup -Force -AsJob
# Delete the Traffic Manager Linked Record from the DNS zone
$cleanup = @{
ResourceGroupName = $DnsZoneResourceGroup
ZoneName = $DnsZone
Name = "@"
RecordType = "A"
}
Remove-AzDnsRecordSet @cleanup
Nächste Schritte
In diesem Tutorial hast du einen Traffic Manager Linked Record mit Azure PowerShell erstellt. Der Datensatz verknüpft deine DNS-Zone 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 CLI oder dem Azure Portal.
- Informieren Sie sich ausführlicher über Traffic Manager-Routingmethoden.
- Erfahren Sie mehr über streng getypte Profile.
