要求分類原則
分類程序會根據要定的特性,將要求指派給工作負載群組。 藉由撰寫使用者定義函式,做為叢集層級要求分類原則的一部分,以量身訂做分類邏輯。
如果沒有啟用的要求分類原則,所有要求都會分類至 default
工作負載群組。
原則物件
原則具有下列屬性:
IsEnabled
:bool
- 指出是否已啟用原則。ClassificationFunction
:string
- 要用於分類要求的函式本文。
分類函式
傳入要求的分類是以使用者定義函式為基礎。 函式的結果會用來將要求分類至現有的工作負載群組。
使用者定義的函數具有下列特性和行為:
- 如果在原則中將
IsEnabled
設定為true
,就會對每個新要求評估使用者定義函式。 - 使用者定義函式會在要求的完整存留期內,為要求提供工作負載群組內容。
- 在下列情況下,會為要求提供
default
工作負載群組內容:- 使用者定義函數會傳回空字串,
default
或不存在的工作負載群組名稱。 - 該函式因任何原因而失敗。
- 使用者定義函數會傳回空字串,
- 任何時候都只能指定一個使用者定義函式。
重要
將針對在叢集上執行的每個要求評估要求分類函式。 建議盡可能將其保持為輕量,而不要在其中包含大量計算。 例如,避免在執行過程中評估許多正則表達式。
需求及限制
分類函式:
必須傳回類型
string
的單一純量值,也就是要指派要求的工作負載群組的名稱。不得參考任何其他實體 (資料庫、資料表或函式)。
- 具體而言,其不得使用下列函式和運算子:
cluster()
database()
table()
external_table()
externaldata
- 具體而言,其不得使用下列函式和運算子:
具有特殊的
dynamic
符號 (名為request_properties
的屬性包) 的存取權,並具有下列屬性:名稱 類型 描述 範例 current_database
string
要求資料庫的名稱。 "MyDatabase"
current_application
string
傳送要求的應用程式名稱。 "Kusto.Explorer"
,"KusWeb"
current_principal
string
傳送要求的主體身分識別的完整名稱。 "aaduser=1793eb1f-4a18-418c-be4c-728e310c86d3;83af1c0e-8c6d-4f09-b249-c67a2e8fda65"
query_consistency
string
若為查詢:查詢的一致性 - strongconsistency
或weakconsistency
。 呼叫端可以設定此屬性做為要求 要求要求屬性的一部分:要設定的用戶端要求屬性為:queryconsistency
。"strongconsistency"
,"weakconsistency"
request_description
string
要求的作者可包含的自訂文字。 文件可以由呼叫端隨著要求的用戶端要求屬性的一部分設定:要設定的用戶端要求屬性為: request_description
。"Some custom description"
;針對儀表板自動填入:"dashboard:{dashboard_id};version:{version};sourceId:{source_id};sourceType:{tile/parameter}"
request_text
string
要求的混淆文字。 包含在查詢文字中混淆的字串常值會以多個星號 ( *
) 字元取代。 注意:只會評估要求文字的前置 65,536 個字元。".show version"
request_type
string
要求的類型 - Command
或Query
。"Command"
,"Query"
注意
使用 set
語句設定上述要求選項不允許分類。 必須在用戶端要求屬性物件中設定選項。
範例
單一工作負載群組
iff(request_properties.current_application == "Kusto.Explorer" and request_properties.request_type == "Query",
"Ad-hoc queries",
"default")
多個工作負載群組
case(current_principal_is_member_of('aadgroup=somesecuritygroup@contoso.com'), "First workload group",
request_properties.current_database == "MyDatabase" and request_properties.current_principal has 'aadapp=', "Second workload group",
request_properties.current_application == "Kusto.Explorer" and request_properties.request_type == "Query", "Third workload group",
request_properties.current_application == "Kusto.Explorer", "Third workload group",
request_properties.current_application == "KustoQueryRunner", "Fourth workload group",
request_properties.request_description == "this is a test", "Fifth workload group",
hourofday(now()) between (17 .. 23), "Sixth workload group",
"default")
管理命令
使用下列管理命令來管理叢集的要求分類原則。
命令 | 描述 |
---|---|
.alter cluster request classification policy |
改變叢集的要求分類原則 |
.alter-merge cluster request classification policy |
啟用或停用叢集的要求分類原則 |
.delete cluster request classification policy |
刪除叢集的要求分類原則 |
.show cluster request classification policy |
顯示叢集的要求分類原則 |
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應