轉換數據處理者管線中的數據
重要
已啟用 Azure Arc 的 Azure IoT 操作預覽版目前為預覽狀態。 請勿在生產環境使用此預覽版軟體。
當正式發行可供使用時,您將需要部署新的 Azure IoT 作業安裝,您將無法升級預覽安裝。
請參閱 Microsoft Azure 預覽版增補使用規定,以了解適用於 Azure 功能 (搶鮮版 (Beta)、預覽版,或尚未正式發行的版本) 的法律條款。
使用轉換階段,對管線中的訊息執行結構轉換,例如:
- 重新命名標籤和屬性
- 取消批次處理資料
- 新增屬性
- 新增導出值
轉換階段會使用 jq 來支援資料轉換:
必要條件
若要設定並使用轉換管線階段,您需要:
- 包含選擇性數據處理者元件的已部署數據處理者實例。
- 了解 jq 運算式。
設定階段
轉換階段 JSON 組態會定義階段的詳細資料。 若要編寫階段,可透過與表單架構使用者介面互動,或在 [進階] 索引標籤上提供 JSON 設定:
名稱 | 值 | 必要 | 範例 |
---|---|---|---|
名稱 | 要顯示在數據處理者 UI 中的名稱。 | Yes | Transform1 |
描述 | 轉換階段執行之用途的使用者易記描述。 | No | Rename Tags |
查詢 | 轉換 jq 運算式。 | Yes | .payload.values |= (map({(.tag): (.numVal // .boolVal)}) | add) |
範例設定
下列轉換範例會將輸入訊息中的標記陣列轉換成物件,其中包含所有標記及其值:
{
"displayName": "TransformInput",
"description": "Make array of tags into one object",
"query": ".payload.values |= (map({(.tag): (.numVal // .boolVal)}) | add)"
}
來自轉換階段的輸出看起來如下列範例所示:
{
"systemProperties": {
"partitionKey": "foo",
"partitionId": 5,
"timestamp": "2023-01-11T10:02:07Z"
},
"qos": 1,
"topic": "/assets/foo/tags/bar",
"properties": {
"responseTopic": "outputs/foo/tags/bar",
"contentType": "application/json",
"payloadFormat": 1,
"correlationData": "base64::Zm9v",
"messageExpiry": 412
},
"userProperties": [
{
"key": "prop1",
"value": "value1"
},
{
"key": "prop2",
"value": "value2"
}
],
"payload": {
"values": {
"temperature": 250,
"pressure": 30,
"humidity": 10,
"runningStatus": true
}
}
}