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 o vlastní funkce. V jazyce C# můžete opakovaně používat existující kód (včetně knihoven DLL) a využívat matematickou nebo komplexní logiku. Existují tři způsoby implementace funkcí definované uživatelem:

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

V tomto kurzu se k implementaci základní funkce jazyka C# používá metoda se souborem CodeBehind. Funkce definovaná uživatelem pro úlohy Stream Analytics je aktuálně ve verzi Preview a neměla by se používat v produkčních úlohách.

V tomto kurzu se naučíte:

  • Vytvoření uživatelem definované funkce jazyka C# s využitím souboru CodeBehind
  • Otestujte úlohu Stream Analytics místně.
  • Publikujte úlohu do Azure.

Požadavky

Než začnete, ujistěte se, že jste splnili 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ě s existujícími kontejnery, můžete je použít. Pokud ne, musíte vytvořit nový kontejner.

Vytvoření projektu 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.

    Create an Azure Stream Analytics Edge project in Visual Studio

Konfigurace cesty k balíčku sestavení

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

  2. Dvakrát klikněte na konfigurační soubor úlohy JobConfig.json.

  3. Rozbalte část Konfigurace kódu definovaného uživatelem a vyplňte do konfigurace následující navrhované hodnoty:

    Nastavení Navrhovaná hodnota
    Globální prostředek Nastavení úložiště Zvolit zdroj dat z aktuálního účtu
    Globální úložiště Nastavení předplatné < vaše předplatné >
    Globální účet úložiště Nastavení < váš účet úložiště >
    Prostředek Nastavení vlastního úložiště kódu Zvolit zdroj dat z aktuálního účtu
    Vlastní úložiště kódu Nastavení účtu úložiště < váš účet úložiště >
    Kontejner Nastavení vlastního úložiště kódu < kontejner úložiště >

Zápis uživatelem definované funkce jazyka C# s využitím souboru 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 definované jako veřejné a všechny objekty musí být definované jako statické veřejné.

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

  2. Nahraďte kód následující ukázkou:

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

Implementace uživatelem definované funkce

  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 Inputs, klikněte pravým tlačítkem na soubor Input.json a vyberte Přidat místní vstup.

    Add local input to Stream Analytics job in Visual Studio

  3. Zadejte cestu k místnímu vstupnímu souboru s ukázkovými daty, která jste si stáhli, a vyberte Uložit.

    Local input configuration for Stream Analytics job in 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 zobrazte výsledky ve formátu tabulky.

    Run Azure Stream Analytics job locally with Visual Studio

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

    View results of local Azure Stream Analytics job with Visual Studio

Ladění uživatelem definované funkce

Uživatelem definovanou funkci 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.

    Add breakpoints to Stream Analytics user-defined function in Visual Studio

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

    View Stream Analytics user-defined function debugging results

Publikování úlohy do Azure

Jakmile místně otestujete svůj dotaz, v editoru skriptů vyberte Odeslat do Azure a publikujte úlohu do Azure.

Submit your Stream Analytics Edge job to Azure from 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 pro IoT Edge a vytvořte službu IoT Hub, zaregistrujte zařízení IoT Edge a nainstalujte a spusťte na svém zařízení modul runtime IoT Edge. Pak postupujte podle kurzu nasazení úlohy a nasaďte svou ú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: