Guida introduttiva: Creare un processo di Analisi di flusso con Visual Studio Code

Questa guida introduttiva illustra come creare, eseguire e inviare un processo di Analisi di flusso di Azure usando l'estensione ASA Tools per Visual Studio Code nel computer locale. Si apprenderà a creare un processo ASA che legge i dati di streaming in tempo reale da hub IoT e filtra gli eventi con una temperatura maggiore di 27°. I risultati di output vengono inviati a un file nell'archivio BLOB. I dati di input usati in questa guida introduttiva sono generati da un simulatore online Raspberry Pi.

Nota

Gli strumenti di Visual Studio Code non supportano i processi nelle aree Cina orientale, Cina settentrionale, Germania centrale e Germania settentrionale.

Prerequisiti

Installare l'estensione di Strumenti Analisi di flusso di Azure

  1. Aprire Visual Studio Code (VS Code).

  2. In Estensioni nel riquadro sinistro cercare Analisi di flusso e selezionare Installa nell'estensione Strumenti di Analisi di flusso di Azure .

    Screenshot che mostra la pagina Estensioni di Visual Studio Code con un'opzione per installare l'estensione Analisi di flusso.

  3. Dopo l'installazione, selezionare l'icona di Azure sulla barra delle attività e accedere ad Azure.

    Screenshot che mostra come accedere ad Azure.

  4. Dopo aver eseguito l'accesso, è possibile visualizzare le sottoscrizioni nell'account Azure.

Nota

L'estensione ASA Tools consente di accedere automaticamente ogni volta che si apre VS Code. Se l'account prevede l'autenticazione a due fattori, è consigliabile usare l'autenticazione tramite telefono anziché un PIN. Per disconnettere l'account Azure, premere Ctrl + Shift + P e immettere Azure: Sign Out.

Preparare i dati di input

Prima di definire il processo di Analisi di flusso, è necessario preparare i dati di input. I dati del sensore in tempo reale vengono inseriti nell'hub IoT, che viene in seguito configurato come input del processo. Per preparare i dati di input richiesti dal processo, seguire questa procedura:

  1. Accedere al portale di Azure.

  2. Selezionare Crea una risorsa > Internet delle cose > hub IoT.

    Screenshot che mostra la pagina Crea risorsa per l'hub Iot.

  3. Nella pagina hub IoT immettere le informazioni seguenti:

    • Sottoscrizione, selezionare la sottoscrizione di Azure.
    • Gruppo di risorse, selezionare un gruppo di risorse esistente o creare un nuovo gruppo di risorse.
    • Nome dell'hub IoT, immettere un nome per l'hub IoT.
    • Selezionare l'area più vicina.

    Screenshot che mostra la pagina hub IoT per la creazione.

  4. Passare alla pagina Gestione per Piano tariffario e piano di scalabilità, selezionare F1: Livello gratuito, se è ancora disponibile nella sottoscrizione. Per altre informazioni, vedere Azure IoT Hub Prezzi.

    Screenshot che mostra la pagina di gestione hub IoT.

  5. Selezionare Rivedi e crea. Esaminare le informazioni sull'hub IoT e selezionare Crea. Questo processo può richiedere alcuni minuti per distribuire l'hub IoT.

  6. Dopo aver creato l'hub IoT, selezionare Vai alla risorsa per passare alla pagina hub IoT. '

  7. Nella pagina hub IoT selezionare Dispositivi nel menu a sinistra e quindi selezionare + Aggiungi dispositivo.

    Screenshot che mostra il pulsante Aggiungi dispositivo nella pagina Dispositivi.

  8. Immettere un ID dispositivo e selezionare Salva.

    Screenshot che mostra la pagina Aggiungi dispositivo.

  9. Dopo aver creato il dispositivo, il dispositivo dovrebbe essere visualizzato nell'elenco dei dispositivi IoT . Selezionare il pulsante Aggiorna nella pagina se non viene visualizzato.

    Screenshot che mostra la selezione del dispositivo nella pagina Dispositivi.

  10. Selezionare il dispositivo dall'elenco. Copiare la stringa di connessione primaria e salvarla in un Blocco note da usare in un secondo momento.

    Screenshot che mostra la stringa di connessione primaria del dispositivo creato.

Eseguire il simulatore IoT

  1. Aprire raspberry Pi Azure IoT Online Simulator in una nuova scheda del browser.

  2. Sostituire il segnaposto nella riga 15 con la stringa di connessione del dispositivo hub IoT salvata n precedenza.

  3. Selezionare Run (Esegui). L'output dovrebbe mostrare i dati del sensore e i messaggi inviati all'hub IoT.

    Screenshot che mostra il simulatore online Di Azure IoT Raspberry Pi con output.

Creare l'archiviazione BLOB

  1. Nell'angolo superiore sinistro del portale di Azure selezionare Crea una risorsa>Archiviazione>Account di archiviazione.

    Screenshot che mostra il menu Crea account di archiviazione.

  2. Nel riquadro Crea account di archiviazione immettere un nome, una posizione e un gruppo di risorse per l'account di archiviazione. Scegliere la stessa posizione e lo stesso gruppo di risorse dell'hub IoT creato. Selezionare quindi Rivedi e crea per creare l'account di archiviazione.

    Screenshot che mostra la pagina Crea account di archiviazione.

  3. Nella pagina Account di archiviazione selezionare Contenitori nel menu a sinistra e quindi selezionare + Contenitore sulla barra dei comandi.

    Screenshot che mostra la pagina Contenitori.

  4. Nella pagina Nuovo contenitore specificare un nome per il contenitore, lasciare Il livello di accesso pubblico privato (nessun accesso anonimo) e selezionare OK.

    Screenshot che mostra la creazione di una pagina del contenitore BLOB.

Creare un progetto di Analisi di flusso

  1. In Visual Studio Code premere CTRL+MAIUSC+P e immettere ASA: Crea nuovo progetto.

    Screenshot che mostra la selezione di ASA: Create New Project (Crea nuovo progetto) nel riquadro comandi.

  2. Immettere il nome del progetto, ad esempio myASAproj, e selezionare una cartella per il progetto.

    Screenshot che mostra l'immissione di un nome di progetto ASA.

  3. Un progetto ASA viene aggiunto all'area di lavoro. È costituito da tre cartelle: Input, Output e Funzioni. oltre che dallo script di query (*.asaql) , da un file JobConfig.json e da un file di configurazione asaproj.json.

    Screenshot che mostra i file di progetto di Analisi di flusso in Visual Studio Code.

    Il file asaproj.json contiene le impostazioni di input, output e configurazione del processo per l'invio del processo di Analisi di flusso ad Azure.

    Nota

    Quando si aggiungono gli input e gli output dal riquadro comandi, i percorsi corrispondenti vengono automaticamente aggiunti in asaproj.json. Se si aggiungono o si rimuovono direttamente gli input o gli output sul disco, è necessario aggiungerli o rimuoverli manualmente da asaproj.json. È possibile scegliere di inserire gli input e gli output in un'unica posizione e in seguito farvi riferimento in diversi processi specificando i percorsi in ogni file asaproj.json.

Definire la query di trasformazione

  1. Aprire il file myASAproj.asaql e aggiungere la query seguente:

    SELECT *
    INTO Output
    FROM Input
    WHERE Temperature > 27
    

    Screenshot che mostra la query di trasformazione.

Configurare l'input del processo

  1. Fare clic con il pulsante destro del mouse sulla cartella Inputs nel progetto di Analisi di flusso. Scegliere quindi ASA: Add Input (ASA: Aggiungi input) dal menu di scelta rapida.

    Screenshot che mostra il menu ASA: Aggiungi input in Visual Studio Code.

    In alternativa, premere CTRL+MAIUSC+P per aprire il riquadro comandi e immettere ASA: Aggiungi input.

  2. Scegliere Hub IoT come tipo di input.

    Screenshot che mostra la selezione dell'hub IoT nel riquadro comandi di VS Code.

  3. Selezionare uno script ASA *.asaql e sottoscrizioni di Azure dal menu a discesa e quindi premere INVIO.

  4. Nella cartella Input si noterà che viene creato un file IoTHub1.json . Sostituire le impostazioni con i valori suggeriti seguenti e mantenere i valori predefiniti per i campi non indicati qui.

    Impostazione Valore consigliato Descrizione
    Nome Input Questo nome di input viene usato per l'istruzione FROM nella query.
    IoTHubNamespace spiothub Nome dell'hub IoT. I nomi dell'hub IoT vengono rilevati automaticamente se si seleziona dalla sottoscrizione.
    SharedAccessPolicyName iothubowner

    Screenshot che mostra la configurazione hub IoT in VS Code.

  5. Selezionare Anteprima dati per verificare se i dati di input sono stati configurati correttamente per il processo. Recupera un esempio del hub IoT e viene visualizzato nella finestra di anteprima.

    Screenshot che mostra l'anteprima dei dati di input nell'hub IoT.

Configurare l'output del processo

  1. Premere CTRL+MAIUSC+P per aprire il riquadro comandi e immettere ASA: Aggiungi output.

  2. Scegliere Data Lake Storage Gen2/Archiviazione BLOB per il tipo di sink.

  3. Selezionare lo script di query usando questo output.

  4. Immettere BlobStorage1 come nome file di output.

  5. Modificare le impostazioni usando i valori seguenti. Mantenere i valori predefiniti per i campi non menzionati qui.

    Impostazione Valore consigliato Descrizione
    Nome Output Questo nome di output viene usato per l'istruzione INTO nella query.
    Account di archiviazione spstorageaccount0901 Scegliere o immettere il nome dell'account di archiviazione. I nomi degli account di archiviazione vengono rilevati automaticamente se sono stati creati nella stessa sottoscrizione.
    Contenitore spcontainer Selezionare il contenitore esistente creato nell'account di archiviazione.

Screenshot che mostra la configurazione dell'output per il processo di Analisi di flusso.

Compilare lo script e inviarlo ad Azure

La compilazione dello script controlla la sintassi e genera i modelli di Azure Resource Manager per la distribuzione automatica.

  1. Fare clic con il pulsante destro del mouse sullo script e scegliere ASA: Compile Script (ADL: Compila script).

    Screenshot che mostra l'opzione di compilazione dello script da Esplora analisi di flusso in VS Code.

  2. Dopo la compilazione, viene visualizzata una cartella Deploy nel progetto con due modelli di Azure Resource Manager. Questi due file vengono usati per la distribuzione automatica.

    Screenshot che mostra i modelli di distribuzione generati nella cartella del progetto.

  3. Selezionare Invia ad Azure nell'editor di query.

    Screenshot che mostra il pulsante Invia processo per inviare il processo di Analisi di flusso ad Azure.

    Seguire quindi le istruzioni per completare il processo: selezionare la sottoscrizione Selezionare una sottoscrizione > Selezionare un processo > Crea nuovo > processo Immettere il nome > del processo Scegliere il gruppo di risorse e l'area.

  4. Selezionare Pubblica in Azure e completare. Attendere che venga aperta una nuova scheda Visualizzazione processo cloud che mostra lo stato del processo.

    Screenshot che mostra il pulsante Pubblica in Azure in VS Code.

Avviare il processo di Analisi di flusso e controllare l'output

  1. Nella scheda Visualizzazione processo cloud selezionare Avvia per eseguire il processo nel cloud. Il completamento di questo processo può richiedere alcuni minuti.

    Screenshot che mostra il pulsante Avvia processo nella pagina Visualizzazione cloud.

  2. Se il processo viene avviato correttamente, lo stato del processo viene modificato in In esecuzione. È possibile visualizzare un diagramma logico che mostra come viene eseguito il processo ASA.

    Screenshot che mostra lo stato di esecuzione del processo in VS Code.

  3. Per visualizzare i risultati dell'output, è possibile aprire l'archiviazione BLOB nell'estensione di Visual Studio Code o nella portale di Azure.

    Screenshot che mostra il file di output nel contenitore BLOB.

    Scaricare e aprire il file per visualizzare l'output.

    {"messageId":11,"deviceId":"Raspberry Pi Web Client","temperature":28.165519323167562,"humidity":76.875393581654379,"EventProcessedUtcTime":"2022-09-01T22:53:58.1015921Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:52:57.6250000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:52:57.6290000Z"}}
    {"messageId":14,"deviceId":"Raspberry Pi Web Client","temperature":29.014941877871451,"humidity":64.93477299527828,"EventProcessedUtcTime":"2022-09-01T22:53:58.2421545Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:53:03.6100000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:53:03.6140000Z"}}
    {"messageId":17,"deviceId":"Raspberry Pi Web Client","temperature":28.032846241745975,"humidity":66.146114343897338,"EventProcessedUtcTime":"2022-09-01T22:53:58.2421545Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:53:19.5960000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:53:19.5830000Z"}}
    {"messageId":18,"deviceId":"Raspberry Pi Web Client","temperature":30.176185593576143,"humidity":72.697359909427419,"EventProcessedUtcTime":"2022-09-01T22:53:58.2421545Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:53:21.6120000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:53:21.6140000Z"}}
    {"messageId":20,"deviceId":"Raspberry Pi Web Client","temperature":27.851894248213021,"humidity":71.610229530268214,"EventProcessedUtcTime":"2022-09-01T22:53:58.2421545Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:53:25.6270000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:53:25.6140000Z"}}
    {"messageId":21,"deviceId":"Raspberry Pi Web Client","temperature":27.718624694772238,"humidity":66.540445035685153,"EventProcessedUtcTime":"2022-09-01T22:53:58.2421545Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:53:48.0820000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:53:48.0830000Z"}}
    {"messageId":22,"deviceId":"Raspberry Pi Web Client","temperature":27.7849054424326,"humidity":74.300662748167085,"EventProcessedUtcTime":"2022-09-01T22:54:09.3393532Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:54:09.2390000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:54:09.2400000Z"}}
    {"messageId":28,"deviceId":"Raspberry Pi Web Client","temperature":30.839892925680324,"humidity":76.237611741451786,"EventProcessedUtcTime":"2022-09-01T22:54:47.8053253Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:54:47.6180000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:54:47.6150000Z"}}
    {"messageId":29,"deviceId":"Raspberry Pi Web Client","temperature":30.561040300759053,"humidity":78.3845172058103,"EventProcessedUtcTime":"2022-09-01T22:54:49.8070489Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:54:49.6030000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:54:49.5990000Z"}}
    {"messageId":31,"deviceId":"Raspberry Pi Web Client","temperature":28.163585438418679,"humidity":60.0511571297096,"EventProcessedUtcTime":"2022-09-01T22:55:25.1528729Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:55:24.9050000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:55:24.9120000Z"}}
    {"messageId":32,"deviceId":"Raspberry Pi Web Client","temperature":31.00503387156985,"humidity":78.68821066044552,"EventProcessedUtcTime":"2022-09-01T22:55:43.2652127Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:55:43.0480000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:55:43.0520000Z"}}
    

Pulire le risorse

Quando non sono più necessari, eliminare il gruppo di risorse, il processo di Analisi di flusso e tutte le risorse correlate. Eliminando il processo si evita di pagare per le unità di streaming usate dal processo. Se si prevede di usare il processo in futuro, è possibile arrestarlo e riavviarlo in un secondo momento, quando è necessario. Se non si intende continuare a usare questo processo, eliminare tutte le risorse create da questa guida introduttiva attenendosi alla procedura seguente:

  1. Scegliere Gruppi di risorse dal menu a sinistra del portale di Azure e quindi selezionare il nome della risorsa creata.

  2. Nella pagina del gruppo di risorse selezionare Elimina. Immettere il nome del gruppo di risorse da eliminare nella casella di testo e quindi selezionare Elimina.

Passaggi successivi

Per altre informazioni sull'estensione ASA Tools per Visual Studio Code, vedere gli articoli seguenti: