Avvio rapido: Creare un processo di Analisi di flusso 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 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 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 settentrionale.
Prerequisiti
- Sottoscrizione di Azure. Se non hai una sottoscrizione di Azure, crea un account gratuito.
- Visual Studio Code.
Installare l'estensione di Strumenti Analisi di flusso di Azure
Aprire Visual Studio Code (VS Code).
In Estensioni nel riquadro sinistro cercare Analisi di flusso e selezionare Installa nell'estensione Strumenti di Analisi di flusso di Azure.
Dopo l'installazione, selezionare l'icona di Azure sulla barra delle attività e accedere ad Azure.
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
.
Eseguire il simulatore IoT
Aprire il simulatore online Azure IoT Raspberry Pi.
Sostituire il segnaposto nella riga 15 con la stringa di connessione del dispositivo hub IoT di Azure salvato in una sezione precedente.
Selezionare Esegui. L'output mostra i dati del sensore e i messaggi inviati all'hub IoT.
Importante
Selezionare Reimposta dopo alcuni minuti per reimpostare il stringa di connessione.
Creare l'archiviazione BLOB
Nell'angolo superiore sinistro del portale di Azure selezionare Crea una risorsa>Archiviazione>Account di archiviazione.
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.
Nella pagina Account di archiviazione selezionare Contenitori nel menu a sinistra e quindi selezionare + Contenitore sulla barra dei comandi.
Nella pagina Nuovo contenitore specificare un nome per il contenitore, lasciare Il livello di accesso pubblico privato (nessun accesso anonimo) e selezionare OK.
Creare un progetto di Analisi di flusso
In Visual Studio Code premere CTRL+MAIUSC+P e immettere ASA: Crea nuovo progetto.
Immettere il nome del progetto, ad esempio myASAproj, e selezionare una cartella per il progetto.
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.
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 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
Aprire il file myASAproj.asaql e aggiungere la query seguente:
SELECT * INTO Output FROM Input WHERE Temperature > 27
Configurare l'input del processo
Fare clic con il pulsante destro del mouse sulla cartella Inputs nel progetto di Analisi di flusso. Selezionare quindi ASA: Aggiungi input dal menu di scelta rapida.
In alternativa, premere CTRL+MAIUSC+P per aprire il riquadro comandi e immettere ASA: Aggiungi input.
Scegliere Hub IoT come tipo di input.
Scegliere Seleziona dalle sottoscrizioni di Azure dal menu a discesa e quindi premere INVIO.
Immettere Input per il nome e quindi premere INVIO.
Nella cartella Input viene visualizzato un file IoTHub1.json creato.
Nel file JSON verificare che Input sia specificato Nome.
Nell'editor JSON per Input.json scegliere Seleziona dalle sottoscrizioni e quindi selezionare la sottoscrizione di Azure con l'hub IoT.
Nell'editor JSON scegliere Seleziona un hub IoT e quindi selezionare l'hub IoT creato.
Per impostazione predefinita, deve
SharedAccessPolicyName
essere impostato suiothubowner
. In caso contrario, scegliere Selezionare un collegamento Nome criteri di accesso condiviso e quindi selezionare iothubowner dall'elenco a discesa.Il
SharedAccessPolicyKey
valore deve essere impostato automaticamente.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.
Configurare l'output del processo
- Fare clic con il pulsante destro del mouse su Output in Esplora risorse e selezionare ASA: Aggiungi output.
- Scegliere Data Lake Storage Gen2/Blob Storage per il tipo di sink nell'elenco a discesa.
- Scegliere Seleziona da sottoscrizioni di Azure
- Immettere Output per il nome dell'alias e premere INVIO. Questo nome di output viene usato per l'istruzione INTO nella query.
- Nell'editor JSON per Output.json scegliere Seleziona dalle sottoscrizioni e quindi selezionare la sottoscrizione di Azure con l'account Archiviazione di Azure
- 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.
- Se è necessario modificare il nome del contenitore, scegliere Selezionare un contenitore e selezionare il contenitore BLOB creato.
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.
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).
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.
Selezionare Invia ad Azure nell'editor di query.
Nella finestra Invia seguire questa procedura:
Selezionare la sottoscrizione di Azure.
Selezionare un gruppo di risorse di Azure.
Selezionare l'area in cui si vuole creare il processo di Analisi di flusso.
e quindi selezionare Invia.
Selezionare Pubblica in Azure e completare. Attendere che venga aperta una nuova scheda Visualizzazione processo cloud che mostra lo stato del processo.
Avviare il processo di Analisi di flusso e controllare l'output
Nella scheda Visualizzazione processi cloud selezionare Avvia per eseguire il processo nel cloud.
Nella finestra Avvia processo di streaming selezionare OK. Il completamento di questo processo può richiedere alcuni minuti.
Se il processo viene avviato correttamente, lo stato del processo viene modificato in In esecuzione. È possibile visualizzare un diagramma logico che mostra come è in esecuzione il processo di Analisi di flusso di Azure.
Per visualizzare i risultati dell'output, è possibile aprire l'archiviazione BLOB nell'estensione di Visual Studio Code o nella portale di Azure.
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:
Scegliere Gruppi di risorse dal menu a sinistra del portale di Azure e quindi selezionare il nome della risorsa creata.
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: