Condividi tramite


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.

  1. Passare all'hub IoT creato nel gruppo di risorse.

  2. Nella sezione IoT Edge sotto Gestione dispositivi automatica, selezionare ID dispositivo. Per questa esercitazione l'ID è IronOrePredictionDevice.

  3. Selezionare la sezione Imposta moduli.

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

  1. Clonare i file di progetto nel computer.

  2. Aprire il file IronOre_Silica_Predict.sln con Visual Studio 2019

  3. Aggiornare i dettagli del registro contenitori nel file deployment.template.json

    "registryCredentials": {
         "RegistryName": {
             "username": "",
             "password": "",
             "address": ""
         }
    }
    
  4. 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":
    }
    
  5. Eseguire il progetto in modalità di debug o versione per assicurarsi che il progetto venga eseguito senza problemi

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

  7. Distribuire il modulo Generatore di dati come modulo IoT Edge nel dispositivo perimetrale.

Distribuire il modulo SQL Edge di Azure

  1. Distribuire il modulo SQL Edge di Azure selezionando + Aggiungi e quindi Modulo IoT Edge.

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

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

  4. Selezionare Aggiorna

  5. Nella pagina Imposta moduli nel dispositivo, selezionare Avanti: Route >.

  6. 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")
    
  7. Nella pagina Imposta moduli nel dispositivo, selezionare Avanti: Rivedi e crea >

  8. Nella pagina Imposta moduli nel dispositivo, selezionare Crea

Creare e avviare il processo Streaming T-SQL in SQL Edge di Azure.

  1. Aprire Azure Data Studio.

  2. 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
  3. Selezionare Connetti.

  4. Nella scheda del menu File, aprire un nuovo notebook oppure usare la scelta rapida da tastiera CTRL+N.

  5. 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 valore MSSQL_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';
    
  6. 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.