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.

Anteckning

Vi rekommenderar att du använder Azure Az PowerShell-modulen för att interagera med Azure. Se Installera Azure PowerShell för att komma igång. 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

Anteckning

Vi rekommenderar att du använder Azure Az PowerShell-modulen för att interagera med Azure. Se Installera Azure PowerShell för att komma igång. 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 följande kommando:

New-AzResourceGroup -Name MyRG -Location "West US"

Anteckning

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 Beskrivning
Name Resursnamnet för Traffic Manager-profilresursen. Profiler i samma resursgrupp måste ha unika namn. Det här namnet är separat från DNS-namnet 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 dns-domännamnet 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 "contoso" blir "contoso.trafficmanager.net".
TTL Anger TTL (Time-to-Live) för DNS i sekunder. Denna TTL informerar de lokala DNS-matcharna och DNS-klienterna 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 söka efter slutpunktshälsa.

Cmdleten skapar en Traffic Manager-profil i Azure och returnerar ett motsvarande profilobjekt till PowerShell. Nu 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 3-stegsprocess:

  1. Hämta profilen med eller Get-AzTrafficManagerProfile använd profilen som returneras av New-AzTrafficManagerProfile.
  2. Ä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.
  3. Checka in ä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:

  1. Azure-slutpunkter är tjänster som finns i Azure
  2. Externa slutpunkter är tjänster som finns utanför Azure
  3. 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:

  1. 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.
  2. 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

Azure-slutpunkter refererar till tjänster som finns i Azure. Två typer av Azure-slutpunkter stöds:

  1. Azure App Service
  2. 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 eller New-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 trafikroutningsmetoden 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". Prioriteringar används endast om profilen är konfigurerad för att använda trafikroutningsmetoden "Prioritet". Annars ignoreras de. Giltiga värden är mellan 1 och 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 de 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 avAdd-AzTrafficManagerEndpointConfig

I det här exemplet skapar vi en Traffic Manager-profil och lägger till två App Service slutpunkter med 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-AzTrafficManagerProfileeller New-AzTrafficManagerEndpoint.

När du anger externa slutpunkter:

  • Domännamnet för slutpunkten måste anges med parametern Target
  • 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-AzTrafficManagerEndpointConfigSet-AzTrafficManagerProfile

I det här exemplet skapar vi en Traffic Manager-profil, lägger till två externa slutpunkter och checkar in ä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 omdirigerar trafik till de andra slutpunkterna i den överordnade profilen.

Exempel 1: Lägga till kapslade slutpunkter med och Add-AzTrafficManagerEndpointConfigSet-AzTrafficManagerProfile

I det här exemplet skapar vi nya underordnade och överordnade Traffic Manager-profiler, lägger till det underordnade objektet som en kapslad slutpunkt till den överordnade och checkar in ä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

I det här exemplet har vi inte lagt 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 till 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. Exemplet nedan visar 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:

  1. Hämta Traffic Manager-profilen med , Get-AzTrafficManagerProfileuppdatera 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.
  2. 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-AzTrafficManagerProfileSet-AzTrafficManagerProfile

I det här exemplet ändrar vi prioriteten för 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-AzTrafficManagerEndpointSet-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 tillåter aktivering och inaktivering av hela profiler. Dessa ändringar kan göras genom att hämta/uppdatera/ange slutpunkts- eller profilresurser. 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 ber om bekräftelse. Den här prompten kan ignoreras med hjälp av 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

  1. Använda ett TrafficManagerEndpoint-objekt som skickas via pipelinen eller med parametern "-TrafficManagerEndpoint"
  2. 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-AzTrafficManagerProfilefrågar cmdleten Disable-AzTrafficManagerEndpoint efter bekräftelse. Den här prompten kan ignoreras med hjälp av 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 ber om bekräftelse. Den här prompten kan ignoreras med hjälp av 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 ber om bekräftelse. Den här prompten kan ignoreras med hjälp av parametern -Force.

Profilen som ska tas bort kan också anges med 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]

Nästa steg

Traffic Manager-övervakning

Prestandaöverväganden för Traffic Manager