Použití PowerShellu ke správě Traffic Manageru
Azure Resource Manager je upřednostňované rozhraní pro správu služeb v Azure. Profily Azure Traffic Manageru je možné spravovat pomocí rozhraní API a nástrojů založených na Azure Resource Manageru.
Poznámka:
Při práci s Azure doporučujeme používat modul Azure Az PowerShellu. Pokud chcete začít, přečtěte si téma Instalace Azure PowerShellu. Informace o tom, jak migrovat na modul Az PowerShell, najdete v tématu Migrace Azure PowerShellu z AzureRM na Az.
Model prostředků
Azure Traffic Manager se konfiguruje pomocí kolekce nastavení označovaných jako profil Traffic Manageru. Tento profil obsahuje nastavení DNS, nastavení směrování provozu, nastavení monitorování koncových bodů a seznam koncových bodů služby, do kterých se provoz směruje.
Každý profil Traffic Manageru je reprezentován prostředkem typu TrafficManagerProfiles. Na úrovni rozhraní REST API je identifikátor URI pro každý profil následující:
https://management.azure.com/subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Network/trafficManagerProfiles/{profile-name}?api-version={api-version}
Nastavení Azure PowerShellu
Poznámka:
Při práci s Azure doporučujeme používat modul Azure Az PowerShellu. Pokud chcete začít, přečtěte si téma Instalace Azure PowerShellu. Informace o tom, jak migrovat na modul Az PowerShell, najdete v tématu Migrace Azure PowerShellu z AzureRM na Az.
Tyto pokyny používají Microsoft Azure PowerShell. Následující článek vysvětluje, jak nainstalovat a nakonfigurovat Azure PowerShell.
Příklady v tomto článku předpokládají, že máte existující skupinu prostředků. Skupinu prostředků můžete vytvořit pomocí následujícího příkazu:
New-AzResourceGroup -Name MyRG -Location "West US"
Poznámka:
Azure Resource Manager vyžaduje, aby všechny skupiny prostředků měly umístění. Toto umístění se používá jako výchozí pro prostředky vytvořené v této skupině prostředků. Vzhledem k tomu, že prostředky profilu Traffic Manageru jsou globální, nikoli regionální, nemá výběr umístění skupiny prostředků žádný vliv na Azure Traffic Manager.
Vytvoření profilu Traffic Manageru
K vytvoření profilu Traffic Manageru použijte rutinu New-AzTrafficManagerProfile
:
$TmProfile = New-AzTrafficManagerProfile -Name MyProfile -ResourceGroupName MyRG -TrafficRoutingMethod Performance -RelativeDnsName contoso -Ttl 30 -MonitorProtocol HTTP -MonitorPort 80 -MonitorPath "/"
Následující tabulka popisuje parametry:
Parametr | Description |
---|---|
Name | Název prostředku pro prostředek profilu Traffic Manageru Profily ve stejné skupině prostředků musí mít jedinečné názvy. Tento název je oddělený od názvu DNS používaného pro dotazy DNS. |
ResourceGroupName | Název skupiny prostředků obsahující prostředek profilu. |
TrafficRoutingMethod | Určuje metodu směrování provozu použitou k určení koncového bodu, který se vrátí v odpovědi dotazu DNS. Možné hodnoty jsou Performance( Výkon), Weighted (Vážený) nebo Priority (Priorita). |
RelativeDnsName | Určuje část názvu hostitele názvu DNS poskytnutého tímto profilem Traffic Manageru. Tato hodnota se zkombinuje s názvem domény DNS, který používá Azure Traffic Manager k vytvoření plně kvalifikovaného názvu domény (FQDN) profilu. Například nastavení hodnoty contoso se změní na "contoso.trafficmanager.net". |
TTL | Určuje hodnotu TTL (Time to Live) DNS v sekundách. Tato hodnota TTL informuje místní překladače DNS a klienty DNS, jak dlouho se mají odpovědi DNS ukládat do mezipaměti pro tento profil Traffic Manageru. |
MonitorProtocol | Určuje protokol, který se má použít k monitorování stavu koncového bodu. Možné hodnoty jsou HTTP a HTTPS. |
MonitorPort | Určuje port TCP použitý k monitorování stavu koncového bodu. |
MonitorPath | Určuje cestu relativní k názvu domény koncového bodu použitému k sondě stavu koncového bodu. |
Rutina vytvoří v Azure profil Traffic Manageru a vrátí odpovídající objekt profilu do PowerShellu. V tomto okamžiku profil neobsahuje žádné koncové body. Další informace o přidávání koncových bodů do profilu Traffic Manageru najdete v tématu Přidání koncových bodů Traffic Manageru.
Získání profilu Traffic Manageru
Pokud chcete načíst existující objekt profilu Traffic Manageru, použijte rutinu Get-AzTrafficManagerProfle
:
$TmProfile = Get-AzTrafficManagerProfile -Name MyProfile -ResourceGroupName MyRG
Tato rutina vrátí objekt profilu Traffic Manageru.
Aktualizace profilu Traffic Manageru
Úprava profilů Traffic Manageru se řídí 3 kroky:
- Načtěte profil pomocí
Get-AzTrafficManagerProfile
nebo použijte profil vrácenýNew-AzTrafficManagerProfile
. - Upravte profil. Můžete přidávat a odebírat koncové body nebo měnit parametry koncového bodu nebo profilu. Tyto změny jsou offline operace. Měníte pouze místní objekt v paměti, který představuje profil.
- Potvrďte změny pomocí rutiny
Set-AzTrafficManagerProfile
.
Všechny vlastnosti profilu lze změnit s výjimkou vlastnosti RelativeDnsName profilu. Chcete-li změnit název RelativeDnsName, musíte odstranit profil a nový profil s novým názvem.
Následující příklad ukazuje, jak změnit hodnotu TTL profilu:
$TmProfile = Get-AzTrafficManagerProfile -Name MyProfile -ResourceGroupName MyRG
$TmProfile.Ttl = 300
Set-AzTrafficManagerProfile -TrafficManagerProfile $TmProfile
Existují tři typy koncových bodů Traffic Manageru:
- Koncové body Azure jsou služby hostované v Azure.
- Externí koncové body jsou služby hostované mimo Azure.
- Vnořené koncové body se používají k vytváření vnořených hierarchií profilů Traffic Manageru. Vnořené koncové body umožňují pokročilým konfiguracím směrování provozu pro složité aplikace.
Ve všech třech případech je možné koncové body přidat dvěma způsoby:
- Použití 3stupňového procesu popsaného dříve. Výhodou této metody je, že v jedné aktualizaci je možné provést několik změn koncového bodu.
- Použití rutiny New-AzTrafficManagerEndpoint Tato rutina přidá koncový bod do existujícího profilu Traffic Manageru v jedné operaci.
Přidání koncových bodů Azure
Referenční služby koncových bodů Azure hostované v Azure Podporují se dva typy koncových bodů Azure:
- Azure App Service
- Prostředky Azure PublicIpAddress (které je možné připojit k nástroji pro vyrovnávání zatížení nebo síťovému rozhraní virtuálního počítače). PublicIpAddress musí mít přiřazený název DNS, který se má použít v Traffic Manageru.
V každém případě:
- Služba je určena pomocí parametru targetResourceId nebo
Add-AzTrafficManagerEndpointConfig
New-AzTrafficManagerEndpoint
. - Target a EndpointLocation jsou odvozené z TargetResourceId.
- Zadání váhy je volitelné. Váhy se používají pouze v případě, že je profil nakonfigurovaný tak, aby používal metodu směrování provozu Vážená. Jinak se ignorují. Pokud je tato hodnota zadaná, musí být číslo v rozsahu 1 až 1000. Výchozí hodnota je 1.
- Zadání priority je volitelné. Priority se používají pouze v případě, že je profil nakonfigurovaný tak, aby používal metodu směrování provozu Priority. Jinak se ignorují. Platné hodnoty jsou od 1 do 1000 s nižšími hodnotami označujícími vyšší prioritu. Pokud je zadán jeden koncový bod, musí být zadán pro všechny koncové body. Pokud tento argument vynecháte, použijí se výchozí hodnoty začínající na 1 v pořadí, v jakém jsou uvedené koncové body.
Příklad 1: Přidání koncových bodů služby App Service pomocí Add-AzTrafficManagerEndpointConfig
V tomto příkladu vytvoříme profil Traffic Manageru a pomocí rutiny Add-AzTrafficManagerEndpointConfig
přidáme dva koncové body služby App Service.
$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
Příklad 2: Přidání koncového bodu publicIpAddress pomocí New-AzTrafficManagerEndpoint
V tomto příkladu se do profilu Traffic Manageru přidá prostředek veřejné IP adresy. Veřejná IP adresa musí mít nakonfigurovaný název DNS a může být svázán s síťovým rozhraním virtuálního počítače nebo s nástrojem pro vyrovnávání zatížení.
$ip = Get-AzPublicIpAddress -Name MyPublicIP -ResourceGroupName MyRG
New-AzTrafficManagerEndpoint -Name MyIpEndpoint -ProfileName MyProfile -ResourceGroupName MyRG -Type AzureEndpoints -TargetResourceId $ip.Id -EndpointStatus Enabled
Přidání externích koncových bodů
Traffic Manager používá externí koncové body k směrování provozu do služeb hostovaných mimo Azure. Stejně jako u koncových bodů Azure je možné přidat externí koncové body, a to buď pomocí Add-AzTrafficManagerEndpointConfig
parametru Set-AzTrafficManagerProfile
, nebo New-AzTrafficManagerEndpoint
.
Při zadávání externích koncových bodů:
- Název domény koncového bodu musí být zadán pomocí parametru Target.
- Pokud se použije metoda směrování provozu Výkon, je vyžadována hodnota EndpointLocation. Jinak je nepovinný. Hodnota musí být platný název oblasti Azure.
- Váha a Priorita jsou volitelné.
Příklad 1: Přidání externích koncových bodů pomocí a Add-AzTrafficManagerEndpointConfig
Set-AzTrafficManagerProfile
V tomto příkladu vytvoříme profil Traffic Manageru, přidáme dva externí koncové body a potvrdíme změny.
$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
Příklad 2: Přidání externích koncových bodů pomocí New-AzTrafficManagerEndpoint
V tomto příkladu přidáme externí koncový bod do existujícího profilu. Tento profil je určen pomocí názvů profilů a skupin prostředků.
New-AzTrafficManagerEndpoint -Name eu-endpoint -ProfileName MyProfile -ResourceGroupName MyRG -Type ExternalEndpoints -Target app-eu.contoso.com -EndpointStatus Enabled
Přidání vnořených koncových bodů
Každý profil Traffic Manageru určuje jednu metodu směrování provozu. Existují však scénáře, které vyžadují sofistikovanější směrování provozu než směrování poskytované jedním profilem Traffic Manageru. Profily Traffic Manageru můžete vnořit a kombinovat výhody více než jedné metody směrování provozu. Vnořené profily umožňují přepsat výchozí chování Traffic Manageru tak, aby podporovalo větší a složitější nasazení aplikací. Podrobnější příklady najdete v tématu Vnořené profily Traffic Manageru.
Vnořené koncové body se konfigurují v nadřazeného profilu pomocí konkrétního typu koncového bodu NestedEndpoints. Při zadávání vnořených koncových bodů:
- Koncový bod musí být zadán pomocí parametru targetResourceId.
- Pokud se použije metoda směrování provozu Výkon, je vyžadována hodnota EndpointLocation. Jinak je nepovinný. Hodnota musí být platný název oblasti Azure.
- Váha a Priorita jsou volitelné, stejně jako u koncových bodů Azure.
- Parametr MinChildEndpoints je volitelný. Výchozí hodnota je 1. Pokud počet dostupných koncových bodů klesne pod tuto prahovou hodnotu, nadřazený profil považuje podřízený profil za snížený výkon a přesměruje provoz na ostatní koncové body v nadřazeném profilu.
Příklad 1: Přidání vnořených koncových bodů pomocí Add-AzTrafficManagerEndpointConfig
a Set-AzTrafficManagerProfile
V tomto příkladu vytvoříme nové podřízené a nadřazené profily Traffic Manageru, přidáme podřízenou položku jako vnořený koncový bod do nadřazeného objektu a potvrdíme změny.
$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
V tomto příkladu jsme v tomto příkladu nepřidali žádné další koncové body do podřízených nebo nadřazených profilů.
Příklad 2: Přidání vnořených koncových bodů pomocí New-AzTrafficManagerEndpoint
V tomto příkladu přidáme existující podřízený profil jako vnořený koncový bod do existujícího nadřazeného profilu. Tento profil je určen pomocí názvů profilů a skupin prostředků.
$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
Přidání koncových bodů z jiného předplatného
Traffic Manager může pracovat s koncovými body z různých předplatných. Musíte přepnout na předplatné s koncovým bodem, který chcete přidat, a načíst potřebný vstup do Traffic Manageru. Pak musíte přepnout na předplatná s profilem Traffic Manageru a přidat do něj koncový bod. Následující příklad ukazuje, jak to udělat s veřejnou IP adresou.
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
Aktualizace koncového bodu Traffic Manageru
Existující koncový bod Traffic Manageru můžete aktualizovat dvěma způsoby:
- Získejte profil Traffic Manageru pomocí
Get-AzTrafficManagerProfile
, aktualizujte vlastnosti koncového bodu v profilu a potvrďte změny pomocíSet-AzTrafficManagerProfile
. Tato metoda má výhodu, že v jedné operaci může aktualizovat více než jeden koncový bod. - Získejte koncový bod Traffic Manageru pomocí
Get-AzTrafficManagerEndpoint
, aktualizujte vlastnosti koncového bodu a potvrďte změny pomocíSet-AzTrafficManagerEndpoint
. Tato metoda je jednodušší, protože nevyžaduje indexování do pole Endpoints v profilu.
Příklad 1: Aktualizace koncových bodů pomocí Get-AzTrafficManagerProfile
a Set-AzTrafficManagerProfile
V tomto příkladu upravíme prioritu u dvou koncových bodů v rámci existujícího profilu.
$TmProfile = Get-AzTrafficManagerProfile -Name myprofile -ResourceGroupName MyRG
$TmProfile.Endpoints[0].Priority = 2
$TmProfile.Endpoints[1].Priority = 1
Set-AzTrafficManagerProfile -TrafficManagerProfile $TmProfile
Příklad 2: Aktualizace koncového bodu pomocí Get-AzTrafficManagerEndpoint
a Set-AzTrafficManagerEndpoint
V tomto příkladu upravíme váhu jednoho koncového bodu v existujícím profilu.
$endpoint = Get-AzTrafficManagerEndpoint -Name myendpoint -ProfileName myprofile -ResourceGroupName MyRG -Type ExternalEndpoints
$endpoint.Weight = 20
Set-AzTrafficManagerEndpoint -TrafficManagerEndpoint $endpoint
Povolení a zakázání koncových bodů a profilů
Traffic Manager umožňuje povolení a zakázání jednotlivých koncových bodů a také povolení a zakázání celých profilů. Tyto změny je možné provést tak, že získáte, aktualizujete nebo nastavíte prostředky koncového bodu nebo profilu. Aby se tyto běžné operace zjednodušily, podporují se také prostřednictvím vyhrazených rutin.
Příklad 1: Povolení a zakázání profilu Traffic Manageru
Pokud chcete povolit profil Traffic Manageru, použijte Enable-AzTrafficManagerProfile
. Profil lze zadat pomocí objektu profilu. Objekt profilu lze předat prostřednictvím kanálu nebo pomocí parametru -TrafficManagerProfile. V tomto příkladu určíme profil podle názvu profilu a skupiny prostředků.
Enable-AzTrafficManagerProfile -Name MyProfile -ResourceGroupName MyResourceGroup
Zakázání profilu Traffic Manageru:
Disable-AzTrafficManagerProfile -Name MyProfile -ResourceGroupName MyResourceGroup
Rutina Disable-AzTrafficManagerProfile zobrazí výzvu k potvrzení. Tuto výzvu lze potlačit pomocí parametru -Force.
Příklad 2: Povolení a zakázání koncového bodu Traffic Manageru
Pokud chcete povolit koncový bod Traffic Manageru, použijte Enable-AzTrafficManagerEndpoint
. Koncový bod můžete zadat dvěma způsoby.
- Použití objektu TrafficManagerEndpoint předaného prostřednictvím kanálu nebo pomocí parametru -TrafficManagerEndpoint
- Pomocí názvu koncového bodu, typu koncového bodu, názvu profilu a názvu skupiny prostředků:
Enable-AzTrafficManagerEndpoint -Name MyEndpoint -Type AzureEndpoints -ProfileName MyProfile -ResourceGroupName MyRG
Podobně zakázání koncového bodu Traffic Manageru:
Disable-AzTrafficManagerEndpoint -Name MyEndpoint -Type AzureEndpoints -ProfileName MyProfile -ResourceGroupName MyRG -Force
Disable-AzTrafficManagerProfile
Stejně jako u Disable-AzTrafficManagerEndpoint
rutiny se zobrazí výzva k potvrzení. Tuto výzvu lze potlačit pomocí parametru -Force.
Odstranění koncového bodu Traffic Manageru
Pokud chcete odebrat jednotlivé koncové body, použijte rutinu Remove-AzTrafficManagerEndpoint
:
Remove-AzTrafficManagerEndpoint -Name MyEndpoint -Type AzureEndpoints -ProfileName MyProfile -ResourceGroupName MyRG
Tato rutina zobrazí výzvu k potvrzení. Tuto výzvu lze potlačit pomocí parametru -Force.
Odstranění profilu Traffic Manageru
Pokud chcete odstranit profil Traffic Manageru, použijte rutinu Remove-AzTrafficManagerProfile
a zadejte názvy profilů a skupin prostředků:
Remove-AzTrafficManagerProfile -Name MyProfile -ResourceGroupName MyRG [-Force]
Tato rutina zobrazí výzvu k potvrzení. Tuto výzvu lze potlačit pomocí parametru -Force.
Profil, který se má odstranit, lze také zadat pomocí objektu profilu:
$TmProfile = Get-AzTrafficManagerProfile -Name MyProfile -ResourceGroupName MyRG
Remove-AzTrafficManagerProfile -TrafficManagerProfile $TmProfile [-Force]
Tuto sekvenci lze také připojit:
Get-AzTrafficManagerProfile -Name MyProfile -ResourceGroupName MyRG | Remove-AzTrafficManagerProfile [-Force]