Share via


Configurer les modules et les connexions IoT Edge

Important

Azure SQL Edge ne prend plus en charge la plateforme ARM64.

Dans la deuxième partie de ce tutoriel en trois parties consacré à la prédiction des impuretés contenues dans le minerai de fer dans Azure SQL Edge, vous allez configurer les modules IoT Edge suivants :

  • Azure SQL Edge
  • Module IoT Edge de génération de données

Spécifier les informations d'identification au registre de conteneurs

Les informations d'identification aux registres de conteneurs hébergeant les images de module doivent être spécifiées. Ces informations de connexion se trouvent dans le registre de conteneurs qui a été créé dans votre groupe de ressources. Accédez à la section Clés d'accès. Prenez note des champs suivants :

  • Nom du registre
  • Serveur de connexion
  • Nom d’utilisateur
  • Mot de passe

À présent, spécifiez les informations d'identification au conteneur dans le module IoT Edge.

  1. Accédez au hub IoT qui a été créé dans votre groupe de ressources.

  2. Dans la section IoT Edge, sous Gestion automatique des appareils, sélectionnez ID d'appareil. Pour ce tutoriel, l'ID est IronOrePredictionDevice.

  3. Sélectionnez la section Définir des modules.

  4. Sous Informations d'identification au registre de conteneurs, entrez les valeurs suivantes :

    Champ Valeur
    Nom Nom du registre
    Adresse Serveur de connexion
    User Name Nom d’utilisateur
    Mot de passe Mot de passe

Générer, envoyer (push) et déployer le module Générateur de données

  1. Clonez les fichiers projet sur votre machine.

  2. Ouvrez le fichier IronOre_Silica_Predict.sln à l’aide de Visual Studio 2019.

  3. Mettez à jour les détails du registre de conteneurs dans deployment.template.json.

    "registryCredentials": {
         "RegistryName": {
             "username": "",
             "password": "",
             "address": ""
         }
    }
    
  4. Mettez à jour le fichier modules.json de façon à spécifier le registre de conteneurs cible (ou le référentiel pour le module)

    "image": {
         "repository":"samplerepo.azurecr.io/ironoresilicapercent",
         "tag":
    }
    
  5. Exécutez le projet en mode Debug ou Release pour vérifier qu’il s’exécute sans aucun problème.

  6. Envoyez (push) le projet vers votre registre de conteneurs en cliquant avec le bouton droit sur le nom du projet, puis en sélectionnant Générer et envoyer (push) les modules IoT Edge.

  7. Déployez le module Générateur de données en tant que module IoT Edge sur votre appareil Edge.

Déployer le module Azure SQL Edge

  1. Déployez le module Azure SQL Edge en sélectionnant + Ajouter puis sur Module de la Place de marché.

  2. Dans le panneau Place de marché de module IoT Edge, recherchez Azure SQL Edge, puis sélectionnez Azure SQL Edge : Développeur.

  3. Sélectionnez le module Azure SQL Edge que vous venez d’ajouter sous Modules IoT Edge pour configurer le module Azure SQL Edge. Pour plus d’informations sur les options de configuration, consultez Déployer Azure SQL Edge.

  4. Ajoutez la variable d’environnement MSSQL_PACKAGE au déploiement du module Azure SQL Edge, puis spécifiez l’URL SAS du fichier dacpac de base de données créé à l’étape 8 de la première partie de ce tutoriel.

  5. Sélectionner mise à jour

  6. Dans la page Définir des modules sur l’appareil, sélectionnez Suivant : Routes >.

  7. Dans le volet Routes de la page Définir des modules sur l’appareil, spécifiez les routes pour la communication entre le module et le hub IoT Edge, comme décrit ci-dessous. Mettez à jour le nom des modules dans les définitions de routes suivantes.

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

    Par exemple :

    FROM /messages/modules/ASEDataGenerator/outputs/IronOreMeasures
    INTO BrokeredEndpoint("/modules/AzureSQLEdge/inputs/IronOreMeasures")
    
  8. Dans la page Définir des modules sur l’appareil, sélectionnez Vérifier + créer >

  9. Sur la page Définir des modules sur l’appareil, sélectionnez Créer

Créez puis démarrez une tâche de streaming T-SQL dans Azure SQL Edge.

  1. Ouvrez Azure Data Studio.

  2. Sous l'onglet Bienvenue, lancez une nouvelle connexion avec les informations suivantes :

    Champ Valeur
    Type de connexion Microsoft SQL Server
    Serveur Adresse IP publique mentionnée dans la machine virtuelle créée pour cette démo
    Nom d’utilisateur SA
    Mot de passe Mot de passe fort utilisé lors de la création de l'instance d'Azure SQL Edge
    Base de données Default
    Groupe de serveurs Default
    Name (facultatif) Entrez un nom facultatif
  3. Sélectionnez Connecter.

  4. Sous l’onglet du menu Fichier, ouvrez un nouveau notebook ou utilisez le raccourci clavier Ctrl + N.

  5. Dans la nouvelle fenêtre de requête, exécutez le script ci-dessous pour créer la tâche de streaming T-SQL. Avant d’exécuter le script, changez les variables suivantes :

    • @SQL_SA_Password: La valeur MSSQL_SA_PASSWORD spécifiée lors du déploiement du module Azure SQL Edge.
    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. Utilisez la requête suivante pour vérifier que les données du module de génération de données sont envoyées en streaming à la base de données.

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

Dans ce tutoriel, nous avons déployé le module de génération de données et le module SQL Edge. Ensuite, nous avons créé une tâche de streaming pour envoyer en streaming les données générées par le module de génération de données vers SQL.

Étapes suivantes