Zarządzanie usługą Traffic Manager przy użyciu programu PowerShell
Usługa Azure Resource Manager jest preferowanym interfejsem zarządzania dla usług na platformie Azure. Profile usługi Azure Traffic Manager można zarządzać przy użyciu interfejsów API i narzędzi opartych na usłudze Azure Resource Manager.
Uwaga
Do interakcji z platformą Azure zalecamy używanie modułu Azure Az w programie PowerShell. Zobacz Instalowanie programu Azure PowerShell, aby rozpocząć. Aby dowiedzieć się, jak przeprowadzić migrację do modułu Az PowerShell, zobacz Migracja programu Azure PowerShell z modułu AzureRM do modułu Az.
Model zasobów
Usługa Azure Traffic Manager jest konfigurowana przy użyciu kolekcji ustawień nazywanych profilem usługi Traffic Manager. Ten profil zawiera ustawienia DNS, ustawienia routingu ruchu, ustawienia monitorowania punktu końcowego i listę punktów końcowych usługi, do których jest kierowany ruch.
Każdy profil usługi Traffic Manager jest reprezentowany przez zasób typu "TrafficManagerProfiles". Na poziomie interfejsu API REST identyfikator URI dla każdego profilu wygląda następująco:
https://management.azure.com/subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Network/trafficManagerProfiles/{profile-name}?api-version={api-version}
Konfigurowanie programu Azure PowerShell
Uwaga
Do interakcji z platformą Azure zalecamy używanie modułu Azure Az w programie PowerShell. Zobacz Instalowanie programu Azure PowerShell, aby rozpocząć. Aby dowiedzieć się, jak przeprowadzić migrację do modułu Az PowerShell, zobacz Migracja programu Azure PowerShell z modułu AzureRM do modułu Az.
Te instrukcje korzystają z programu Microsoft Azure PowerShell. W poniższym artykule wyjaśniono, jak zainstalować i skonfigurować program Azure PowerShell.
W przykładach w tym artykule założono, że masz istniejącą grupę zasobów. Grupę zasobów można utworzyć przy użyciu następującego polecenia:
New-AzResourceGroup -Name MyRG -Location "West US"
Uwaga
Usługa Azure Resource Manager wymaga, aby wszystkie grupy zasobów miały lokalizację. Ta lokalizacja jest używana jako domyślna dla zasobów utworzonych w tej grupie zasobów. Jednak ponieważ zasoby profilu usługi Traffic Manager są globalne, a nie regionalne, wybór lokalizacji grupy zasobów nie ma wpływu na usługę Azure Traffic Manager.
Tworzenie profilu usługi Traffic Manager
Aby utworzyć profil usługi Traffic Manager, użyj New-AzTrafficManagerProfile
polecenia cmdlet :
$TmProfile = New-AzTrafficManagerProfile -Name MyProfile -ResourceGroupName MyRG -TrafficRoutingMethod Performance -RelativeDnsName contoso -Ttl 30 -MonitorProtocol HTTP -MonitorPort 80 -MonitorPath "/"
W poniższej tabeli opisano parametry:
Parametr | opis |
---|---|
Nazwa/nazwisko | Nazwa zasobu profilu usługi Traffic Manager. Profile w tej samej grupie zasobów muszą mieć unikatowe nazwy. Ta nazwa jest oddzielona od nazwy DNS używanej dla zapytań DNS. |
ResourceGroupName | Nazwa grupy zasobów zawierającej zasób profilu. |
TrafficRoutingMethod | Określa metodę routingu ruchu używaną do określania, który punkt końcowy jest zwracany w odpowiedzi na zapytanie DNS. Możliwe wartości to "Wydajność", "Ważona" lub "Priorytet". |
RelativeDnsName | Określa część nazwy hosta dns podaną przez ten profil usługi Traffic Manager. Ta wartość jest połączona z nazwą domeny DNS używaną przez usługę Azure Traffic Manager do utworzenia w pełni kwalifikowanej nazwy domeny (FQDN) profilu. Na przykład ustawienie wartości "contoso" staje się wartością "contoso.trafficmanager.net". |
TTL | Określa czas wygaśnięcia (TTL) DNS w sekundach. Ten czas wygaśnięcia informuje lokalne narzędzia rozpoznawania nazw DNS i klientów DNS, jak długo buforować odpowiedzi DNS dla tego profilu usługi Traffic Manager. |
MonitorProtocol | Określa protokół używany do monitorowania kondycji punktu końcowego. Możliwe wartości to "HTTP" i "HTTPS". |
MonitorPort | Określa port TCP używany do monitorowania kondycji punktu końcowego. |
MonitorPath | Określa ścieżkę względem nazwy domeny punktu końcowego używanej do sondowania kondycji punktu końcowego. |
Polecenie cmdlet tworzy profil usługi Traffic Manager na platformie Azure i zwraca odpowiedni obiekt profilu do programu PowerShell. W tym momencie profil nie zawiera żadnych punktów końcowych. Aby uzyskać więcej informacji na temat dodawania punktów końcowych do profilu usługi Traffic Manager, zobacz Dodawanie punktów końcowych usługi Traffic Manager.
Uzyskiwanie profilu usługi Traffic Manager
Aby pobrać istniejący obiekt profilu usługi Traffic Manager, użyj Get-AzTrafficManagerProfile
polecenia cmdlet :
$TmProfile = Get-AzTrafficManagerProfile -Name MyProfile -ResourceGroupName MyRG
To polecenie cmdlet zwraca obiekt profilu usługi Traffic Manager.
Aktualizowanie profilu usługi Traffic Manager
Modyfikowanie profilów usługi Traffic Manager jest zgodne z procesem 3-krokowym:
- Pobierz profil przy użyciu
Get-AzTrafficManagerProfile
lub użyj profilu zwróconego przezNew-AzTrafficManagerProfile
usługę . - Zmodyfikuj profil. Możesz dodawać i usuwać punkty końcowe albo zmieniać parametry punktu końcowego lub profilu. Te zmiany są operacjami poza wierszem. Zmieniasz tylko obiekt lokalny w pamięci, który reprezentuje profil.
- Zatwierdź zmiany przy użyciu
Set-AzTrafficManagerProfile
polecenia cmdlet .
Wszystkie właściwości profilu można zmienić z wyjątkiem właściwości RelativeDnsName profilu. Aby zmienić nazwę RelativeDnsName, należy usunąć profil i nowy profil z nową nazwą.
W poniższym przykładzie pokazano, jak zmienić czas wygaśnięcia profilu:
$TmProfile = Get-AzTrafficManagerProfile -Name MyProfile -ResourceGroupName MyRG
$TmProfile.Ttl = 300
Set-AzTrafficManagerProfile -TrafficManagerProfile $TmProfile
Istnieją trzy typy punktów końcowych usługi Traffic Manager:
- Punkty końcowe platformy Azure to usługi hostowane na platformie Azure
- Zewnętrzne punkty końcowe to usługi hostowane poza platformą Azure
- Zagnieżdżone punkty końcowe służą do konstruowania zagnieżdżonych hierarchii profilów usługi Traffic Manager. Zagnieżdżone punkty końcowe umożliwiają zaawansowane konfiguracje routingu ruchu dla złożonych aplikacji.
We wszystkich trzech przypadkach punkty końcowe można dodać na dwa sposoby:
- Przy użyciu opisanego wcześniej procesu 3-krokowego. Zaletą tej metody jest to, że w jednej aktualizacji można wprowadzić kilka zmian punktu końcowego.
- Za pomocą polecenia cmdlet New-AzTrafficManagerEndpoint. To polecenie cmdlet dodaje punkt końcowy do istniejącego profilu usługi Traffic Manager w ramach jednej operacji.
Dodawanie punktów końcowych platformy Azure
Usługi referencyjne punktów końcowych platformy Azure hostowane na platformie Azure. Obsługiwane są dwa typy punktów końcowych platformy Azure:
- Azure App Service
- Zasoby usługi Azure PublicIpAddress (które można dołączyć do modułu równoważenia obciążenia lub karty sieciowej maszyny wirtualnej). Parametr PublicIpAddress musi mieć przypisaną nazwę DNS, która ma być używana w usłudze Traffic Manager.
W każdym przypadku:
- Usługa jest określana przy użyciu parametru "targetResourceId" parametru
Add-AzTrafficManagerEndpointConfig
lubNew-AzTrafficManagerEndpoint
. - Wartości "Target" i "EndpointLocation" są implikowane przez identyfikator TargetResourceId.
- Określenie wartości "Waga" jest opcjonalne. Wagi są używane tylko wtedy, gdy profil jest skonfigurowany do używania metody routingu ruchu ważonego. W przeciwnym razie są one ignorowane. Jeśli zostanie określona, wartość musi być liczbą z zakresu od 1 do 1000. Wartość domyślna to "1".
- Określenie priorytetu jest opcjonalne. Priorytety są używane tylko wtedy, gdy profil jest skonfigurowany do używania metody routingu ruchu "Priorytet". W przeciwnym razie są one ignorowane. Prawidłowe wartości to od 1 do 1000 z niższymi wartościami wskazującymi wyższy priorytet. Jeśli określono dla jednego punktu końcowego, należy je określić dla wszystkich punktów końcowych. W przypadku pominięcia wartości domyślne rozpoczynające się od "1" są stosowane w kolejności, w których są wyświetlane punkty końcowe.
Przykład 1. Dodawanie punktów końcowych usługi App Service przy użyciu Add-AzTrafficManagerEndpointConfig
W tym przykładzie utworzymy profil usługi Traffic Manager i dodamy dwa punkty końcowe usługi App Service przy użyciu Add-AzTrafficManagerEndpointConfig
polecenia cmdlet .
$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
Przykład 2. Dodawanie punktu końcowego publicIpAddress przy użyciu polecenia New-AzTrafficManagerEndpoint
W tym przykładzie do profilu usługi Traffic Manager zostanie dodany zasób publicznego adresu IP. Publiczny adres IP musi mieć skonfigurowaną nazwę DNS i może być powiązany z kartą sieciową maszyny wirtualnej lub modułem równoważenia obciążenia.
$ip = Get-AzPublicIpAddress -Name MyPublicIP -ResourceGroupName MyRG
New-AzTrafficManagerEndpoint -Name MyIpEndpoint -ProfileName MyProfile -ResourceGroupName MyRG -Type AzureEndpoints -TargetResourceId $ip.Id -EndpointStatus Enabled
Dodawanie zewnętrznych punktów końcowych
Usługa Traffic Manager używa zewnętrznych punktów końcowych do kierowania ruchu do usług hostowanych poza platformą Azure. Podobnie jak w przypadku punktów końcowych platformy Azure, zewnętrzne punkty końcowe można dodać przy użyciu instrukcji Add-AzTrafficManagerEndpointConfig
Set-AzTrafficManagerProfile
, lub New-AzTrafficManagerEndpoint
.
Podczas określania zewnętrznych punktów końcowych:
- Nazwa domeny punktu końcowego musi być określona przy użyciu parametru "Target"
- Jeśli jest używana metoda routingu ruchu "Wydajność", wymagana jest wartość "EndpointLocation". W przeciwnym razie jest to opcjonalne. Wartość musi być prawidłową nazwą regionu świadczenia usługi Azure.
- "Waga" i "Priorytet" są opcjonalne.
Przykład 1. Dodawanie zewnętrznych punktów końcowych przy użyciu poleceń Add-AzTrafficManagerEndpointConfig
i Set-AzTrafficManagerProfile
W tym przykładzie utworzymy profil usługi Traffic Manager, dodamy dwa zewnętrzne punkty końcowe i zatwierdzimy zmiany.
$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
Przykład 2. Dodawanie zewnętrznych punktów końcowych przy użyciu New-AzTrafficManagerEndpoint
W tym przykładzie dodamy zewnętrzny punkt końcowy do istniejącego profilu. Profil jest określany przy użyciu nazw profilów i grup zasobów.
New-AzTrafficManagerEndpoint -Name eu-endpoint -ProfileName MyProfile -ResourceGroupName MyRG -Type ExternalEndpoints -Target app-eu.contoso.com -EndpointStatus Enabled
Dodawanie punktów końcowych "Zagnieżdżonych"
Każdy profil usługi Traffic Manager określa jedną metodę routingu ruchu. Istnieją jednak scenariusze wymagające bardziej zaawansowanego routingu ruchu niż routing udostępniany przez pojedynczy profil usługi Traffic Manager. Profile usługi Traffic Manager można zagnieżdżać, aby połączyć korzyści wynikające z więcej niż jednej metody routingu ruchu. Profile zagnieżdżone umożliwiają zastąpienie domyślnego zachowania usługi Traffic Manager w celu obsługi większych i bardziej złożonych wdrożeń aplikacji. Aby uzyskać bardziej szczegółowe przykłady, zobacz Zagnieżdżone profile usługi Traffic Manager.
Zagnieżdżone punkty końcowe są konfigurowane w profilu nadrzędnym przy użyciu określonego typu punktu końcowego "NestedEndpoints". Podczas określania zagnieżdżonych punktów końcowych:
- Punkt końcowy musi być określony przy użyciu parametru "targetResourceId"
- Jeśli jest używana metoda routingu ruchu "Wydajność", wymagana jest wartość "EndpointLocation". W przeciwnym razie jest to opcjonalne. Wartość musi być prawidłową nazwą regionu świadczenia usługi Azure.
- Wartości "Waga" i "Priorytet" są opcjonalne, jak w przypadku punktów końcowych platformy Azure.
- Parametr "MinChildEndpoints" jest opcjonalny. Wartość domyślna to "1". Jeśli liczba dostępnych punktów końcowych spadnie poniżej tego progu, profil nadrzędny uwzględnia profil podrzędny "obniżony" i przekieruje ruch do innych punktów końcowych w profilu nadrzędnym.
Przykład 1. Dodawanie zagnieżdżonych punktów końcowych przy użyciu poleceń Add-AzTrafficManagerEndpointConfig
i Set-AzTrafficManagerProfile
W tym przykładzie utworzymy nowe profile podrzędne i nadrzędne usługi Traffic Manager, dodamy element podrzędny jako zagnieżdżony punkt końcowy do elementu nadrzędnego i zatwierdzimy zmiany.
$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
W tym przykładzie nie dodaliśmy żadnych innych punktów końcowych do profilów podrzędnych ani nadrzędnych.
Przykład 2. Dodawanie zagnieżdżonych punktów końcowych przy użyciu New-AzTrafficManagerEndpoint
W tym przykładzie dodamy istniejący profil podrzędny jako zagnieżdżony punkt końcowy do istniejącego profilu nadrzędnego. Profil jest określany przy użyciu nazw profilów i grup zasobów.
$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
Dodawanie punktów końcowych z innej subskrypcji
Usługa Traffic Manager może pracować z punktami końcowymi z różnych subskrypcji. Musisz przełączyć się do subskrypcji z punktem końcowym, który chcesz dodać, aby pobrać wymagane dane wejściowe do usługi Traffic Manager. Następnie musisz przełączyć się do subskrypcji przy użyciu profilu usługi Traffic Manager i dodać do niego punkt końcowy. W poniższym przykładzie pokazano, jak to zrobić za pomocą publicznego adresu IP.
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
Aktualizowanie punktu końcowego usługi Traffic Manager
Istnieją dwa sposoby aktualizowania istniejącego punktu końcowego usługi Traffic Manager:
- Pobierz profil usługi Traffic Manager przy użyciu polecenia
Get-AzTrafficManagerProfile
, zaktualizuj właściwości punktu końcowego w profilu i zatwierdź zmiany przy użyciu poleceniaSet-AzTrafficManagerProfile
. Ta metoda ma zaletę aktualizowania więcej niż jednego punktu końcowego w ramach jednej operacji. - Pobierz punkt końcowy usługi Traffic Manager przy użyciu polecenia
Get-AzTrafficManagerEndpoint
, zaktualizuj właściwości punktu końcowego i zatwierdź zmiany przy użyciu poleceniaSet-AzTrafficManagerEndpoint
. Ta metoda jest prostsza, ponieważ nie wymaga indeksowania w tablicy Endpoints w profilu.
Przykład 1. Aktualizowanie punktów końcowych przy użyciu i Get-AzTrafficManagerProfile
Set-AzTrafficManagerProfile
W tym przykładzie zmodyfikujemy priorytet dla dwóch punktów końcowych w istniejącym profilu.
$TmProfile = Get-AzTrafficManagerProfile -Name myprofile -ResourceGroupName MyRG
$TmProfile.Endpoints[0].Priority = 2
$TmProfile.Endpoints[1].Priority = 1
Set-AzTrafficManagerProfile -TrafficManagerProfile $TmProfile
Przykład 2. Aktualizowanie punktu końcowego przy użyciu elementu Get-AzTrafficManagerEndpoint
i Set-AzTrafficManagerEndpoint
W tym przykładzie zmodyfikujemy wagę pojedynczego punktu końcowego w istniejącym profilu.
$endpoint = Get-AzTrafficManagerEndpoint -Name myendpoint -ProfileName myprofile -ResourceGroupName MyRG -Type ExternalEndpoints
$endpoint.Weight = 20
Set-AzTrafficManagerEndpoint -TrafficManagerEndpoint $endpoint
Włączanie i wyłączanie punktów końcowych i profilów
Usługa Traffic Manager umożliwia włączanie i wyłączanie poszczególnych punktów końcowych, a także umożliwia włączanie i wyłączanie całych profilów. Te zmiany można wprowadzić, pobierając/aktualizując/ustawiając punkt końcowy lub zasoby profilu. Aby usprawnić te typowe operacje, są one również obsługiwane za pośrednictwem dedykowanych poleceń cmdlet.
Przykład 1. Włączanie i wyłączanie profilu usługi Traffic Manager
Aby włączyć profil usługi Traffic Manager, użyj polecenia Enable-AzTrafficManagerProfile
. Profil można określić przy użyciu obiektu profilu. Obiekt profilu można przekazać za pośrednictwem potoku lub za pomocą parametru "-TrafficManagerProfile". W tym przykładzie określamy profil według nazwy profilu i grupy zasobów.
Enable-AzTrafficManagerProfile -Name MyProfile -ResourceGroupName MyResourceGroup
Aby wyłączyć profil usługi Traffic Manager:
Disable-AzTrafficManagerProfile -Name MyProfile -ResourceGroupName MyResourceGroup
Polecenie cmdlet Disable-AzTrafficManagerProfile monituje o potwierdzenie. Ten monit można pominąć przy użyciu parametru "-Force".
Przykład 2. Włączanie i wyłączanie punktu końcowego usługi Traffic Manager
Aby włączyć punkt końcowy usługi Traffic Manager, użyj polecenia Enable-AzTrafficManagerEndpoint
. Istnieją dwa sposoby określania punktu końcowego
- Używanie obiektu TrafficManagerEndpoint przekazanego za pośrednictwem potoku lub przy użyciu parametru "-TrafficManagerEndpoint"
- Przy użyciu nazwy punktu końcowego, typu punktu końcowego, nazwy profilu i nazwy grupy zasobów:
Enable-AzTrafficManagerEndpoint -Name MyEndpoint -Type AzureEndpoints -ProfileName MyProfile -ResourceGroupName MyRG
Podobnie aby wyłączyć punkt końcowy usługi Traffic Manager:
Disable-AzTrafficManagerEndpoint -Name MyEndpoint -Type AzureEndpoints -ProfileName MyProfile -ResourceGroupName MyRG -Force
Podobnie jak w przypadku Disable-AzTrafficManagerProfile
polecenia Disable-AzTrafficManagerEndpoint
cmdlet , polecenie cmdlet monituje o potwierdzenie. Ten monit można pominąć przy użyciu parametru "-Force".
Usuwanie punktu końcowego usługi Traffic Manager
Aby usunąć poszczególne punkty końcowe, użyj Remove-AzTrafficManagerEndpoint
polecenia cmdlet :
Remove-AzTrafficManagerEndpoint -Name MyEndpoint -Type AzureEndpoints -ProfileName MyProfile -ResourceGroupName MyRG
To polecenie cmdlet monituje o potwierdzenie. Ten monit można pominąć przy użyciu parametru "-Force".
Usuwanie profilu usługi Traffic Manager
Aby usunąć profil usługi Traffic Manager, użyj Remove-AzTrafficManagerProfile
polecenia cmdlet , określając nazwy profilów i grup zasobów:
Remove-AzTrafficManagerProfile -Name MyProfile -ResourceGroupName MyRG [-Force]
To polecenie cmdlet monituje o potwierdzenie. Ten monit można pominąć przy użyciu parametru "-Force".
Profil do usunięcia można również określić przy użyciu obiektu profilu:
$TmProfile = Get-AzTrafficManagerProfile -Name MyProfile -ResourceGroupName MyRG
Remove-AzTrafficManagerProfile -TrafficManagerProfile $TmProfile [-Force]
Tę sekwencję można również przekazać potokami:
Get-AzTrafficManagerProfile -Name MyProfile -ResourceGroupName MyRG | Remove-AzTrafficManagerProfile [-Force]