共用方式為


從 Azure IoT 數據處理器預覽管線呼叫 gRPC 端點

重要

已啟用 Azure Arc 的 Azure IoT 操作預覽版目前為預覽狀態。 請勿在生產環境使用此預覽版軟體。

請參閱 Microsoft Azure 預覽版增補使用規定,以了解適用於 Azure 功能 (搶鮮版 (Beta)、預覽版,或尚未正式發行的版本) 的法律條款。

使用 gRPC 呼叫階段可呼叫具有選擇性要求本文的外部 gRPC,並接收選擇性回應。 呼叫階段可協助您將自訂資料處理邏輯 (例如執行機器學習模型) 整合至管線處理。

  • 管線中每個分割區都會以平行方式獨立執行 API 呼叫。
  • API 呼叫會同步執行,而階段會等待呼叫傳回後,再繼續執行下一步管線處理。
  • 目前階段僅支援 一元 RPC 類型
  • gRPC 呼叫只能與 Protobuf 格式搭配使用。 您必須使用 Protobuf 搭配 gRPC 呼叫階段。

必要條件

若要設定並使用 gRPC 呼叫管線階段,您需要:

  • 已部署的 Azure IoT 數據處理者預覽實例,其中包含選擇性的數據處理者元件。
  • 可從資料處理器執行個體存取的 gRPC 伺服器。
  • 要產生描述項的 protoc 工具。

設定 gRPC 呼叫階段

gRPC 呼叫階段 JSON 設定負責定義階段的詳細資料。 若要編寫階段,可透過與表單架構使用者介面互動,或在 [進階] 索引標籤上提供 JSON 設定。

名稱 類型​​ 描述 是必要欄位 預設 範例
名稱 字串 用於顯示在資料處理器使用者介面中的名稱。 Yes - MLCall2
描述 string 使用者易記的呼叫階段功能描述。 No Call ML endpoint 2
Server address string gRPC 伺服器位址。 Yes - https://localhost:1313
RPC 名稱 string 要呼叫的 RPC 名稱 Yes - GetInsights
描述項1 string base 64 編碼描述項。 Yes - CuIFChxnb29nb
驗證 string 要使用的驗證類型。 None/Metadata. Yes None None
中繼資料索引鍵 string Authentication 設定為 Metadata 時要使用的中繼資料索引鍵。 No authorization authorization
祕密 string Authentication 設定為 Metadata 時使用的祕密參考 No - mysecret
啟用 TLS boolean 是否要啟用 TLS。 資廖處理器目前支援使用公用憑證進行 TLS 型驗證。 No false true
API 要求 > 本文路徑 路徑 應該序列化並設定為要求本文之資料處理器訊息部分的路徑。 如果不須傳送要求本文,請保持空白。 No - .payload.gRPCRequest
API 要求 > 中繼資料 > 金鑰2 靜態/動態欄位 在要求中設定的中繼資料金鑰。 No 靜態/動態欄位
API 要求 > 中繼資料 > 值2 靜態/動態欄位 在要求中設定的中繼資料值。 No 靜態/動態欄位
API 要求 > 本文路徑 路徑 傳出訊息中用於儲存回應之屬性的路徑。 如果不需要回應本文,請保持空白。 No - .payload.gRPCResponse
API 回應 > 中繼資料 路徑 傳出訊息中用於儲存回應中繼資料之屬性的路徑。 如果不需要回應中繼資料,請保持空白。 No - .payload.gRPCResponseHeader
API 回應 > 狀態 路徑 傳出訊息中用於儲存回應狀態之屬性的路徑。 如果不需要回應狀態,請保持空白。 No - .payload.gRPCResponseStatus

1描述元:因為 gRPC 呼叫階段只支援 protobuf 格式,因此您會針對要求和回應使用相同的格式定義。 若要序列化要求本文並還原序列化回應本文,您需要 .proto 檔案的 Base 64 編碼描述項。

使用下列命令來產生描述項,以 .proto 檔案的名稱取代 <proto-file>

protoc --descriptor_set_out=/dev/stdout --include_imports <proto-file> | base64 | tr '\n' ' ' | sed 's/[[:space:]]//g'

使用上一個指令的輸出作為組態中的 descriptor

2API 要求 > 元數據:元數據陣列中的每個元素都是索引鍵值組。 您可以根據傳入訊息的內容動態設定為索引鍵或值,或設定為靜態字串。