Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Importante
Le funzioni definite dall'utente .NET Standard per Analisi di flusso di Azure verranno ritirate il 30 settembre 2024. Dopo tale data, non sarà possibile usare la funzionalità. Passare alle funzioni javaScript definite dall'utente per Analisi di flusso di Azure.
Le funzioni personalizzate C# create in Visual Studio consentono di estendere il linguaggio di query di Azure Stream Analytics con funzioni definite dall'utente. È possibile riutilizzare il codice esistente (incluse le DLL) e usare logica matematica o complessa con C#. Esistono tre modi per implementare le UDF (funzioni definite dall'utente):
- I file CodeBehind in un progetto di Stream Analytics
- Funzioni definite dall'utente da un progetto C# locale
- Funzioni definite dall'utente da un pacchetto esistente da un account di archiviazione.
Questa esercitazione usa il metodo CodeBehind per implementare una funzione C# di base. La funzionalità UDF per i Stream Analytics è attualmente in anteprima e non deve essere usata nei carichi di lavoro di produzione.
In questa esercitazione si apprenderà come:
- Creare una funzione C# definita dall'utente usando CodeBehind.
- Testare il progetto di Analisi di flusso in locale.
- Pubblica il lavoro in Azure.
Prerequisiti
Prima di iniziare, assicurarsi di aver completato i prerequisiti seguenti:
- Se non hai una sottoscrizione di Azure, crea un account gratuito.
- Installare gli strumenti di Analisi di flusso per Visual Studio e i carichi di lavoro Sviluppo o Archiviazione dati ed elaborazione di Azure.
- Dare un’occhiata alla guida allo sviluppo dell’Analisi di flusso di Azure in IoT Edge esistente se si sta creando un processo di IoT Edge.
Creare un contenitore nell'account di archiviazione di Azure
Il contenitore creato viene usato per archiviare il pacchetto C# compilato. Se si crea un processo Edge, questo account di archiviazione viene usato anche per distribuire il pacchetto nel dispositivo IoT Edge. Usare un contenitore dedicato per ogni processo di Analisi di flusso. Il riutilizzo dello stesso contenitore per più processi Edge di Analisi di flusso non è supportato. Se si dispone già di un account di archiviazione con contenitori esistenti, è possibile usarli. In caso contrario, è necessario creare un nuovo contenitore.
Creare un progetto di Analisi di flusso in Visual Studio
Avvia Visual Studio.
Selezionare File > Nuovo > Progetto.
Nell'elenco dei modelli a sinistra, selezionare Stream Analytics, quindi selezionare Applicazione Edge di Azure Stream Analytics oppure Applicazione di Azure Stream Analytics.
Immettere il nome del progetto, il percorso e il nome della soluzione e selezionare OK.
Configurare il percorso del pacchetto assembly
Aprire Visual Studio e passare a Esplora soluzioni.
Fare doppio clic sul file di configurazione del processo,
JobConfig.json.Espandi la sezione User-Defined Code Configuration e compila la configurazione con i seguenti valori suggeriti:
impostazione Valore suggerito Risorsa delle impostazioni globali di archiviazione Scegliere la fonte di dati dall'account corrente Sottoscrizione delle impostazioni di archiviazione globale < sottoscrizione > Global Storage Settings Storage Account (Account di archiviazione impostazioni di archiviazione globali) < il tuo account di archiviazione > Risorsa delle impostazioni di archiviazione del codice personalizzato Scegliere la fonte di dati dall'account corrente Custom Code Storage Settings Storage Account (Account di archiviazione impostazioni di archiviazione codice personalizzato) < il tuo account di archiviazione > Contenitore delle impostazioni di archiviazione per il codice personalizzato < il tuo contenitore di archiviazione >
Scrivere una UDF C# con CodeBehind
Un file CodeBehind è un file C# associato a un singolo script di query ASA. Gli strumenti di Visual Studio comprimono automaticamente il file CodeBehind e lo caricano nell'account di archiviazione di Azure al momento dell'invio. Tutte le classi devono essere definite come pubbliche e tutti gli oggetti devono essere definiti come pubblici statici.
In Esplora Soluzioni, espandi Script.asql per trovare il file Script.asaql.cs CodeBehind.
Sostituire il codice con l'esempio seguente:
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; } } }
Implementare la funzione definita dall'utente
In Esplora soluzioni aprire il file Script.asaql .
Sostituire la query esistente con la query seguente:
SELECT machine.temperature, udf.ASAEdgeUDFDemo_Class1_SquareFunction(try_cast(machine.temperature as bigint)) INTO Output FROM Input
Test locali
Scaricare il file di dati di esempio del simulatore di temperatura.
In Esplora soluzioni espandere Input, fare clic con il pulsante destro del mouse suInput.jsone scegliere Aggiungi input locale.
Specificare il percorso del file di input locale per i dati di esempio scaricati e Salva.
Fare clic su Esegui localmente nell'editor di script. Dopo che l'esecuzione locale ha salvato correttamente i risultati dell'output, premere un tasto qualsiasi per visualizzare i risultati in formato tabella.
È anche possibile selezionare Apri cartella risultati per visualizzare i file non elaborati in formato JSON e CSV.
Eseguire il debug di una funzione definita dall'utente
È possibile eseguire il debug della funzione C# definita dall'utente in locale esattamente come si esegue il debug di codice C# standard.
Aggiungere punti di interruzione nella funzione C#.
Premere F5 per avviare il debug. Il programma si arresta nei punti di interruzione come previsto.
Pubblica l'attività in Azure
Dopo aver testato la query in locale, selezionare Invia ad Azure nell'editor di script per pubblicare il processo in Azure.
Implementare sui dispositivi IoT Edge
Se si sceglie di creare un processo Edge di Analisi di flusso, può ora essere distribuito come modulo IoT Edge. Seguire la guida introduttiva di IoT Edge per creare un hub IoT, registrare un dispositivo IoT Edge e installare e avviare il runtime IoT Edge nel dispositivo. Seguire poi l'esercitazione per distribuire il processo per distribuire il processo di Analisi di flusso come modulo IoT Edge.
Passaggi successivi
In questa esercitazione è stata creata una semplice funzione C# definita dall'utente usando CodeBehind, è stato pubblicato il processo in Azure e il processo è stato distribuito nel dispositivo Azure o IoT Edge.
Per altre informazioni sui diversi modi per usare le funzioni definite dall'utente C# per i processi di Analisi di flusso, continuare con questo articolo: