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:
- Recupere o perfil usando
Get-AzTrafficManagerProfile
ou use o perfil retornado peloNew-AzTrafficManagerProfile
. - 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.
- 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:
- Os pontos de extremidade do Azure são serviços hospedados no Azure
- Pontos de extremidade externos são serviços hospedados fora do Azure
- 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:
- 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.
- 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:
- Serviço de Aplicações do Azure
- 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
ouNew-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:
- 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 usandoSet-AzTrafficManagerProfile
. Esse método tem a vantagem de poder atualizar mais de um ponto de extremidade em uma única operação. - 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 usandoSet-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
- Usando um objeto TrafficManagerEndpoint passado através do pipeline ou usando o parâmetro '-TrafficManagerEndpoint'
- 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]