Använda PowerShell för att hantera Traffic Manager
Azure Resource Manager är det föredragna hanteringsgränssnittet för tjänster i Azure. Azure Traffic Manager-profiler kan hanteras med hjälp av Azure Resource Manager-baserade API:er och verktyg.
Kommentar
Vi rekommenderar att du använder Azure Az PowerShell-modulen för att interagera med Azure. Information om hur du kommer igång finns i Installera Azure PowerShell. Information om hur du migrerar till Az PowerShell-modulen finns i artikeln om att migrera Azure PowerShell från AzureRM till Az.
Resursmodell
Azure Traffic Manager konfigureras med hjälp av en samling inställningar som kallas traffic manager-profil. Den här profilen innehåller DNS-inställningar, trafikroutningsinställningar, inställningar för slutpunktsövervakning och en lista över tjänstslutpunkter som trafiken dirigeras till.
Varje Traffic Manager-profil representeras av en resurs av typen "TrafficManagerProfiles". På REST API-nivå är URI:n för varje profil följande:
https://management.azure.com/subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Network/trafficManagerProfiles/{profile-name}?api-version={api-version}
Konfigurera Azure PowerShell
Kommentar
Vi rekommenderar att du använder Azure Az PowerShell-modulen för att interagera med Azure. Information om hur du kommer igång finns i Installera Azure PowerShell. Information om hur du migrerar till Az PowerShell-modulen finns i artikeln om att migrera Azure PowerShell från AzureRM till Az.
Dessa instruktioner använder Microsoft Azure PowerShell. I följande artikel beskrivs hur du installerar och konfigurerar Azure PowerShell.
Exemplen i den här artikeln förutsätter att du har en befintlig resursgrupp. Du kan skapa en resursgrupp med hjälp av följande kommando:
New-AzResourceGroup -Name MyRG -Location "West US"
Kommentar
Azure Resource Manager kräver att alla resursgrupper har en plats. Den här platsen används som standard för resurser som skapats i den resursgruppen. Men eftersom Traffic Manager-profilresurser är globala, inte regionala, påverkar valet av resursgruppsplats inte Azure Traffic Manager.
Skapa en Traffic Manager-profil
Om du vill skapa en Traffic Manager-profil använder du cmdleten New-AzTrafficManagerProfile
:
$TmProfile = New-AzTrafficManagerProfile -Name MyProfile -ResourceGroupName MyRG -TrafficRoutingMethod Performance -RelativeDnsName contoso -Ttl 30 -MonitorProtocol HTTP -MonitorPort 80 -MonitorPath "/"
I följande tabell beskrivs parametrarna:
Parameter | Description |
---|---|
Name | Resursnamnet för Traffic Manager-profilresursen. Profiler i samma resursgrupp måste ha unika namn. Det här namnet är separat från DET DNS-namn som används för DNS-frågor. |
ResourceGroupName | Namnet på resursgruppen som innehåller profilresursen. |
TrafficRoutingMethod | Anger den trafikroutningsmetod som används för att avgöra vilken slutpunkt som returneras som svar på en DNS-fråga. Möjliga värden är "Prestanda", "Viktad" eller "Prioritet". |
RelativeDnsName | Anger värdnamnsdelen av DNS-namnet som tillhandahålls av den här Traffic Manager-profilen. Det här värdet kombineras med det DNS-domännamn som används av Azure Traffic Manager för att bilda profilens fullständigt kvalificerade domännamn (FQDN). Om du till exempel anger värdet för "contoso" blir "contoso.trafficmanager.net". |
TTL | Anger TTL (Time-to-Live) för DNS i sekunder. Denna TTL informerar lokala DNS-matchare och DNS-klienter hur länge DNS-svar ska cachelagras för den här Traffic Manager-profilen. |
MonitorProtocol | Anger vilket protokoll som ska användas för att övervaka slutpunktshälsan. Möjliga värden är "HTTP" och "HTTPS". |
MonitorPort | Anger den TCP-port som används för att övervaka slutpunktshälsan. |
MonitorPath | Anger sökvägen i förhållande till det slutpunktsdomännamn som används för att avsöka slutpunktshälsa. |
Cmdleten skapar en Traffic Manager-profil i Azure och returnerar ett motsvarande profilobjekt till PowerShell. I det här läget innehåller profilen inga slutpunkter. Mer information om hur du lägger till slutpunkter i en Traffic Manager-profil finns i Lägga till Traffic Manager-slutpunkter.
Hämta en Traffic Manager-profil
Om du vill hämta ett befintligt Traffic Manager-profilobjekt använder du cmdleten Get-AzTrafficManagerProfle
:
$TmProfile = Get-AzTrafficManagerProfile -Name MyProfile -ResourceGroupName MyRG
Den här cmdleten returnerar ett Traffic Manager-profilobjekt.
Uppdatera en Traffic Manager-profil
Att ändra Traffic Manager-profiler följer en trestegsprocess:
- Hämta profilen med eller
Get-AzTrafficManagerProfile
använd profilen som returneras avNew-AzTrafficManagerProfile
. - Ändra profilen. Du kan lägga till och ta bort slutpunkter eller ändra slutpunkts- eller profilparametrar. Dessa ändringar är off-line åtgärder. Du ändrar bara det lokala objektet i minnet som representerar profilen.
- Genomför ändringarna med hjälp av cmdleten
Set-AzTrafficManagerProfile
.
Alla profilegenskaper kan ändras förutom profilens RelativeDnsName. Om du vill ändra RelativeDnsName måste du ta bort profilen och en ny profil med ett nytt namn.
I följande exempel visas hur du ändrar profilens TTL:
$TmProfile = Get-AzTrafficManagerProfile -Name MyProfile -ResourceGroupName MyRG
$TmProfile.Ttl = 300
Set-AzTrafficManagerProfile -TrafficManagerProfile $TmProfile
Det finns tre typer av Traffic Manager-slutpunkter:
- Azure-slutpunkter är tjänster som finns i Azure
- Externa slutpunkter är tjänster som finns utanför Azure
- Kapslade slutpunkter används för att konstruera kapslade hierarkier av Traffic Manager-profiler. Kapslade slutpunkter möjliggör avancerade trafikroutningskonfigurationer för komplexa program.
I alla tre fallen kan slutpunkter läggas till på två sätt:
- Använda en 3-stegsprocess som beskrevs tidigare. Fördelen med den här metoden är att flera slutpunktsändringar kan göras i en enda uppdatering.
- Använda cmdleten New-AzTrafficManagerEndpoint. Den här cmdleten lägger till en slutpunkt i en befintlig Traffic Manager-profil i en enda åtgärd.
Lägga till Azure-slutpunkter
Referenstjänster för Azure-slutpunkter som finns i Azure. Två typer av Azure-slutpunkter stöds:
- Azure App Service
- Azure PublicIpAddress-resurser (som kan kopplas till en lastbalanserare eller ett NIC för virtuell dator). PublicIpAddress måste ha ett DNS-namn som ska användas i Traffic Manager.
I varje fall:
- Tjänsten anges med parametern "targetResourceId" för
Add-AzTrafficManagerEndpointConfig
ellerNew-AzTrafficManagerEndpoint
. - "Target" och "EndpointLocation" är underförstådda av TargetResourceId.
- Det är valfritt att ange "Vikt". Vikter används endast om profilen är konfigurerad för att använda trafikdirigeringsmetoden Viktad. Annars ignoreras de. Om värdet anges måste det vara ett tal mellan 1 och 1 000. Standardvärdet är "1".
- Det är valfritt att ange prioritet. Prioriteter används endast om profilen är konfigurerad för att använda trafikdirigeringsmetoden Prioritet. Annars ignoreras de. Giltiga värden är från 1 till 1 000 med lägre värden som anger en högre prioritet. Om de anges för en slutpunkt måste de anges för alla slutpunkter. Om det utelämnas tillämpas standardvärden från "1" i den ordning som slutpunkterna visas.
Exempel 1: Lägga till App Service-slutpunkter med hjälp av Add-AzTrafficManagerEndpointConfig
I det här exemplet skapar vi en Traffic Manager-profil och lägger till två App Service-slutpunkter med hjälp av cmdleten Add-AzTrafficManagerEndpointConfig
.
$TmProfile = New-AzTrafficManagerProfile -Name myprofile -ResourceGroupName MyRG -TrafficRoutingMethod Performance -RelativeDnsName myapp -Ttl 30 -MonitorProtocol HTTP -MonitorPort 80 -MonitorPath "/"
$webapp1 = Get-AzWebApp -Name webapp1
Add-AzTrafficManagerEndpointConfig -EndpointName webapp1ep -TrafficManagerProfile $TmProfile -Type AzureEndpoints -TargetResourceId $webapp1.Id -EndpointStatus Enabled
$webapp2 = Get-AzWebApp -Name webapp2
Add-AzTrafficManagerEndpointConfig -EndpointName webapp2ep -TrafficManagerProfile $TmProfile -Type AzureEndpoints -TargetResourceId $webapp2.Id -EndpointStatus Enabled
Set-AzTrafficManagerProfile -TrafficManagerProfile $TmProfile
Exempel 2: Lägga till en publicIpAddress-slutpunkt med hjälp av New-AzTrafficManagerEndpoint
I det här exemplet läggs en offentlig IP-adressresurs till i Traffic Manager-profilen. Den offentliga IP-adressen måste ha ett DNS-namn konfigurerat och kan bindas antingen till nätverkskortet för en virtuell dator eller till en lastbalanserare.
$ip = Get-AzPublicIpAddress -Name MyPublicIP -ResourceGroupName MyRG
New-AzTrafficManagerEndpoint -Name MyIpEndpoint -ProfileName MyProfile -ResourceGroupName MyRG -Type AzureEndpoints -TargetResourceId $ip.Id -EndpointStatus Enabled
Lägga till externa slutpunkter
Traffic Manager använder externa slutpunkter för att dirigera trafik till tjänster som finns utanför Azure. Precis som med Azure-slutpunkter kan externa slutpunkter läggas till antingen med hjälp Add-AzTrafficManagerEndpointConfig
av följt av Set-AzTrafficManagerProfile
, eller New-AzTrafficManagerEndpoint
.
När du anger externa slutpunkter:
- Domännamnet för slutpunkten måste anges med parametern "Mål"
- Om trafikdirigeringsmetoden "Prestanda" används krävs "EndpointLocation". Annars är det valfritt. Värdet måste vara ett giltigt Azure-regionnamn.
- "Vikt" och "Prioritet" är valfria.
Exempel 1: Lägga till externa slutpunkter med och Add-AzTrafficManagerEndpointConfig
Set-AzTrafficManagerProfile
I det här exemplet skapar vi en Traffic Manager-profil, lägger till två externa slutpunkter och genomför ändringarna.
$TmProfile = New-AzTrafficManagerProfile -Name myprofile -ResourceGroupName MyRG -TrafficRoutingMethod Performance -RelativeDnsName myapp -Ttl 30 -MonitorProtocol HTTP -MonitorPort 80 -MonitorPath "/"
Add-AzTrafficManagerEndpointConfig -EndpointName eu-endpoint -TrafficManagerProfile $TmProfile -Type ExternalEndpoints -Target app-eu.contoso.com -EndpointLocation "North Europe" -EndpointStatus Enabled
Add-AzTrafficManagerEndpointConfig -EndpointName us-endpoint -TrafficManagerProfile $TmProfile -Type ExternalEndpoints -Target app-us.contoso.com -EndpointLocation "Central US" -EndpointStatus Enabled
Set-AzTrafficManagerProfile -TrafficManagerProfile $TmProfile
Exempel 2: Lägga till externa slutpunkter med hjälp av New-AzTrafficManagerEndpoint
I det här exemplet lägger vi till en extern slutpunkt i en befintlig profil. Profilen anges med profil- och resursgruppsnamnen.
New-AzTrafficManagerEndpoint -Name eu-endpoint -ProfileName MyProfile -ResourceGroupName MyRG -Type ExternalEndpoints -Target app-eu.contoso.com -EndpointStatus Enabled
Lägga till kapslade slutpunkter
Varje Traffic Manager-profil anger en enda trafikroutningsmetod. Det finns dock scenarier som kräver mer avancerad trafikroutning än routningen som tillhandahålls av en enda Traffic Manager-profil. Du kan kapsla Traffic Manager-profiler för att kombinera fördelarna med mer än en trafikroutningsmetod. Med kapslade profiler kan du åsidosätta standardbeteendet för Traffic Manager för att stödja större och mer komplexa programdistributioner. Mer detaljerade exempel finns i Kapslade Traffic Manager-profiler.
Kapslade slutpunkter konfigureras i den överordnade profilen med hjälp av en specifik slutpunktstyp, "NestedEndpoints". När du anger kapslade slutpunkter:
- Slutpunkten måste anges med parametern "targetResourceId"
- Om trafikdirigeringsmetoden "Prestanda" används krävs "EndpointLocation". Annars är det valfritt. Värdet måste vara ett giltigt Azure-regionnamn.
- "Vikt" och "Prioritet" är valfria, precis som för Azure-slutpunkter.
- Parametern "MinChildEndpoints" är valfri. Standardvärdet är "1". Om antalet tillgängliga slutpunkter understiger det här tröskelvärdet betraktar den överordnade profilen den underordnade profilen som "degraderad" och dirigerar trafik till de andra slutpunkterna i den överordnade profilen.
Exempel 1: Lägga till kapslade slutpunkter med och Add-AzTrafficManagerEndpointConfig
Set-AzTrafficManagerProfile
I det här exemplet skapar vi nya underordnade och överordnade Traffic Manager-profiler, lägger till det underordnade som en kapslad slutpunkt till den överordnade och genomför ändringarna.
$child = New-AzTrafficManagerProfile -Name child -ResourceGroupName MyRG -TrafficRoutingMethod Priority -RelativeDnsName child -Ttl 30 -MonitorProtocol HTTP -MonitorPort 80 -MonitorPath "/"
$parent = New-AzTrafficManagerProfile -Name parent -ResourceGroupName MyRG -TrafficRoutingMethod Performance -RelativeDnsName parent -Ttl 30 -MonitorProtocol HTTP -MonitorPort 80 -MonitorPath "/"
Add-AzTrafficManagerEndpointConfig -EndpointName child-endpoint -TrafficManagerProfile $parent -Type NestedEndpoints -TargetResourceId $child.Id -EndpointStatus Enabled -EndpointLocation "North Europe" -MinChildEndpoints 2
Set-AzTrafficManagerProfile -TrafficManagerProfile $parent
För korthet i det här exemplet lade vi inte till några andra slutpunkter till de underordnade eller överordnade profilerna.
Exempel 2: Lägga till kapslade slutpunkter med hjälp av New-AzTrafficManagerEndpoint
I det här exemplet lägger vi till en befintlig underordnad profil som en kapslad slutpunkt i en befintlig överordnad profil. Profilen anges med profil- och resursgruppsnamnen.
$child = Get-AzTrafficManagerEndpoint -Name child -ResourceGroupName MyRG
New-AzTrafficManagerEndpoint -Name child-endpoint -ProfileName parent -ResourceGroupName MyRG -Type NestedEndpoints -TargetResourceId $child.Id -EndpointStatus Enabled -EndpointLocation "North Europe" -MinChildEndpoints 2
Lägga till slutpunkter från en annan prenumeration
Traffic Manager kan arbeta med slutpunkter från olika prenumerationer. Du måste växla till prenumerationen med den slutpunkt som du vill lägga till för att hämta nödvändiga indata till Traffic Manager. Sedan måste du växla till prenumerationerna med Traffic Manager-profilen och lägga till slutpunkten i den. I exemplet nedan visas hur du gör detta med en offentlig IP-adress.
Set-AzContext -SubscriptionId $EndpointSubscription
$ip = Get-AzPublicIpAddress -Name $IpAddressName -ResourceGroupName $EndpointRG
Set-AzContext -SubscriptionId $trafficmanagerSubscription
New-AzTrafficManagerEndpoint -Name $EndpointName -ProfileName $ProfileName -ResourceGroupName $TrafficManagerRG -Type AzureEndpoints -TargetResourceId $ip.Id -EndpointStatus Enabled
Uppdatera en Traffic Manager-slutpunkt
Det finns två sätt att uppdatera en befintlig Traffic Manager-slutpunkt:
- Hämta Traffic Manager-profilen med ,
Get-AzTrafficManagerProfile
uppdatera slutpunktsegenskaperna i profilen och checka in ändringarna med .Set-AzTrafficManagerProfile
Den här metoden har fördelen att kunna uppdatera mer än en slutpunkt i en enda åtgärd. - Hämta Traffic Manager-slutpunkten med hjälp av
Get-AzTrafficManagerEndpoint
, uppdatera slutpunktsegenskaperna och checka in ändringarna med .Set-AzTrafficManagerEndpoint
Den här metoden är enklare eftersom den inte kräver indexering i matrisen Slutpunkter i profilen.
Exempel 1: Uppdatera slutpunkter med och Get-AzTrafficManagerProfile
Set-AzTrafficManagerProfile
I det här exemplet ändrar vi prioriteten på två slutpunkter i en befintlig profil.
$TmProfile = Get-AzTrafficManagerProfile -Name myprofile -ResourceGroupName MyRG
$TmProfile.Endpoints[0].Priority = 2
$TmProfile.Endpoints[1].Priority = 1
Set-AzTrafficManagerProfile -TrafficManagerProfile $TmProfile
Exempel 2: Uppdatera en slutpunkt med och Get-AzTrafficManagerEndpoint
Set-AzTrafficManagerEndpoint
I det här exemplet ändrar vi vikten för en enskild slutpunkt i en befintlig profil.
$endpoint = Get-AzTrafficManagerEndpoint -Name myendpoint -ProfileName myprofile -ResourceGroupName MyRG -Type ExternalEndpoints
$endpoint.Weight = 20
Set-AzTrafficManagerEndpoint -TrafficManagerEndpoint $endpoint
Aktivera och inaktivera slutpunkter och profiler
Traffic Manager tillåter att enskilda slutpunkter aktiveras och inaktiveras, samt möjliggör aktivering och inaktivering av hela profiler. Dessa ändringar kan göras genom att hämta/uppdatera/ange slutpunkts- eller profilresurserna. För att effektivisera dessa vanliga åtgärder stöds de också via dedikerade cmdletar.
Exempel 1: Aktivera och inaktivera en Traffic Manager-profil
Om du vill aktivera en Traffic Manager-profil använder du Enable-AzTrafficManagerProfile
. Profilen kan anges med hjälp av ett profilobjekt. Profilobjektet kan skickas via pipelinen eller med hjälp av parametern "-TrafficManagerProfile". I det här exemplet anger vi profilen efter profilen och resursgruppens namn.
Enable-AzTrafficManagerProfile -Name MyProfile -ResourceGroupName MyResourceGroup
Så här inaktiverar du en Traffic Manager-profil:
Disable-AzTrafficManagerProfile -Name MyProfile -ResourceGroupName MyResourceGroup
Cmdleten Disable-AzTrafficManagerProfile uppmanar till bekräftelse. Den här uppmaningen kan ignoreras med parametern "-Force".
Exempel 2: Aktivera och inaktivera en Traffic Manager-slutpunkt
Om du vill aktivera en Traffic Manager-slutpunkt använder du Enable-AzTrafficManagerEndpoint
. Det finns två sätt att ange slutpunkten
- Använda ett TrafficManagerEndpoint-objekt som skickas via pipelinen eller med parametern "-TrafficManagerEndpoint"
- Använd slutpunktsnamnet, slutpunktstypen, profilnamnet och resursgruppens namn:
Enable-AzTrafficManagerEndpoint -Name MyEndpoint -Type AzureEndpoints -ProfileName MyProfile -ResourceGroupName MyRG
På samma sätt inaktiverar du en Traffic Manager-slutpunkt:
Disable-AzTrafficManagerEndpoint -Name MyEndpoint -Type AzureEndpoints -ProfileName MyProfile -ResourceGroupName MyRG -Force
Precis som med Disable-AzTrafficManagerProfile
uppmanas cmdleten Disable-AzTrafficManagerEndpoint
att bekräfta. Den här uppmaningen kan ignoreras med parametern "-Force".
Ta bort en Traffic Manager-slutpunkt
Om du vill ta bort enskilda slutpunkter använder du cmdleten Remove-AzTrafficManagerEndpoint
:
Remove-AzTrafficManagerEndpoint -Name MyEndpoint -Type AzureEndpoints -ProfileName MyProfile -ResourceGroupName MyRG
Den här cmdleten uppmanar till bekräftelse. Den här uppmaningen kan ignoreras med parametern "-Force".
Ta bort en Traffic Manager-profil
Om du vill ta bort en Traffic Manager-profil använder du cmdleten Remove-AzTrafficManagerProfile
och anger profil- och resursgruppsnamnen:
Remove-AzTrafficManagerProfile -Name MyProfile -ResourceGroupName MyRG [-Force]
Den här cmdleten uppmanar till bekräftelse. Den här uppmaningen kan ignoreras med parametern "-Force".
Profilen som ska tas bort kan också anges med hjälp av ett profilobjekt:
$TmProfile = Get-AzTrafficManagerProfile -Name MyProfile -ResourceGroupName MyRG
Remove-AzTrafficManagerProfile -TrafficManagerProfile $TmProfile [-Force]
Den här sekvensen kan också skickas:
Get-AzTrafficManagerProfile -Name MyProfile -ResourceGroupName MyRG | Remove-AzTrafficManagerProfile [-Force]