篩選 Azure IoT 數據處理器預覽管線中的數據
重要
已啟用 Azure Arc 的 Azure IoT 操作預覽版目前為預覽狀態。 請勿在生產環境使用此預覽版軟體。
請參閱 Microsoft Azure 預覽版增補使用規定,以了解適用於 Azure 功能 (搶鮮版 (Beta)、預覽版,或尚未正式發行的版本) 的法律條款。
篩選階段可用於在管線中篩選出無須進一步處理的訊息。 若符合篩選條件,階段會將原始訊息原封不動發送至篩選階段,否則訊息將會從管線中刪除。
- 各個管線分割區可不受其他分割區影響,獨立篩選訊息。
- 若階段中並未篩選出訊息,則篩選階段的輸出即為原始訊息。
必要條件
若要設定及使用篩選管線階段,您需要已部署的 Azure IoT 數據處理器預覽實例,其中包含選擇性的數據處理者元件。
設定階段
篩選階段 JSON 設定負責定義階段的詳細資料。 若要編寫階段,可透過與表單架構使用者介面互動,或在 [進階] 索引標籤上提供 JSON 設定:
名稱 | 值 | 必要 | 預設 | 範例 |
---|---|---|---|---|
Display name | 用於顯示在資料處理器使用者介面中的名稱。 | Yes | - | Filter1 |
描述 | 使用者易記的篩選階段功能描述。 | No | - | Filter out anomalies |
查詢 | jq 運算式 | Yes | - | .payload.temperature > 0 and .payload.pressure < 50 |
jq 運算式
資料處理器中的篩選查詢會使用 jq 語言來定義篩選條件:
- 查詢中提供的 jq 語法必須有效。
- 篩選查詢的結果必須為布林值。
- 若訊息評估結果為
true
,則會從篩選階段原封不動地發至後續階段,以便進一步處理。 若訊息評估結果為false
,則會從篩選階段中刪除。 - 在篩選階段中,未傳回布林值結果的訊息均視為錯誤案例,並會從管線中刪除。
- 篩選階段會遵循 jq 運算式指南中所定義之 jq 使用限制。
建立篩選查詢以用於篩選階段時:
- 以訊息測試篩選查詢,確認可傳回布林值結果。
- 根據訊息抵達篩選階段的方式設定篩選查詢。
- 若要深入瞭解如何建置篩選運算式,請參閱 jq 運算式指南。
範例設定
下列 JSON 範例會顯示完整的篩選階段設定:
{
"displayName": "Filter name",
"description": "Filter description",
"query": "(.properties.responseTopic | contains(\"bar\")) or (.properties.responseTopic | contains(\"baz\")) and (.payload | has(\"temperature\")) and (.payload.temperature > 0)"
}
此篩選階段會檢查 .properties.responseTopic
中包含 bar
或 baz
的訊息,且訊息承載具有名為 temperature
且值大於 0
的屬性。
相關內容
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應