Condividi tramite


Guida introduttiva: Creare un job di Stream Analytics con Visual Studio Code

In questa guida introduttiva si crea, si esegue e si invia un processo di Analisi di flusso di Azure usando l'estensione ASA Tools per Visual Studio Code nel computer locale. Si imparerà a creare un processo ASA che legge i dati di streaming in tempo reale dall'hub IoT e filtra gli eventi con una temperatura superiore a 27°. I risultati dell'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 nord-orientale.

Prerequisiti

Installare l'estensione Strumenti di Azure Stream Analytics

  1. Apri 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 esegue automaticamente l'accesso ogni volta che si apre VS Code. Se l'account ha l'autenticazione a due fattori, usare l'autenticazione tramite telefono anziché usare 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, preparare i dati di input. La soluzione inserisce i dati del sensore in tempo reale nell'hub IoT, che in seguito viene configurato come input del processo. Per preparare i dati di input richiesti dal processo, completare i passaggi seguenti:

  1. Accedi al portale di Azure.

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

    Screenshot che mostra il menu hub IoT nella pagina Crea una risorsa.

  3. Nella pagina hub IoT seguire questa procedura:

    1. Per Sottoscrizione selezionare la sottoscrizione di Azure.
    2. Per Gruppo di risorse selezionare un gruppo di risorse esistente o creare un nuovo gruppo di risorse.
    3. Per il nome dell'hub IoT, inserire un nome per l'Hub IoT.
    4. In Area selezionare l'area più vicina.
    5. Per Livello selezionare Gratuito, se è ancora disponibile nella sottoscrizione. Per altre informazioni, vedere Prezzi dell'hub IoT.
    6. Per Limite messaggi giornalieri mantenere il valore predefinito.
    7. Selezionare Avanti: Rete nella parte inferiore della pagina.

    Screenshot che mostra la pagina dell'hub IoT per la creazione.

  4. Selezionare Rivedi e crea. Rivedere le informazioni sull'hub IoT e selezionare Crea. La creazione dell'hub IoT può richiedere alcuni minuti. È possibile monitorare lo stato di avanzamento nel riquadro Notifiche.

  5. Dopo aver creato la risorsa (hub IoT), selezionare Vai alla risorsa per passare alla pagina hub IoT.

  6. 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.

  7. Immettere un ID dispositivo e selezionare Salva.

    Screenshot che mostra la pagina Crea un dispositivo.

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

    Screenshot che mostra l'elenco dei dispositivi.

  9. Selezionare il dispositivo dall'elenco.

  10. Nella pagina del dispositivo selezionare il pulsante Copia accanto a Stringa di connessione primaria e salvarlo in un Blocco note da usare in un secondo momento.

    Screenshot che mostra il pulsante copia accanto alla stringa di connessione del dispositivo.

Eseguire il simulatore IoT

  1. Aprire il simulatore online Azure IoT Raspberry Pi.

  2. Sostituire il segnaposto nella riga 15 con la stringa di connessione del dispositivo dell'hub IoT di Azure salvata in una sezione precedente.

  3. Selezionare Esegui. L'output mostra i dati e i messaggi del sensore inviati all'hub IoT.

    Screenshot che mostra la pagina **Raspberry Pi Azure IoT Online Simulator** con la query di esempio.

    Importante

    Selezionare Reimposta dopo alcuni minuti per reimpostare il stringa di connessione.

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 selezionare Visualizza>riquadro comandi e immettere ASA: Crea nuovo progetto.

    Screenshot che mostra la selezione di ASA: 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. Visual Studio Code aggiunge un progetto ASA 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 gli input, gli output e le impostazioni di configurazione del processo per l'invio del processo di Analisi di flusso ad Azure.

    Nota

    Quando si aggiungono input e output dal riquadro comandi, i percorsi corrispondenti vengono aggiunti automaticamente a 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 inserire gli input e gli output in un'unica posizione e quindi farvi riferimento in processi diversi specificando i percorsi in ogni fileasaproj.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. Quindi, seleziona ASA: Aggiungi Input dal menu di scelta rapida.

    Screenshot che mostra il menu Aggiungi input di ASA 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. Scegliere Seleziona da Sottoscrizioni Azure dal menu a discesa e quindi premere INVIO.

  4. Immettere Input per il nome e quindi premere INVIO.

  5. Nella cartella Inputs, puoi vedere che è stato creato un file Input.json.

  6. Nel file JSON verificare che Input sia specificato Nome.

  7. Nell'editor JSON per Input.json scegliere Seleziona dalle sottoscrizioni e quindi selezionare la sottoscrizione di Azure con l'hub IoT.

    Screenshot che mostra l'editor JSON con il collegamento Select from your subscriptions (Seleziona dalle sottoscrizioni).

  8. Nell'editor JSON scegliere Seleziona un hub IoT e quindi selezionare l'hub IoT creato.

    Screenshot che mostra l'editor JSON con seleziona un collegamento a un IoT Hub.

  9. Per impostazione predefinita, deve SharedAccessPolicyName essere impostato su iothubowner. In caso contrario, selezionare il collegamento Seleziona un Nome Criteri di Accesso Condiviso e quindi selezionare iothubowner dall'elenco a discesa.

  10. Il SharedAccessPolicyKey valore deve essere impostato automaticamente.

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

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

Configurare l'output del processo

  1. Fare clic con il pulsante destro del mouse su Outputs nell'esplora risorse e selezionare ASA: Aggiungi Output.
  2. Scegliere Data Lake Storage Gen2/Blob Storage per il tipo di sink nell'elenco a discesa.
  3. Scegliere Seleziona dalle sottoscrizioni di Azure.
  4. Immettere Output per il nome dell'alias e premere INVIO. Questo nome di output viene usato per l'istruzione INTO nella query.
  5. Nell'editor JSON per Output.jsonscegliere Seleziona dalle sottoscrizioni e quindi selezionare la sottoscrizione di Azure con l'account di archiviazione di Azure.
  6. Se è necessario modificare l'account di archiviazione compilato automaticamente, scegliere Selezionare un account di archiviazione e quindi selezionare l'account Archiviazione di Azure. I nomi degli account di archiviazione vengono rilevati automaticamente se sono stati creati nella stessa sottoscrizione.
  7. Se è necessario modificare il nome del contenitore, scegliere Selezionare un contenitore e selezionare il contenitore BLOB creato.

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 sul file script nella finestra di esplorazione, scegliere ASA: Compile Script (AsA: Compile Script) e quindi selezionare ASA: ARM Template V2 (scelta consigliata).

    Screenshot dell'opzione di compilazione dello script dall'Explora Stream Analytics 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 dei modelli di distribuzione generati nella cartella del progetto.

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

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

  4. Nella finestra Invia seguire questa procedura:

    1. Selezionare la sottoscrizione di Azure.

    2. Selezionare un gruppo di risorse di Azure.

    3. Selezionare l'area in cui si vuole creare il processo di Analisi di flusso.

    4. e quindi selezionare Invia.

      Screenshot delle opzioni di invio.

  5. Selezionare Pubblica in Azure e completare. Attendere l'apertura di una nuova scheda Cloud Job View che mostra lo stato del processo.

    Screenshot del pulsante Pubblica in Azure in VS Code.

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

  1. Nella scheda Cloud Job View selezionare Avvia per eseguire il job nel cloud.

    Screenshot del pulsante Avvia lavoro nella pagina Visualizzazione cloud.

  2. Nella finestra Avvia processo di streaming selezionare OK. Il completamento di questo processo può richiedere alcuni minuti.

    Screenshot della finestra Avvia processo di streaming.

  3. Se il processo viene avviato correttamente, lo stato del processo diventa In esecuzione. Diagramma logico che mostra come viene eseguito il processo ASA.

    Screenshot dello stato di esecuzione del processo in Visual Studio Code.

  4. Per visualizzare i risultati dell'output, aprire l'archivio BLOB nell'estensione Visual Studio Code o nel portale di Azure.

    Screenshot del 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 le risorse non sono più necessarie, eliminare il gruppo di risorse, il processo di Analisi di flusso e tutte le risorse correlate. L'eliminazione dell'attività interrompe la fatturazione per le unità di streaming consumate dall'attività. Se si prevede di utilizzare l'attività in futuro, è possibile interromperla e riavviarla 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: