Artigo original publicado no sábado, 15 de setembro de 2012

Ainda não vi muitas informações sobre este assunto, então decidi dedicar um tempo para falar um pouco sobre o PowerShell para o Gerenciador de Solicitações (RM). Para os que não conhecem o RM, ele é um novo elemento do SharePoint 2013 desenvolvido para realizar encaminhamento e limitação de solicitações do SharePoint. Conhecendo a natureza das solicitações recebidas (por exemplo, agente do usuário, URL solicitado ou IP de origem), o SharePoint pode personalizar a resposta a cada solicitação. Ele pode encaminhá-la com base nas regras definidas ou limitar completamente a solicitação. As regras do RM são aplicadas por aplicativo Web, assim como a limitação é realizada no SharePoint 2010. 

Em linhas gerais, as metas do RM são as seguintes:

  • O RM pode realizar encaminhamento para WFEs com integridade melhor, mantendo WFEs de baixa integridade em atividade
  • O RM pode identificar solicitações perigosas e recusá-las imediatamente
  • O RM pode priorizar solicitações limitando aquelas com baixa prioridade (bots) para atender às com prioridade mais elevada (usuários finais)
  • O RM pode enviar todas as solicitações de tipos específicos (como pesquisa, por exemplo) para máquinas específicas
  • O tráfego isolado pode ajudá-lo a solucionar erros em uma máquina
  • O RM pode enviar solicitações pesadas a WFEs mais sofisticados

As regras de encaminhamento e limitação são implementadas da seguinte maneira:

  • As regras de encaminhamento encaminham solicitações e são associadas a pools de computadores
  • Os pools de computadores contêm servidores
  • Os servidores usam pesos para encaminhamento: pesos estáticos e de integridade
  • Os pesos estáticos são constantes para WFEs; os pesos de integridade mudam dinamicamente com base nas pontuações de integridade

Essa é a visão geral básica do que elas são. É provável que haja outros documentos na TechNet, caso você deseje mais detalhes sobre os recursos e o uso do RM. Se você está lendo este post, suponho que tenha conhecimentos suficientes sobre o RM (ou esteja curioso o suficiente) a ponto de querer trabalhar com ele. Então, eu simplesmente colocarei alguns comandos de PowerShell aqui para ajudá-lo a começar. Você verá a seguir os cmdlets que achei úteis ao trabalhar com o RM. O processo básico é parecido com este:

  • Obter uma referência a SPWebApplication
  • Obter uma referência às configurações de gerenciamento de solicitações para o aplicativo Web
  • Criar um ou mais critérios
    • Uma solicitação deve corresponder a TODOS os critérios de uma regra para que corresponda a essa regra (por exemplo, união por AND)
  • Obter uma referência a um pool de computadores ou crie um novo,, se necessário
  • Adicionar a regra

Veja um exemplo a seguir:

#Obter uma referência a SPWebApplication
$w = Get-SPWebApplication -identity http://foo

#Obter uma referência às configurações de gerenciamento de solicitações para o aplicativo Web
$rmset = $w | Get-SPRequestManagementSettings

#Criar um ou mais critérios
$criteria = New-SPRequestManagementRuleCriteria -Property Url -Value ".*\.docx" -MatchType Regex

#Obter uma referência a um pool de computadores ou criar um novo, se necessário
$mp = Add-SPRoutingMachinePool -RequestManagementSettings $rmset -Name MyRulePool -MachineTargets ($rmset | Get-SPRoutingMachineInfo -Name WFE1)

#Adicionar a regra
$rmset | Add-SPRoutingRule -Name "Word Doc Rule" -Criteria $criteria -MachinePool $mp

Agora, vejamos a regra de encaminhamento:
$rr = $rmset | Get-SPRoutingRule -Name "Word Doc Rule"

 

#ver os critérios
$rr.Criteria

 

#alterar a data e hora e expiração da regra de encaminhamento
$rr.Expiration = "12/25/2013 5:00:00 PM"

 

Pronto, você já tem um regra de encaminhamento. O processo de criação de uma regra de limitação é semelhante:

 

#Adicionar uma nova regra de critérios que procure solicitações do OneNote. Ela pode fazer isso examinando UserAgent na solicitação e procurando no cabeçalho usado pelo OneNote.
$criteria = New-SPRequestManagementRuleCriteria -Property UserAgent -Value ".*Microsoft Office OneNote 2010*" -MatchType Regex

#Adicionar uma regra de limitação que use a regra de critérios quando a integridade do servidor atingir pontuação 8. 
#Observe que as regras de limitação aplicam-se a todo o aplicativo Web, #não a máquinas individuais; portanto, não
#use um pool de computadores com elas.
$rmset | Add-SPThrottlingRule -Name "OneNote Throttle Rule" -Criteria $criteria -Threshold 8

 

#agora, visualize todas as regras de encaminhamento para o aplicativo Web
$rmset.RoutingRules

 

#Visualizar todas as regras de limitação
$rmset.ThrottlingRules 

 

Agora veremos um pouco mais a fundo como trabalhar com pools de computadores:

#Obter todas as máquinas de encaminhamento disponíveis
Get-SPWebApplication | Get-SPRequestManagementSettings | Get-SPRoutingMachineInfo -Availability Available

#Obter todas as máquinas em um pool específico
Get-SPWebApplication | Get-SPRequestManagementSettings | Get-SPRoutingMachinePool -Name yourPoolName | % { $_.MachineTargets} | Format-Table

#Adicionar WFE1 da máquina a todos os pools de computadores de um aplicativo Web específico; minha eterna gratidão ao Tyler, que me ajudou neste caso (sinceramente, não sou muito bom com o PowerShell)
$a = Get-SPWebApplication -Identity http://contoso
$b = $a | Get-SPRequestManagementSettings | Get-SPRoutingMachineInfo -Name WFE1
Get-SPWebApplication | Get-SPRequestManagementSettings | Get-SPRoutingMachinePool | % { $_ | Set-SPRoutingMachinePool -machinetargets ($_.machinetargets + $b) }

#Adicionar WFE1 da máquina a um pool especifico
$a = Get-SPWebApplication -Identity http://contoso
$b = $a | Get-SPRequestManagementSettings | Get-SPRoutingMachineInfo -Name WFE1
$pool = $a | Get-SPRequestManagementSettings | Get-SPRoutingMachinePool -Name yourPoolName
$pool | Set-SPRoutingMachinePool -MachineTargets ($pool.MachineTargets + $b)

#Remover WFE1 de todos os pools de computadores
Get-SPWebApplication | Get-SPRequestManagementSettings | Get-SPRoutingMachineInfo -Name WFE1 | Remove-SPRoutingMachineInfo

Isso é tudo por enquanto, pessoal. Com isso, você já terá bastante material para começar a trabalhar.

 

 

Este é um post traduzido. O artigo original está em Working with Request Manager in SharePoint 2013