Delen via


IoT Edge-modules en -verbindingen instellen

Belangrijk

Azure SQL Edge wordt op 30 september 2025 buiten gebruik gesteld. Zie de kennisgeving buitengebruikstelling voor meer informatie en migratieopties.

Notitie

Azure SQL Edge biedt geen ondersteuning meer voor het ARM64-platform.

In deel twee van deze driedelige zelfstudie over het voorspellen van verontreinigingen in ijzererts in Azure SQL Edge gaat u de volgende IoT Edge-modules en -verbindingen instellen:

  • Azure SQL Edge
  • Gegevensgenerator IoT Edge-module

Referenties voor het containerregister opgeven

De referenties van de containerregisters waar de module-installatiekopieën worden gehost, moeten worden opgegeven. Deze referenties vindt u in het containerregister dat is gemaakt in uw resourcegroep. Navigeer naar de sectie Toegangssleutels. Noteer de volgende velden:

  • Registernaam
  • Aanmeldingsserver
  • Username
  • Wachtwoord

Geef nu de containerreferenties op in de IoT Edge-module.

  1. Navigeer naar de IoT-hub die in uw resourcegroep is gemaakt.

  2. Selecteer apparaat-id in de sectie IoT Edge onder Automatisch Apparaatbeheer. De id voor deze zelfstudie is IronOrePredictionDevice.

  3. Selecteer de sectie Modules instellen.

  4. Voer onder Containerregisterreferenties de volgende waarden in:

    Veld Weergegeven als
    Naam Registernaam
    Adres Aanmeldingsserver
    Gebruikersnaam Username
    Wachtwoord Wachtwoord

Bouw, push en implementeer de Gegevensgeneratormodule

  1. Kloon de projectbestanden naar uw computer.

  2. Open het bestand IronOre_Silica_Predict.sln met behulp van Visual Studio 2019

  3. Werk de details van het containerregister bij in deployment.template.json

    "registryCredentials": {
         "RegistryName": {
             "username": "",
             "password": "",
             "address": ""
         }
    }
    
  4. Werk het bestand modules.json bij om het doelcontainerregister (of de opslagplaats voor de module) op te geven

    "image": {
         "repository":"samplerepo.azurecr.io/ironoresilicapercent",
         "tag":
    }
    
  5. Voer het project uit in foutopsporings- of releasemodus om zeker te zijn dat het project zonder problemen wordt uitgevoerd.

  6. Push het project naar uw containerregister door met de rechtermuisknop op de naam van het project te klikken en vervolgens IoT Edge-modules bouwen en pushen te selecteren.

  7. Implementeer de gegevensgeneratormodule als een IoT Edge-module op uw Edge-apparaat.

De Azure SQL Edge-module implementeren

  1. Implementeer de Azure SQL Edge-module door op + Toevoegen en vervolgens IoT Edge-module te selecteren.

  2. Stel de configuratieopties in op de pagina IoT Edge-modules toevoegen om de Azure SQL Edge-module te implementeren. Zie Azure SQL Edge implementeren voor meer informatie over de configuratieopties.

  3. Voeg de MSSQL_PACKAGEomgevingsvariabele toe aan de implementatie van de Azure SQL Edge-module en geef de SAS-URL op van het dacpac-databasebestand dat is gemaakt in stap 8 van Deel één van deze zelfstudie.

  4. Update selecteren

  5. Selecteer Volgende op de pagina Modules instellen op het apparaat de optie Volgende: Routes >.

  6. Geef in het deelvenster routes op de pagina Modules instellen op apparaat als volgt de routes op voor communicatie van de module met de IoT Edge-hub. Zorg ervoor dat u de modulenamen in de volgende routedefinities bijwerkt.

    FROM /messages/modules/<your_data_generator_module>/outputs/IronOreMeasures
    INTO BrokeredEndpoint("/modules/<your_azure_sql_edge_module>/inputs/IronOreMeasures")
    

    Voorbeeld:

    FROM /messages/modules/ASEDataGenerator/outputs/IronOreMeasures
    INTO BrokeredEndpoint("/modules/AzureSQLEdge/inputs/IronOreMeasures")
    
  7. Selecteer Volgende op de pagina Modules instellen op het apparaat: Controleren en maken>

  8. Selecteer Maken op de pagina Modules instellen op het apparaat

Maak en start de taak voor het streamen van T-SQL in Azure SQL Edge.

  1. Open Azure Data Studio.

  2. Start op het tabblad Welkom een nieuwe verbinding met de volgende gegevens:

    Veld Waarde
    Connection type Microsoft SQL Server
    Server Openbaar IP-adres dat wordt vermeld in de VM die is gemaakt voor deze demo
    Username sa
    Wachtwoord Het sterke wachtwoord dat is gebruikt bij het maken van de Azure SQL Edge-instance
    Database Standaardinstelling
    Servergroep Standaardinstelling
    Naam (optioneel) Geef desgewenst een naam op
  3. Selecteer Verbinding maken.

  4. Open op het tabblad Bestand een nieuw notitieblok of gebruik de sneltoets Ctrl +N.

  5. Voer in het nieuwe queryvenster het onderstaande script uit om de taak voor T-SQL-streaming te maken. Voordat u het script uitvoert, moet u de volgende variabelen wijzigen:

    • @SQL_SA_Password: de MSSQL_SA_PASSWORD waarde die is opgegeven tijdens het implementeren van de Azure SQL Edge-module.
    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. Gebruik de volgende query om te verifiëren of de gegevens uit de module voor het genereren van gegevens naar de database worden gestreamd.

    SELECT TOP 10 *
    FROM dbo.IronOreMeasurements
    ORDER BY timestamp DESC;
    

In deze zelfstudie hebben we de module voor het genereren van gegevens en de SQL Edge-module geïmplementeerd. Vervolgens hebben we een streamingtaak gemaakt om de gegevens die door de module voor het genereren van gegevens zijn gegenereerd naar SQL te streamen.