Sdílet prostřednictvím


Kurz: Zápis uživatelem definované funkce jazyka C# pro úlohu Azure Stream Analytics (Preview)

Důležité

30. září 2024 se vyřadí uživatelem definované funkce .Net Standard pro Azure Stream Analytics. Po tomto datu nebude možné tuto funkci používat. Přejděte na uživatelem definované funkce JavaScriptu pro Azure Stream Analytics.

Uživatelem definované funkce jazyka C# vytvořené v sadě Visual Studio umožňují rozšířit dotazovací jazyk Azure Stream Analytics vlastními funkcemi. Existující kód (včetně knihoven DLL) můžete znovu použít a v jazyce C# použít matematickou nebo složitou logiku. Existují tři způsoby implementace uživatelsky definovaných funkcí:

  • Soubory CodeBehind v projektu Stream Analytics
  • Funkce definované uživatelem z místního projektu jazyka C#
  • Funkce UDF z existujícího balíčku z účtu úložiště.

Tento kurz používá metodu CodeBehind k implementaci základní funkce jazyka C#. UDF funkce pro práce Stream Analytics je aktuálně v náhledové verzi a neměla by se používat pro produkční pracovní zátěže.

V tomto návodu se naučíte, jak:

  • Vytvořte uživatelem definovanou funkci jazyka C# pomocí CodeBehind.
  • Otestujte úlohu Stream Analytics místně.
  • Publikujte úlohu do Azure.

Požadavky

Než začnete, ujistěte se, že jste dokončili následující požadavky:

Vytvoření kontejneru v účtu služby Azure Storage

Kontejner, který vytvoříte, se používá k uložení kompilovaného balíčku jazyka C#. Pokud vytvoříte úlohu Edge, tento účet úložiště se také použije k nasazení balíčku do zařízení IoT Edge. Pro každou úlohu Stream Analytics použijte vyhrazený kontejner. Opětovné použití stejného kontejneru pro více úloh Stream Analytics Edge se nepodporuje. Pokud už máte účet úložiště se stávajícími kontejnery, můžete je použít. Pokud ne, musíte vytvořit nový kontejner.

Vytvořte projekt Stream Analytics v sadě Visual Studio

  1. Spusťte Visual Studio.

  2. Vyberte Soubor > Nový > Projekt.

  3. V seznamu šablon vlevo vyberte Stream Analytics a pak vyberte aplikaci Azure Stream Analytics Edge nebo aplikaci Azure Stream Analytics.

  4. Zadejte název projektu, umístění a název řešení a vyberte OK.

    Vytvoření projektu Azure Stream Analytics Edge v sadě Visual Studio

Konfigurujte cestu balíčku sestavení

  1. Otevřete Visual Studio a přejděte do Průzkumníka řešení.

  2. Poklikejte na konfigurační soubor úlohy. JobConfig.json

  3. Rozbalte oddíl Konfigurace uživatelsky definovaného kódu a vyplňte konfiguraci následujícími navrhovanými hodnotami:

    Nastavení Navrhovaná hodnota
    Prostředek globálního nastavení úložiště Volba zdroje dat z aktuálního účtu
    Předplatné globálního nastavení úložiště < vaše předplatné >
    Globální nastavení úložiště Účet úložiště < váš účet pro úložiště >
    Prostředek vlastního nastavení úložiště kódu Volba zdroje dat z aktuálního účtu
    Nastavení úložiště vlastního kódu Účet úložiště < váš účet pro úložiště >
    Kontejner nastavení úložiště vlastního kódu < váš kontejner úložiště >

Napsání uživatelsky definované funkce v C# pomocí CodeBehind

Soubor CodeBehind je soubor C# přidružený k jednomu skriptu dotazu ASA. Nástroje sady Visual Studio automaticky zazipují soubor CodeBehind a po odeslání ho nahrají do účtu úložiště Azure. Všechny třídy musí být definovány jako veřejné a všechny objekty musí být definovány jako statické veřejné.

  1. V Průzkumníku řešení rozbalte Script.asql a vyhledejte soubor Script.asaql.cs CodeBehind.

  2. Nahraďte kód následujícím vzorovým kódem:

        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; 
                } 
            } 
        } 
    

Implementujte UDF

  1. V Průzkumníku řešení otevřete soubor Script.asaql .

  2. Existující dotaz nahraďte následujícím dotazem:

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

Místní testování

  1. Stáhněte si ukázkový datový soubor simulátoru teploty.

  2. V Průzkumníku řešení rozbalte vstupy, klikněte pravým tlačítkem na Input.jsona vyberte Přidat místní vstup.

    Přidání místního vstupu do úlohy Stream Analytics v sadě Visual Studio

  3. Zadejte cestu k místnímu vstupnímu souboru pro ukázková data, která jste stáhli, a uložte.

    Konfigurace místního vstupu pro úlohu Stream Analytics v sadě Visual Studio

  4. V editoru skriptů klikněte na Spustit místně . Jakmile místní spuštění úspěšně uloží výsledky výstupu, stisknutím libovolné klávesy zobrazíte výsledky ve formátu tabulky.

    Místní spuštění úlohy Azure Stream Analytics pomocí sady Visual Studio

  5. Můžete také vybrat Otevřít složku výsledků a zobrazit nezpracované soubory ve formátu JSON a CSV.

    Zobrazení výsledků místní úlohy Azure Stream Analytics pomocí sady Visual Studio

Ladění uživatelsky definované funkce

UDF jazyka C# můžete ladit místně stejným způsobem jako standardní kód jazyka C#.

  1. Přidejte do funkce jazyka C# zarážky.

    Přidání zarážek do uživatelem definované funkce Stream Analytics v sadě Visual Studio

  2. Stisknutím klávesy F5 spusťte ladění. Program se zastaví na breakpointech podle očekávání.

    Zobrazení výsledků ladění uživatelem definovaných funkcí Stream Analytics

Publikování úlohy do Azure

Po místním otestování dotazu v editoru skriptů v editoru skriptů vyberte Odeslat do Azure a publikujte úlohu do Azure.

Odeslání úlohy Stream Analytics Edge do Azure ze sady Visual Studio

Nasazení do zařízení IoT Edge

Pokud jste se rozhodli vytvořit úlohu Stream Analytics Edge, můžete ji teď nasadit jako modul IoT Edge. Postupujte podle rychlého startu ioT Edge a vytvořte IoT Hub, zaregistrujte zařízení IoT Edge a nainstalujte a spusťte modul runtime IoT Edge na vašem zařízení. Pak postupujte podle kurzu nasazení úlohy a nasaďte úlohu Stream Analytics jako modul IoT Edge.

Další kroky

V tomto kurzu jste vytvořili jednoduchou uživatelem definovanou funkci jazyka C# pomocí CodeBehind, publikovali jste úlohu do Azure a nasadili ji do zařízení Azure nebo IoT Edge.

Další informace o různých způsobech použití uživatelem definovaných funkcí jazyka C# pro úlohy Stream Analytics najdete v tomto článku: