Azure 監視器記錄查詢中的函式
函式是 Azure 監視器中的記錄查詢,可用於其他記錄查詢,就像是命令一樣。 您可以使用函式為不同的客戶提供解決方案,並在您自己的環境中重複使用查詢邏輯。 本文說明如何使用函式,以及如何建立您自己的函式。
需要的權限
動作 | 需要的權限 |
---|---|
檢視或使用函式 | Microsoft.OperationalInsights/workspaces/query/*/read Log Analytics 工作區的許可權,例如 Log Analytics 讀取器內建角色所提供的許可權。 |
建立或編輯函式 | microsoft.operationalinsights/workspaces/savedSearches/write Log Analytics 工作區的許可權,例如 Log Analytics 參與者內建角色所提供的許可權。 |
函式類型
Azure 監視器中有兩種類型的函式:
解決方案函式:預先建置的函式隨附於 Azure 監視器中。 這些函式可在所有 Log Analytics 工作區中使用,且無法修改。
工作區函式:這些函式會安裝在特定的 Log Analytics 工作區中。 使用者可以修改及控制這些函式。
檢視函式
您可以在 Log Analytics 工作區左窗格中的 [函式] 索引標籤上,檢視目前工作區中的解決方案函式和工作區函式。 使用篩選來篩選清單中包含的函式。 使用 [群組依據] 來變更其群組。 在 [搜尋] 方塊中輸入字串,以找出特定函式。 將滑鼠停留在函式上,以檢視其詳細資料,包括描述和參數。
使用函式
藉由輸入函式名稱和任何參數的值來使用函式,就像在命令中輸入一樣。 函式的輸出可以傳回為結果,或管線傳送至另一個命令。
按兩下函式的名稱或將滑鼠停留在函式上,然後選取 [在編輯器中使用],將函式新增至目前的查詢。 當您在查詢中輸入時,工作區中的函式也會包含在 IntelliSense 中。
如果查詢需要參數,請使用 function_name(param1,param2,...)
語法提供參數。
建立函式
若要從編輯器中的目前查詢建立函式,請選取 [儲存]>[另存為函式]。
選取 [儲存],然後提供下表中的資訊,以在 Azure 入口網站中使用記錄分析建立函式:
設定 | 描述 |
---|---|
函式名稱 | 函式的名稱。 名稱不能包含空格或任何特殊字元。 也不能以底線 (_) 開頭,因為此字元要保留給解決方案函式。 |
舊版類別 | 使用者定義的類別可協助篩選和群組函式。 |
另存為電腦群組 | 將查詢儲存為電腦群組。 |
參數 | 針對函式中的每個變數新增參數,該函式在使用時需要值。 如需詳細資訊,請參閱函式參數。 |
函數參數
您可以將參數新增至函式,以便在呼叫函式時提供特定變數的值。 因此,相同的函式可用於不同的查詢中,每個函式都會為參數提供不同的值。 參數是由下列屬性所定義:
設定 | 描述 |
---|---|
類型 | 值的資料類型。 |
名稱 | 參數的名稱。 必須在查詢中使用此名稱來取代參數值。 |
預設值 | 未提供值時用於參數的值。 |
參數會在建立時排序。 沒有預設值的參數會放在具有預設值的參數前面。
使用函式程式碼
您可以檢視函式的程式碼,以取得其運作方式的深入解析,或修改工作區函式的程式碼。 選取 [載入函式程式碼],在編輯器中將函式程式碼新增至目前查詢。
如果您將函式程式碼新增至空白查詢或現有查詢的第一行,函式名稱就會新增至索引標籤。工作區函式可讓您編輯函式詳細資料。
編輯函式
藉由建立新的查詢來編輯屬性或函式的程式碼。 將滑鼠停留在函式的名稱上,然後選取 [載入函式程式碼碼]。 對程式碼進行任何修改,然後選取 [儲存]。 然後選取 [編輯函式詳細資料]。 對函式的屬性和參數進行任何變更,然後選取 [儲存]。
範例
下列範例函式會傳回 Azure 活動記錄中自特定日期起且符合特定類別的所有事件。
從下列查詢開始,使用硬式編碼值來驗證查詢是否如預期般運作。
AzureActivity
| where CategoryValue == "Administrative"
| where TimeGenerated > todatetime("2021/04/05 5:40:01.032 PM")
接下來,以參數名稱取代硬式編碼值。 然後選取 [儲存]>[另存為函式] 來儲存函式。
AzureActivity
| where CategoryValue == CategoryParam
| where TimeGenerated > DateParam
為函式屬性提供下列值:
屬性 | 值 |
---|---|
函式名稱 | AzureActivityByCategory |
舊版類別 | 示範函式 |
先定義下列參數,再儲存函式:
類型 | 名稱 | 預設值 |
---|---|---|
string | CategoryParam | "系統管理" |
Datetime | DateParam |
建立新的查詢,並且藉由將滑鼠停留在上面來檢視新的函式。 查看參數的順序。 當您使用函式時,必須依此順序指定這些函式。
選取 [在編輯器中使用],將新的函式新增至查詢。 然後新增參數的值。 您不需要指定 CategoryParam
的值,因為其有預設值。
下一步
如需如何撰寫 Azure 監視器記錄查詢的詳細資訊,請參閱字串作業。