Configurare i moduli e le connessioni IoT Edge
Importante
SQL Edge di Azure verrà ritirato il 30 settembre 2025. Per altre informazioni e per le opzioni di migrazione, vedere l'annuncio di ritiro.
Nota
SQL Edge di Azure non supporta più la piattaforma ARM64.
Nella seconda delle tre parti di questa esercitazione sulla stima delle impurità del minerale di ferro in SQL Edge di Azure si configureranno i moduli IoT Edge seguenti:
- SQL Edge di Azure
- Modulo IoT Edge per la generazione di dati
Specificare le credenziali del registro contenitori
È necessario specificare le credenziali per i registri contenitori che ospitano le immagini dei moduli. Queste credenziali si trovano nel registro contenitori creato nel gruppo di risorse. Passare alla sezione Chiavi di accesso. Prendere nota dei campi seguenti:
- Nome registro
- Server di accesso
- Username
- Password
A questo punto, specificare le credenziali del contenitore nel modulo IoT Edge.
Passare all'hub IoT creato nel gruppo di risorse.
Nella sezione IoT Edge sotto Gestione dispositivi automatica, selezionare ID dispositivo. Per questa esercitazione l'ID è
IronOrePredictionDevice
.Selezionare la sezione Imposta moduli.
In Credenziali del Registro Container immettere i valori seguenti:
Campo Valore Nome Nome registro Address Server di accesso Nome utente Username Password Password
Compilare, eseguire il push e distribuire il modulo Generatore di dati
Clonare i file di progetto nel computer.
Aprire il file IronOre_Silica_Predict.sln con Visual Studio 2019
Aggiornare i dettagli del registro contenitori nel file deployment.template.json
"registryCredentials": { "RegistryName": { "username": "", "password": "", "address": "" } }
Aggiornare il file modules.json per specificare il registro contenitori di destinazione (o il repository per il modulo)
"image": { "repository":"samplerepo.azurecr.io/ironoresilicapercent", "tag": }
Eseguire il progetto in modalità di debug o versione per assicurarsi che il progetto venga eseguito senza problemi
Eseguire il push del progetto nel registro contenitori facendo clic con il pulsante destro del mouse sul nome del progetto e quindi scegliendo Build and Push IoT Edge Modules (Compila ed esegui il push dei moduli IoT Edge).
Distribuire il modulo Generatore di dati come modulo IoT Edge nel dispositivo perimetrale.
Distribuire il modulo SQL Edge di Azure
Distribuire il modulo SQL Edge di Azure selezionando + Aggiungi e quindi Modulo IoT Edge.
Impostare le opzioni di configurazione nella pagina Aggiungi moduli IoT Edge per distribuire il modulo SQL Edge di Azure. Per altre informazioni sulle opzioni di configurazione, vedere Distribuire SQL Edge di Azure.
Aggiungere la variabile di ambiente
MSSQL_PACKAGE
alla distribuzione del modulo SQL Edge di Azure e specificare l'URL di firma di accesso condiviso del file dacpac del database creato nel passaggio 8 della prima parte di questa esercitazione.Selezionare Aggiorna
Nella pagina Imposta moduli nel dispositivo, selezionare Avanti: Route >.
Nel riquadro Route della pagina Imposta moduli nel dispositivo specificare le route per la comunicazione tra il modulo e l'hub di IoT Edge, come descritto di seguito. Assicurarsi di aggiornare i nomi dei moduli nelle definizioni di route seguenti.
FROM /messages/modules/<your_data_generator_module>/outputs/IronOreMeasures INTO BrokeredEndpoint("/modules/<your_azure_sql_edge_module>/inputs/IronOreMeasures")
Ad esempio:
FROM /messages/modules/ASEDataGenerator/outputs/IronOreMeasures INTO BrokeredEndpoint("/modules/AzureSQLEdge/inputs/IronOreMeasures")
Nella pagina Imposta moduli nel dispositivo, selezionare Avanti: Rivedi e crea >
Nella pagina Imposta moduli nel dispositivo, selezionare Crea
Creare e avviare il processo Streaming T-SQL in SQL Edge di Azure.
Aprire Azure Data Studio.
Nella scheda di benvenuto avviare una nuova connessione con i dettagli seguenti:
Campo valore Tipo di connessione Microsoft SQL Server Server Indirizzo IP pubblico indicato nella macchina virtuale creata per questa demo Username sa Password Password complessa usata durante la creazione dell'istanza di SQL Edge di Azure Database Default Gruppo server Default Nome (facoltativo) Specificare un nome facoltativo Selezionare Connetti.
Nella scheda del menu File, aprire un nuovo notebook oppure usare la scelta rapida da tastiera CTRL+N.
Nella finestra Nuova query eseguire lo script seguente per creare il processo Streaming T-SQL. Prima di eseguire lo script, assicurarsi di cambiare le variabili seguenti:
@SQL_SA_Password
: il valoreMSSQL_SA_PASSWORD
specificato durante la distribuzione del modulo SQL Edge di Azure.
USE IronOreSilicaPrediction; GO DECLARE @SQL_SA_Password VARCHAR(200) = '<SQL_SA_Password>'; DECLARE @query VARCHAR(MAX); /* Create objects required for streaming */ CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'MyStr0ng3stP@ssw0rd'; IF NOT EXISTS ( SELECT name FROM sys.external_file_formats WHERE name = 'JSONFormat' ) BEGIN CREATE EXTERNAL FILE FORMAT [JSONFormat] WITH (FORMAT_TYPE = JSON) END IF NOT EXISTS ( SELECT name FROM sys.external_data_sources WHERE name = 'EdgeHub' ) BEGIN CREATE EXTERNAL DATA SOURCE [EdgeHub] WITH (LOCATION = N'edgehub://') END IF NOT EXISTS ( SELECT name FROM sys.external_streams WHERE name = 'IronOreInput' ) BEGIN CREATE EXTERNAL STREAM IronOreInput WITH ( DATA_SOURCE = EdgeHub, FILE_FORMAT = JSONFormat, LOCATION = N'IronOreMeasures' ) END IF NOT EXISTS ( SELECT name FROM sys.database_scoped_credentials WHERE name = 'SQLCredential' ) BEGIN SET @query = 'CREATE DATABASE SCOPED CREDENTIAL SQLCredential WITH IDENTITY = ''sa'', SECRET = ''' + @SQL_SA_Password + '''' EXECUTE (@query) END IF NOT EXISTS ( SELECT name FROM sys.external_data_sources WHERE name = 'LocalSQLOutput' ) BEGIN CREATE EXTERNAL DATA SOURCE LocalSQLOutput WITH ( LOCATION = 'sqlserver://tcp:.,1433', CREDENTIAL = SQLCredential ) END IF NOT EXISTS ( SELECT name FROM sys.external_streams WHERE name = 'IronOreOutput' ) BEGIN CREATE EXTERNAL STREAM IronOreOutput WITH ( DATA_SOURCE = LocalSQLOutput, LOCATION = N'IronOreSilicaPrediction.dbo.IronOreMeasurements' ) END EXEC sys.sp_create_streaming_job @name = N'IronOreData', @statement = N'Select * INTO IronOreOutput from IronOreInput'; EXEC sys.sp_start_streaming_job @name = N'IronOreData';
Usare la query seguente per verificare che i dati del modulo per la generazione di dati vengano trasmessi al database.
SELECT TOP 10 * FROM dbo.IronOreMeasurements ORDER BY timestamp DESC;
In questa esercitazione sono stati distribuiti il modulo per la generazione di dati e il modulo SQL Edge. È stato quindi creato un processo di streaming per trasmettere i dati generati dal modulo per la generazione di dati a SQL.