Configurer les modules et les connexions IoT Edge
Important
Azure SQL Edge sera mis hors service le 30 septembre 2025. Pour plus d’informations et pour connaître les options de migration, consultez l’avis de mise hors service.
Remarque
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.
Accédez au hub IoT qui a été créé dans votre groupe de ressources.
Dans la section IoT Edge, sous Gestion automatique des appareils, sélectionnez ID d'appareil. Pour ce tutoriel, l'ID est
IronOrePredictionDevice
.Sélectionnez la section Définir des modules.
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
Clonez les fichiers projet sur votre machine.
Ouvrez le fichier IronOre_Silica_Predict.sln à l’aide de Visual Studio 2019.
Mettez à jour les détails du registre de conteneurs dans deployment.template.json.
"registryCredentials": { "RegistryName": { "username": "", "password": "", "address": "" } }
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": }
Exécutez le projet en mode Debug ou Release pour vérifier qu’il s’exécute sans aucun problème.
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.
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
Déployez le module Azure SQL Edge en sélectionnant + Ajouter puis sur Module IoT Edge.
Définissez les options de configuration dans page Ajouter des modules IoT Edge pour déployer le module Azure SQL Edge. Pour plus d’informations sur les options de configuration, consultez Déployer Azure SQL Edge.
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.Sélectionner mise à jour
Dans la page Définir des modules sur l’appareil, sélectionnez Suivant : Routes >.
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")
Dans la page Définir des modules sur l’appareil, sélectionnez Vérifier + créer >
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.
Ouvrez Azure Data Studio.
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 Sélectionnez Se connecter.
Sous l’onglet du menu Fichier, ouvrez un nouveau notebook ou utilisez le raccourci clavier Ctrl + N.
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 valeurMSSQL_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';
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.