Einrichten von IoT Edge-Modulen und -Verbindungen

Wichtig

Azure SQL Edge unterstützt die ARM64-Plattform nicht mehr.

Im zweiten Teil dieses dreiteiligen Tutorials zum Vorhersagen von Eisenerzverunreinigungen in Azure SQL Edge richten Sie die folgenden IoT Edge Module ein:

  • Azure SQL Edge
  • Datengenerator „IoT Edge-Modul“

Angeben von Anmeldeinformationen für die Containerregistrierung

Die Anmeldeinformationen für die Containerregistrierungen zum Hosten von Modulimages müssen angegeben werden. Sie finden diese Anmeldeinformationen in der Containerregistrierung, die in Ihrer Ressourcengruppe erstellt wurde. Navigieren Sie zum Abschnitt Zugriffsschlüssel. Notieren Sie sich die folgenden Felder:

  • Registrierungsname
  • Anmeldeserver
  • Username
  • Kennwort

Geben Sie jetzt die Containeranmeldeinformationen im IoT Edge-Modul an.

  1. Navigieren Sie zu dem IoT-Hub, der in Ihrer Ressourcengruppe erstellt wurde.

  2. Wählen Sie im Abschnitt IoT Edge unter Automatische Geräteverwaltung die Option Geräte-ID aus. Für dieses Tutorial lautet die ID IronOrePredictionDevice.

  3. Wählen Sie den Abschnitt Module festlegen aus.

  4. Geben Sie unter Anmeldeinformationen für Containerregistrierung die folgenden Werte ein:

    Feld Wert
    Name Registrierungsname
    Adresse Anmeldeserver
    Benutzername Username
    Kennwort Kennwort

Erstellen, Pushen und Bereitstellen des Datengeneratormoduls

  1. Klonen Sie die Projektdateien auf Ihrem Computer.

  2. Öffnen Sie die Datei IronOre_Silica_Predict.sln mithilfe von Visual Studio 2019.

  3. Aktualisieren Sie die Details der Containerregistrierung in der Datei deployment.template.json.

    "registryCredentials": {
         "RegistryName": {
             "username": "",
             "password": "",
             "address": ""
         }
    }
    
  4. Aktualisieren Sie die Datei modules.json, um die Zielcontainerregistrierung (oder das Repository für das Modul) anzugeben.

    "image": {
         "repository":"samplerepo.azurecr.io/ironoresilicapercent",
         "tag":
    }
    
  5. Führen Sie das Projekt im Debug- oder Releasemodus aus, um sicherzustellen, dass es ohne Probleme ausgeführt wird

  6. Pushen Sie das Projekt an Ihre Containerregistrierung, indem Sie mit der rechten Maustaste auf den Projektnamen klicken und dann Build and Push IoT Edge Modules (IoT Edge-Module erstellen und pushen) auswählen.

  7. Stellen Sie das Datengeneratormodul als IoT Edge-Modul auf Ihrem Edge-Gerät bereit.

Bereitstellen des Azure SQL Edge-Moduls

  1. Stellen Sie das Azure SQL Edge-Modul bereit, indem Sie + Hinzufügen und anschließend Marketplace-Modul auswählen.

  2. Suchen Sie im Bereich IoT Edge-Modul aus Marketplace nach Azure SQL Edge, und wählen Sie Azure SQL Edge Developer aus.

  3. Wählen Sie unter IoT Edge-Module das neu hinzugefügte Modul Azure SQL Edge aus, um das Azure SQL Edge-Modul zu konfigurieren. Weitere Informationen zu den Konfigurationsoptionen finden Sie unter Bereitstellen von Azure SQL Edge (Vorschau).

  4. Fügen Sie der Bereitstellung des Moduls Azure SQL Edge die Umgebungsvariable MSSQL_PACKAGE hinzu, und geben Sie die SAS-URL der DACPAC-Datenbankdatei an, die Sie im ersten Teil dieses Tutorials in Schritt 8 erstellt haben.

  5. Wählen Sie Aktualisieren aus.

  6. Wählen Sie auf der Seite Module für Gerät festlegenWeiter: Routen > aus.

  7. Geben Sie im Routenbereich der Seite Module für Gerät festlegen die Routen für die Kommunikation zwischen Modul und IoT Edge-Hub wie im Anschluss beschrieben an. Aktualisieren Sie dabei die Modulnamen in den folgenden Routendefinitionen.

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

    Beispiel:

    FROM /messages/modules/ASEDataGenerator/outputs/IronOreMeasures
    INTO BrokeredEndpoint("/modules/AzureSQLEdge/inputs/IronOreMeasures")
    
  8. Wählen Sie auf der Seite Module für Gerät festlegen die Option Weiter: Überprüfen + Erstellen > aus.

  9. Wählen Sie auf der Seite Module für Gerät festlegen die Option Erstellen aus.

Erstellen Sie einen T-SQL-Streamingauftrag in Azure SQL Edge, und starten Sie ihn.

  1. Öffnen Sie Azure Data Studio.

  2. Starten Sie auf der Registerkarte Willkommen eine neue Verbindung mit den folgenden Details:

    Feld Wert
    Connection type (Verbindungstyp) Microsoft SQL Server
    Server Öffentliche IP-Adresse in der VM, die für diese Demo erstellt wurde
    Username sa
    Kennwort Das starke Kennwort, das bei der Erstellung der Azure SQL Edge-Instanz verwendet wurde
    Datenbank Standard
    Servergruppe Standard
    Name (optional) Geben Sie einen optionalen Namen an.
  3. Wählen Sie Verbinden.

  4. Öffnen Sie über die Menüregisterkarte Datei ein neues Notebook, oder drücken Sie STRG+N.

  5. Führen Sie im Abfragefenster das unten bereitgestellte Skript aus, um den T-SQL-Streamingauftrag zu erstellen. Ändern Sie vor dem Ausführen des Skripts die folgenden Variablen:

    • @SQL_SA_Password: Dies ist der Wert MSSQL_SA_PASSWORD, der beim Bereitstellen des Azure SQL Edge-Moduls angegeben wurde.
    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. Vergewissern Sie sich mithilfe der folgenden Abfrage, dass die Daten aus dem Datengenerierungsmodul an die Datenbank gestreamt werden:

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

In diesem Tutorial wurden das Datengenerierungsmodul und das SQL Edge-Modul bereitgestellt. Anschließend wurde ein Streamingauftrag erstellt, um die vom Datengenerierungsmodul generierten Daten an SQL zu streamen.

Nächste Schritte