共用方式為


教學課程:撰寫 Azure 串流分析作業的 C# 使用者定義函式 (預覽)

這很重要

Azure 串流分析的 .Net Standard 使用者定義函式將於 2024 年 9 月 30 日淘汰。 在該日期之後,將無法使用該功能。 請轉換至 Azure 串流分析的 JavaScript 使用者定義函式

在 Visual Studio 中建立的 C# 使用者定義函式 (UDF) 可讓您使用自己的函式來擴充 Azure 串流分析查詢語言。 您可以重複使用現有的程式碼 (包括 DLL),並將數學或複雜邏輯與 C# 搭配使用。 實作 UDF 的方法有三種:

  • 串流分析專案中的 CodeBehind 檔案
  • 來自本機 C# 專案的 UDF
  • 儲存體帳戶中現有套件的 UDF。

本教學課程會使用 CodeBehind 方法來實作基本的 C# 函式。 串流分析作業的 UDF 功能目前處於預覽狀態,不應該用於生產工作負載。

在本教學課程中,您將瞭解如何:

  • 使用 CodeBehind 建立 C# 使用者定義函式。
  • 在本機測試您的串流分析作業。
  • 將您的作業發佈至 Azure。

先決條件

開始之前,請確定您已完成下列先決條件:

在 Azure 儲存體帳戶中建立容器

您建立的容器可用來儲存已編譯的 C# 套件。 如果您建立 Edge 作業,此儲存體帳戶也會用來將套件部署至 IoT Edge 裝置。 針對每個串流分析作業使用專用容器。 不支援針對多個串流分析邊緣作業重複使用相同的容器。 如果您已經有具有現有容器的儲存體帳戶,您可以使用它們。 如果沒有,您需要 建立一個新容器

在 Visual Studio 中建立串流分析專案

  1. 啟動 Visual Studio。

  2. 選取 檔案 > 新增 > 專案

  3. 在左側的範本清單中,選取 [ 串流分析],然後選取 [Azure 串流分析邊緣應用程式 ] 或 [Azure 串流分析應用程式]。

  4. 輸入專案 名稱位置解決方案名稱,然後選取 確定

    在 Visual Studio 中建立 Azure 串流分析邊緣專案

設定元件套件路徑

  1. 開啟 Visual Studio,然後流覽至 [方案總管]。

  2. 按兩下作業設定檔 JobConfig.json

  3. 展開 User-Defined 程式碼組態 區段,並使用下列建議值填寫組態:

    設定 建議值
    全域儲存體設定資源 從目前帳戶選擇資料來源
    全域儲存設定訂閱 < 您的訂閱 >
    全域儲存設定的儲存體帳戶 < 您的儲存體帳戶 >
    自訂程式碼儲存設定資源 從目前帳戶選擇資料來源
    自訂程式碼儲存設置的儲存帳戶 < 您的儲存體帳戶 >
    自訂程式碼儲存設定容器 < 您的儲存容器 >

使用 CodeBehind 撰寫 C# UDF

CodeBehind檔案是與單個ASA查詢指令碼關聯的C#檔案。 Visual Studio 工具會自動壓縮 CodeBehind 檔案,並在提交時將它上傳至您的 Azure 儲存體帳戶。 所有類別都必須定義為 public ,且所有物件都必須定義為 靜態 public

  1. [方案總管] 中,展開 Script.asql 以尋找 Script.asaql.cs CodeBehind 檔案。

  2. 將程式碼取代為下列範例:

        using System; 
        using System.Collections.Generic; 
        using System.IO; 
        using System.Linq; 
        using System.Text; 
    
        namespace ASAEdgeUDFDemo 
        { 
            public class Class1 
            { 
                // Public static function 
                public static Int64 SquareFunction(Int64 a) 
                { 
                    return a * a; 
                } 
            } 
        } 
    

實作 UDF

  1. [方案總管] 中,開啟 Script.asaql 檔案。

  2. 將現有查詢取代為下列查詢:

        SELECT machine.temperature, udf.ASAEdgeUDFDemo_Class1_SquareFunction(try_cast(machine.temperature as bigint))
        INTO Output
        FROM Input 
    

本地測試

  1. 下載 溫度模擬器範例資料檔案

  2. [方案總管] 中,展開 [輸入],右鍵點擊 Input.json,然後選取 [新增本機輸入]

    在 Visual Studio 中新增本機輸入到串流分析作業

  3. 指定您下載的範例資料的本機輸入檔案路徑,然後儲存。

    Visual Studio 中串流分析作業的本機輸入設定

  4. 按一下指令碼編輯器中的 Run Locally 。 本機執行成功儲存輸出結果之後,請按任意鍵以表格格式查看結果。

    使用 Visual Studio 在本機執行 Azure 串流分析作業

  5. 您也可以選取 開啟結果資料夾 以查看 JSON 和 CSV 格式的原始檔案。

    使用 Visual Studio 檢視本機 Azure 串流分析作業的結果

偵錯 UDF

您可以在本機偵錯 C# UDF,就像偵錯標準 C# 程式碼一樣。

  1. 在 C# 函式中新增中斷點。

    在 Visual Studio 中將中斷點新增至串流分析使用者定義函式

  2. F5 開始偵錯。 程式會如預期般在您的岔斷點停止。

    檢視串流分析使用者定義函式偵錯結果

將您的作業發佈至 Azure

在本機測試查詢之後,請在指令碼編輯器中選取 [提交至 Azure ],將作業發佈至 Azure。

從 Visual Studio 將串流分析邊緣作業提交至 Azure

部署至 IoT Edge 裝置

如果您選擇建置串流分析 Edge 作業,現在可以將其部署為 IoT Edge 模組。 請遵循 IoT Edge 快速入門 來建立 IoT 中樞、註冊 IoT Edge 裝置,以及在裝置上安裝並啟動 IoT Edge 執行階段。 然後遵循 部署作業 教學課程,將串流分析作業部署為 IoT Edge 模組。

後續步驟

在本教學課程中,您使用 CodeBehind 建立簡單的 C# 使用者定義函式、將作業發佈至 Azure,並將作業部署至 Azure 或 IoT Edge 裝置。

若要深入瞭解將 C# 使用者定義函式用於串流分析作業的不同方式,請繼續閱讀本文: