在 SharePoint 2013 中使用要求管理員

英文原文已於 2012 年 9 月 15 日星期六發佈

我尚未看見許多關於本主題的資訊,因此坦白說,我認為需要花些時間,才能取得一些適用於要求管理員 (RM) 的 PowerShell。對於不熟悉 RM 的人來說,這是 SharePoint 2013 的新功能,其設計目的是進行 SharePoint 要求的路由傳送與節流處理。藉由具備連入要求本質的知識 (例如,使用者代理程式、要求的 URL 或來源 IP),SharePoint 可自訂每個要求的回應。它會根據您定義的規則進行路由傳送,或對要求進行完全節流處理。RM 規則會針對每個 Web 應用程式進行套用,就像是在 SharePoint 2010 中進行節流處理一樣。

在高階方面,RM 的目標如下:

  • RM 可以路由傳送到健康情況較好的 WFE,讓健康情況較差的 WFE 保持運作
  • RM 可以識別有害的要求並立即拒絕它們
  • RM 可以為較低優先順序的要求 (Bot) 進行節流處理,為較高優先順序的要求 (使用者) 提供服務,藉以設定要求的優先順序
  • RM 可以傳送特定類型的所有要求,例如,搜尋特定電腦
  • 隔離的流量可以協助疑難排解單一電腦上的錯誤
  • RM 可以將大量要求傳送給功能更強大的 WFE

路由傳送和節流規則會以如下方式來實作:

  • 路由傳送規則會路由傳送要求,並關聯至 MachinePools
  • MachinePools 包含伺服器
  • 伺服器會使用權數來進行路由傳送 - 靜態權數與健康情況權數
  • 靜態權數對於 WFE 而言是固定的;健康情況權數則會根據健康情況分數動態變更

嗯,這就是它們的基本概觀 - 如果您想要了解更多關於 RM 的功能與使用方式的詳細資訊,應該可以在 TechNet 上找到其他文件。如果您正在閱讀本文,我假設您已具備足夠的相關知識 (或已具備足夠的好奇心),想實際利用它來進行一些工作。因此,我將在此處列出一些 PowerShell,以協助您開始使用。我發現了一些使用 RM 時非常有用的 Cmdlet。您經歷的基本程序如下:

  • 取得對於 SPWebApplication 的參考
  • 取得對於 Web 應用程式之要求管理設定的參考
  • 建立一或多個條件
    • 要求必須符合規則的「所有」條件,才能符合該規則 (就像它們是使用 AND 結合在一起)
  • 取得對於電腦集區的參考,或視需要建立一個新參考
  • 新增規則

現在讓我們逐步說明下列範例:

#取得對於 SPWebApplication 的參考
$w = Get-SPWebApplication -identity https://foo

#取得對於 Web 應用程式之要求管理設定的參考
$rmset = $w | Get-SPRequestManagementSettings

#建立一或多個條件
$criteria = New-SPRequestManagementRuleCriteria -Property Url -Value ".*\.docx" -MatchType Regex

#取得對於電腦集區的參考,或視需要建立一個新參考
$mp = Add-SPRoutingMachinePool -RequestManagementSettings $rmset -Name MyRulePool -MachineTargets ($rmset | Get-SPRoutingMachineInfo -Name WFE1)

#新增規則
$rmset | Add-SPRoutingRule -Name "Word Doc Rule" -Criteria $criteria -MachinePool $mp

現在讓我們來看看該路由傳送規則:
$rr = $rmset | Get-SPRoutingRule -Name "Word Doc Rule"

 

#看一下條件
$rr.Criteria

 

#變更路由傳送規則的到期日與時間
$rr.Expiration = "12/25/2013 5:00:00 PM"

 

就是這樣 - 現在您有了路由傳送規則。建立節流規則的方法非常類似:

 

#新增會尋找 OneNote 要求的新條件規則。它會透過檢查要求中的 UserAgent 並尋找 OneNote 所使用的標頭來完成此動作。
$criteria = New-SPRequestManagementRuleCriteria -Property UserAgent -Value ".*Microsoft Office OneNote 2010*" -MatchType Regex

#新增節流規則,在伺服器健康情況的分數達到 8 時使用條件規則。
#請注意,節流規則會套用到整個 Web 應用程式,#而不是套用到個別電腦,因此,您不能
#將電腦集區與它搭配使用。
$rmset | Add-SPThrottlingRule -Name "OneNote Throttle Rule" -Criteria $criteria -Threshold 8

 

#現在檢視 Web 應用程式的所有路由傳送規則
$rmset.RoutingRules

 

#檢視所有節流規則
$rmset.ThrottlingRules 

 

現在讓我們深入查看使用電腦集區的方式:

#取得所有可用的路由傳送電腦
Get-SPWebApplication | Get-SPRequestManagementSettings | Get-SPRoutingMachineInfo -Availability Available

#取得特定集區中的每一部電腦
Get-SPWebApplication | Get-SPRequestManagementSettings | Get-SPRoutingMachinePool -Name yourPoolName | % { $_.MachineTargets} | Format-Table

#針對特定的 Web 應用程式,將電腦 WFE1 新增至每個電腦集區;萬分感謝 Tyler 協助我完成此功能 - 我真的不是 PowerShell 的專業人員
$a = Get-SPWebApplication -Identity https://contoso
$b = $a | Get-SPRequestManagementSettings | Get-SPRoutingMachineInfo -Name WFE1
Get-SPWebApplication | Get-SPRequestManagementSettings | Get-SPRoutingMachinePool | % { $_ | Set-SPRoutingMachinePool -machinetargets ($_.machinetargets + $b) }

#將電腦 WFE1 新增至特定集區
$a = Get-SPWebApplication -Identity https://contoso
$b = $a | Get-SPRequestManagementSettings | Get-SPRoutingMachineInfo -Name WFE1
$pool = $a | Get-SPRequestManagementSettings | Get-SPRoutingMachinePool -Name yourPoolName
$pool | Set-SPRoutingMachinePool -MachineTargets ($pool.MachineTargets + $b)

#從每個電腦集區移除 WFE1
Get-SPWebApplication | Get-SPRequestManagementSettings | Get-SPRoutingMachineInfo -Name WFE1 | Remove-SPRoutingMachineInfo

好了,您已經擁有此功能了,各位。這應該就足以讓您開始使用此功能。

 

 

這是翻譯後的部落格文章。英文原文請參閱 Working with Request Manager in SharePoint 2013