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:
- Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet.
- Nainstalujte Nástroje Stream Analytics pro Visual Studio a sadu funkcí Vývoj pro Azure nebo Ukládání a zpracování dat.
- Pokud vytváříte úlohu IoT Edge, podívejte se na existujícího průvodce vývojem Stream Analytics Edge.
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
Spusťte Visual Studio.
Vyberte Soubor > nový > projekt.
V seznamu šablon vlevo vyberte Stream Analytics a pak vyberte aplikaci Azure Stream Analytics Edge nebo aplikaci Azure Stream Analytics.
Zadejte Název projektu, Umístění a Název řešení a vyberte OK.
Konfigurace cesty k balíčku sestavení
Otevřete sadu Visual Studio a přejděte do Průzkumníka řešení.
Dvakrát klikněte na konfigurační soubor úlohy
JobConfig.json
.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é.
V Průzkumníku řešení rozbalte soubor Script.asql a vyhledejte soubor CodeBehind Script.asaql.cs.
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
V Průzkumníku řešení otevřete soubor Script.asaql.
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í
Stáhněte si ukázkový datový soubor simulátoru teploty.
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.
Zadejte cestu k místnímu vstupnímu souboru s ukázkovými daty, která jste si stáhli, a vyberte Uložit.
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.
Můžete také vybrat Otevřít složku výsledků a zobrazit nezpracované soubory ve formátu JSON a CSV.
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#.
Přidejte do funkce jazyka C# zarážky.
Stisknutím klávesy F5 spusťte ladění. Program se zastaví na zarážkách podle očekávání.
Publikování úlohy do Azure
Jakmile místně otestujete svůj dotaz, v editoru skriptů vyberte Odeslat do Azure a publikujte úlohu do Azure.
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: