Partilhar via


Usando o PowerShell para gerenciar o Gerenciador de Tráfego

O Azure Resource Manager é a interface de gerenciamento preferencial para serviços no Azure. Os perfis do Azure Traffic Manager podem ser gerenciados usando APIs e ferramentas baseadas no Azure Resource Manager.

Nota

Recomendamos que utilize o módulo Azure Az do PowerShell para interagir com o Azure. Para começar, consulte Instalar o Azure PowerShell. Para saber como migrar para o módulo do Az PowerShell, veja Migrar o Azure PowerShell do AzureRM para o Az.

Modelo de recursos

O Azure Traffic Manager é configurado usando uma coleção de configurações chamada perfil do Gerenciador de Tráfego. Esse perfil contém configurações de DNS, configurações de roteamento de tráfego, configurações de monitoramento de ponto de extremidade e uma lista de pontos de extremidade de serviço para os quais o tráfego é roteado.

Cada perfil do Traffic Manager é representado por um recurso do tipo 'TrafficManagerProfiles'. No nível da API REST, o URI para cada perfil é o seguinte:

https://management.azure.com/subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Network/trafficManagerProfiles/{profile-name}?api-version={api-version}

Configurando o Azure PowerShell

Nota

Recomendamos que utilize o módulo Azure Az do PowerShell para interagir com o Azure. Para começar, consulte Instalar o Azure PowerShell. Para saber como migrar para o módulo do Az PowerShell, veja Migrar o Azure PowerShell do AzureRM para o Az.

Estas instruções usam o Microsoft Azure PowerShell. O artigo a seguir explica como instalar e configurar o Azure PowerShell.

Os exemplos neste artigo pressupõem que você tenha um grupo de recursos existente. Você pode criar um grupo de recursos usando o seguinte comando:

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

Nota

O Azure Resource Manager requer que todos os grupos de recursos tenham um local. Esse local é usado como padrão para recursos criados nesse grupo de recursos. No entanto, como os recursos de perfil do Gerenciador de Tráfego são globais, não regionais, a escolha do local do grupo de recursos não tem impacto no Gerenciador de Tráfego do Azure.

Criar um perfil de gestor de tráfego

Para criar um perfil do Gerenciador de Tráfego, use o New-AzTrafficManagerProfile cmdlet:

$TmProfile = New-AzTrafficManagerProfile -Name MyProfile -ResourceGroupName MyRG -TrafficRoutingMethod Performance -RelativeDnsName contoso -Ttl 30 -MonitorProtocol HTTP -MonitorPort 80 -MonitorPath "/"

A tabela a seguir descreve os parâmetros:

Parâmetro Description
Name O nome do recurso para o recurso de perfil do Gerenciador de Tráfego. Os perfis no mesmo grupo de recursos devem ter nomes exclusivos. Esse nome é separado do nome DNS usado para consultas DNS.
ResourceGroupName O nome do grupo de recursos que contém o recurso de perfil.
TrafficRoutingMethod Especifica o método de roteamento de tráfego usado para determinar qual ponto de extremidade é retornado em resposta a uma consulta DNS. Os valores possíveis são 'Desempenho', 'Ponderado' ou 'Prioridade'.
RelativeDnsName Especifica a parte do nome do host do nome DNS fornecido por este perfil do Gerenciador de Tráfego. Esse valor é combinado com o nome de domínio DNS usado pelo Gerenciador de Tráfego do Azure para formar o FQDN (nome de domínio totalmente qualificado) do perfil. Por exemplo, definir o valor de 'contoso' torna-se 'contoso.trafficmanager.net'.
TTL Especifica o tempo de vida útil (TTL) do DNS, em segundos. Este TTL informa os resolvedores DNS locais e os clientes DNS por quanto tempo armazenar em cache as respostas DNS para este perfil do Gestor de Tráfego.
MonitorProtocol Especifica o protocolo a ser usado para monitorar a integridade do ponto de extremidade. Os valores possíveis são 'HTTP' e 'HTTPS'.
MonitorPort Especifica a porta TCP usada para monitorar a integridade do ponto de extremidade.
MonitorPath Especifica o caminho relativo ao nome de domínio do ponto de extremidade usado para investigar a integridade do ponto de extremidade.

O cmdlet cria um perfil do Gerenciador de Tráfego no Azure e retorna um objeto de perfil correspondente ao PowerShell. Neste ponto, o perfil não contém nenhum ponto de extremidade. Para obter mais informações sobre como adicionar pontos de extremidade a um perfil do Gerenciador de Tráfego, consulte Adicionando pontos de extremidade do Gerenciador de Tráfego.

Obter um perfil de gestor de tráfego

Para recuperar um objeto de perfil existente do Gerenciador de Tráfego, use o Get-AzTrafficManagerProfile cmdlet:

$TmProfile = Get-AzTrafficManagerProfile -Name MyProfile -ResourceGroupName MyRG

Este cmdlet retorna um objeto de perfil do Gerenciador de Tráfego.

Atualizar um perfil do Gerenciador de Tráfego

A modificação dos perfis do Traffic Manager segue um processo de 3 etapas:

  1. Recupere o perfil usando Get-AzTrafficManagerProfile ou use o perfil retornado pelo New-AzTrafficManagerProfile.
  2. Modifique o perfil. Você pode adicionar e remover pontos de extremidade ou alterar parâmetros de ponto de extremidade ou perfil. Essas alterações são operações off-line. Você está alterando apenas o objeto local na memória que representa o perfil.
  3. Confirme suas alterações usando o Set-AzTrafficManagerProfile cmdlet.

Todas as propriedades do perfil podem ser alteradas, exceto RelativeDnsName do perfil. Para alterar o RelativeDnsName, você deve excluir o perfil e um novo perfil com um novo nome.

O exemplo a seguir demonstra como alterar o TTL do perfil:

$TmProfile = Get-AzTrafficManagerProfile -Name MyProfile -ResourceGroupName MyRG
$TmProfile.Ttl = 300
Set-AzTrafficManagerProfile -TrafficManagerProfile $TmProfile

Existem três tipos de pontos de extremidade do Traffic Manager:

  1. Os pontos de extremidade do Azure são serviços hospedados no Azure
  2. Pontos de extremidade externos são serviços hospedados fora do Azure
  3. Os pontos de extremidade aninhados são usados para construir hierarquias aninhadas de perfis do Gerenciador de Tráfego. Os pontos de extremidade aninhados permitem configurações avançadas de roteamento de tráfego para aplicativos complexos.

Em todos os três casos, os pontos de extremidade podem ser adicionados de duas maneiras:

  1. Usando um processo de 3 etapas descrito anteriormente. A vantagem desse método é que várias alterações de ponto de extremidade podem ser feitas em uma única atualização.
  2. Usando o cmdlet New-AzTrafficManagerEndpoint. Este cmdlet adiciona um ponto de extremidade a um perfil existente do Gerenciador de Tráfego em uma única operação.

Adicionando pontos de extremidade do Azure

Serviços de referência de pontos de extremidade do Azure hospedados no Azure. Há suporte para dois tipos de pontos de extremidade do Azure:

  1. Serviço de Aplicações do Azure
  2. Recursos do Azure PublicIpAddress (que podem ser anexados a um balanceador de carga ou a uma NIC de máquina virtual). O PublicIpAddress deve ter um nome DNS atribuído para ser usado no Gerenciador de Tráfego.

Em cada caso:

  • O serviço é especificado usando o parâmetro 'targetResourceId' de Add-AzTrafficManagerEndpointConfig ou New-AzTrafficManagerEndpoint.
  • O 'Target' e o 'EndpointLocation' estão implícitos no TargetResourceId.
  • A especificação do «Peso» é opcional. Os pesos só são usados se o perfil estiver configurado para usar o método de roteamento de tráfego 'Ponderado'. Caso contrário, são ignorados. Se especificado, o valor deve ser um número entre 1 e 1000. O valor padrão é '1'.
  • A especificação da «Prioridade» é opcional. As prioridades só são usadas se o perfil estiver configurado para usar o método de roteamento de tráfego 'Priority'. Caso contrário, são ignorados. Os valores válidos são de 1 a 1000 com valores mais baixos indicando uma prioridade mais alta. Se especificado para um ponto de extremidade, eles devem ser especificados para todos os pontos de extremidade. Se omitidos, os valores padrão a partir de '1' são aplicados na ordem em que os pontos de extremidade são listados.

Exemplo 1: Adicionando pontos de extremidade do Serviço de Aplicativo usando Add-AzTrafficManagerEndpointConfig

Neste exemplo, criamos um perfil do Gerenciador de Tráfego e adicionamos dois pontos de extremidade do Serviço de Aplicativo usando o Add-AzTrafficManagerEndpointConfig 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

Exemplo 2: Adicionando um ponto de extremidade publicIpAddress usando New-AzTrafficManagerEndpoint

Neste exemplo, um recurso de endereço IP público é adicionado ao perfil do Gerenciador de Tráfego. O endereço IP público deve ter um nome DNS configurado e pode ser vinculado à NIC de uma VM ou a um balanceador de carga.

$ip = Get-AzPublicIpAddress -Name MyPublicIP -ResourceGroupName MyRG
New-AzTrafficManagerEndpoint -Name MyIpEndpoint -ProfileName MyProfile -ResourceGroupName MyRG -Type AzureEndpoints -TargetResourceId $ip.Id -EndpointStatus Enabled

Adicionando pontos de extremidade externos

O Gerenciador de Tráfego usa pontos de extremidade externos para direcionar o tráfego para serviços hospedados fora do Azure. Assim como acontece com os pontos de extremidade do Azure, os pontos de extremidade externos podem ser adicionados usando Add-AzTrafficManagerEndpointConfig seguido por Set-AzTrafficManagerProfile, ou New-AzTrafficManagerEndpoint.

Ao especificar pontos de extremidade externos:

  • O nome de domínio do ponto final deve ser especificado usando o parâmetro 'Target'
  • Se o método de roteamento de tráfego 'Performance' for usado, o 'EndpointLocation' será necessário. Caso contrário, é opcional. O valor deve ser um nome de região do Azure válido.
  • O 'Peso' e a 'Prioridade' são opcionais.

Exemplo 1: Adicionando pontos de extremidade externos usando Add-AzTrafficManagerEndpointConfig e Set-AzTrafficManagerProfile

Neste exemplo, criamos um perfil do Gerenciador de Tráfego, adicionamos dois pontos de extremidade externos e confirmamos as alterações.

$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

Exemplo 2: Adicionando pontos de extremidade externos usando New-AzTrafficManagerEndpoint

Neste exemplo, adicionamos um ponto de extremidade externo a um perfil existente. O perfil é especificado usando os nomes de perfil e grupo de recursos.

New-AzTrafficManagerEndpoint -Name eu-endpoint -ProfileName MyProfile -ResourceGroupName MyRG -Type ExternalEndpoints -Target app-eu.contoso.com -EndpointStatus Enabled

Adicionando pontos de extremidade 'aninhados'

Cada perfil do Gerenciador de Tráfego especifica um único método de roteamento de tráfego. No entanto, há cenários que exigem roteamento de tráfego mais sofisticado do que o roteamento fornecido por um único perfil do Gerenciador de Tráfego. Você pode aninhar perfis do Gerenciador de Tráfego para combinar os benefícios de mais de um método de roteamento de tráfego. Os perfis aninhados permitem que você substitua o comportamento padrão do Gerenciador de Tráfego para oferecer suporte a implantações de aplicativos maiores e mais complexas. Para obter exemplos mais detalhados, consulte Perfis do Gerenciador de tráfego aninhado.

Os pontos de extremidade aninhados são configurados no perfil pai, usando um tipo de ponto de extremidade específico, 'NestedEndpoints'. Ao especificar pontos de extremidade aninhados:

  • O ponto de extremidade deve ser especificado usando o parâmetro 'targetResourceId'
  • Se o método de roteamento de tráfego 'Performance' for usado, o 'EndpointLocation' será necessário. Caso contrário, é opcional. O valor deve ser um nome de região do Azure válido.
  • O 'Peso' e a 'Prioridade' são opcionais, como para os pontos de extremidade do Azure.
  • O parâmetro 'MinChildEndpoints' é opcional. O valor padrão é '1'. Se o número de pontos de extremidade disponíveis cair abaixo desse limite, o perfil pai considerará o perfil filho "degradado" e desviará o tráfego para os outros pontos de extremidade no perfil pai.

Exemplo 1: Adicionando pontos de extremidade aninhados usando Add-AzTrafficManagerEndpointConfig e Set-AzTrafficManagerProfile

Neste exemplo, criamos novos perfis de filho e pai do Gerenciador de Tráfego, adicionamos o filho como um ponto de extremidade aninhado ao pai e confirmamos as alterações.

$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

Para maior brevidade neste exemplo, não adicionamos nenhum outro ponto de extremidade aos perfis de filho ou pai.

Exemplo 2: Adicionando pontos de extremidade aninhados usando New-AzTrafficManagerEndpoint

Neste exemplo, adicionamos um perfil filho existente como um ponto de extremidade aninhado a um perfil pai existente. O perfil é especificado usando os nomes de perfil e grupo de recursos.

$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

Adicionar pontos de extremidade de outra subscrição

O Gestor de Tráfego pode trabalhar com terminais de diferentes subscrições. Você precisa alternar para a assinatura com o ponto de extremidade que deseja adicionar para recuperar a entrada necessária para o Gerenciador de Tráfego. Em seguida, você precisa alternar para as assinaturas com o perfil do Gerenciador de Tráfego e adicionar o ponto de extremidade a ele. O exemplo abaixo mostra como fazer isso com um endereço IP público.

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

Atualizar um ponto de extremidade do Gerenciador de Tráfego

Há duas maneiras de atualizar um ponto de extremidade existente do Gerenciador de Tráfego:

  1. Obtenha o perfil do Gerenciador de Tráfego usando Get-AzTrafficManagerProfile, atualize as propriedades do ponto de extremidade dentro do perfil e confirme as alterações usando Set-AzTrafficManagerProfile. Esse método tem a vantagem de poder atualizar mais de um ponto de extremidade em uma única operação.
  2. Obtenha o ponto de extremidade do Gerenciador de Tráfego usando Get-AzTrafficManagerEndpoint, atualize as propriedades do ponto de extremidade e confirme as alterações usando Set-AzTrafficManagerEndpoint. Esse método é mais simples, pois não requer indexação na matriz Endpoints no perfil.

Exemplo 1: Atualizando pontos de extremidade usando Get-AzTrafficManagerProfile e Set-AzTrafficManagerProfile

Neste exemplo, modificamos a prioridade em dois pontos de extremidade dentro de um perfil existente.

$TmProfile = Get-AzTrafficManagerProfile -Name myprofile -ResourceGroupName MyRG
$TmProfile.Endpoints[0].Priority = 2
$TmProfile.Endpoints[1].Priority = 1
Set-AzTrafficManagerProfile -TrafficManagerProfile $TmProfile

Exemplo 2: Atualizando um ponto de extremidade usando Get-AzTrafficManagerEndpoint e Set-AzTrafficManagerEndpoint

Neste exemplo, modificamos o peso de um único ponto de extremidade em um perfil existente.

$endpoint = Get-AzTrafficManagerEndpoint -Name myendpoint -ProfileName myprofile -ResourceGroupName MyRG -Type ExternalEndpoints
$endpoint.Weight = 20
Set-AzTrafficManagerEndpoint -TrafficManagerEndpoint $endpoint

Ativando e desativando endpoints e perfis

O Gestor de Tráfego permite que pontos de extremidade individuais sejam ativados e desativados, além de permitir a ativação e desativação de perfis inteiros. Essas alterações podem ser feitas obtendo/atualizando/definindo os recursos do ponto de extremidade ou do perfil. Para simplificar essas operações comuns, elas também são suportadas por meio de cmdlets dedicados.

Exemplo 1: Ativar e desativar um perfil do Gestor de Tráfego

Para habilitar um perfil do Gerenciador de Tráfego, use Enable-AzTrafficManagerProfile. O perfil pode ser especificado usando um objeto de perfil. O objeto de perfil pode ser passado através do pipeline ou usando o parâmetro '-TrafficManagerProfile'. Neste exemplo, especificamos o perfil pelo nome do perfil e do grupo de recursos.

Enable-AzTrafficManagerProfile -Name MyProfile -ResourceGroupName MyResourceGroup

Para desativar um perfil do Gerenciador de Tráfego:

Disable-AzTrafficManagerProfile -Name MyProfile -ResourceGroupName MyResourceGroup

O cmdlet Disable-AzTrafficManagerProfile solicita confirmação. Esse prompt pode ser suprimido usando o parâmetro '-Force'.

Exemplo 2: Habilitando e desabilitando um ponto de extremidade do Gerenciador de Tráfego

Para habilitar um ponto de extremidade do Gerenciador de Tráfego, use Enable-AzTrafficManagerEndpoint. Há duas maneiras de especificar o ponto de extremidade

  1. Usando um objeto TrafficManagerEndpoint passado através do pipeline ou usando o parâmetro '-TrafficManagerEndpoint'
  2. Usando o nome do ponto de extremidade, o tipo de ponto de extremidade, o nome do perfil e o nome do grupo de recursos:
Enable-AzTrafficManagerEndpoint -Name MyEndpoint -Type AzureEndpoints -ProfileName MyProfile -ResourceGroupName MyRG

Da mesma forma, para desativar um ponto de extremidade do Gerenciador de Tráfego:

Disable-AzTrafficManagerEndpoint -Name MyEndpoint -Type AzureEndpoints -ProfileName MyProfile -ResourceGroupName MyRG -Force

Assim como no Disable-AzTrafficManagerProfile, o Disable-AzTrafficManagerEndpoint cmdlet solicita confirmação. Esse prompt pode ser suprimido usando o parâmetro '-Force'.

Excluir um ponto de extremidade do Gerenciador de Tráfego

Para remover pontos de extremidade individuais, use o Remove-AzTrafficManagerEndpoint cmdlet:

Remove-AzTrafficManagerEndpoint -Name MyEndpoint -Type AzureEndpoints -ProfileName MyProfile -ResourceGroupName MyRG

Este cmdlet solicita confirmação. Esse prompt pode ser suprimido usando o parâmetro '-Force'.

Excluir um perfil do Gerenciador de Tráfego

Para excluir um perfil do Gerenciador de Tráfego, use o Remove-AzTrafficManagerProfile cmdlet, especificando os nomes de perfil e grupo de recursos:

Remove-AzTrafficManagerProfile -Name MyProfile -ResourceGroupName MyRG [-Force]

Este cmdlet solicita confirmação. Esse prompt pode ser suprimido usando o parâmetro '-Force'.

O perfil a ser excluído também pode ser especificado usando um objeto de perfil:

$TmProfile = Get-AzTrafficManagerProfile -Name MyProfile -ResourceGroupName MyRG
Remove-AzTrafficManagerProfile -TrafficManagerProfile $TmProfile [-Force]

Esta sequência também pode ser canalizada:

Get-AzTrafficManagerProfile -Name MyProfile -ResourceGroupName MyRG | Remove-AzTrafficManagerProfile [-Force]

Próximos passos

Monitorização do Gestor de Tráfego

Considerações de desempenho para o Gestor de Tráfego