Kurz: zápis uživatelsky definované funkce jazyka C# pro Azure Stream Analytics úlohy (Preview)
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. Uživatelem definované funkce můžete implementovat třemi způsoby: jako soubory CodeBehind v projektu Stream Analytics, uživatelem definované funkce z místního projektu jazyka C# nebo uživatelem definované funkce 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 UDF pro úlohy Stream Analytics je momentá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 svoji ú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 stávající Průvodce vývojem Stream Analytics Edge .
Vytvoření kontejneru v účtu služby Azure Storage
Kontejner, který vytvoříte, bude použit k uložení zkompilovaného balíčku jazyka C#. Pokud vytvoříte hraniční úlohu, použije se k nasazení balíčku do zařízení IoT Edge taky tento účet úložiště. Pro každou úlohu Stream Analytics použijte vyhrazený kontejner. Opakované používání 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, budete muset vytvořit nový kontejner.
Vytvoření projektu Stream Analytics v aplikaci Visual Studio
Spusťte Visual Studio.
Vyberte Soubor > Nový > Projekt.
V seznamu šablon na levé straně vyberte Stream Analytics a pak vyberte Azure Stream Analytics aplikace Edge nebo Azure Stream Analytics aplikaci.
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
EdgeJobConfig.json.Rozbalte část Konfigurace kódu definovaného uživatelem a vyplňte do konfigurace následující navrhované hodnoty:
Nastavení Navrhovaná hodnota Prostředek nastavení globálního úložiště Zvolit zdroj dat z aktuálního účtu Předplatné globálních nastavení úložiště < vaše předplatné > Účet úložiště nastavení globálního úložiště < svého účtu úložiště > Prostředek nastavení úložiště vlastního kódu Zvolit zdroj dat z aktuálního účtu Vlastní nastavení úložiště kódu účet úložiště < svého účtu úložiště > Kontejner nastavení vlastního úložiště kódu < kontejneru ú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 soubor CodeBehind po odeslání automaticky zkomprimují a nahrají do vašeho úč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.
Stávají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 soubor ukázkových dat 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 podle očekávání bude zastavovat na zarážkách.

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živatelsky definovanou funkci jazyka C# pomocí CodeBehind, publikovali úlohu do Azure a nasadili úlohu do Azure nebo IoT Edge zařízení.
Další informace o různých způsobech použití uživatelsky definovaných funkcí jazyka C# pro úlohy Stream Analytics najdete v tomto článku: