Configuración de módulos y conexiones de IoT Edge
Importante
Azure SQL Edge se retirará el 30 de septiembre de 2025. Para obtener más información y opciones de migración, consulte el aviso de retirada.
Nota:
Azure SQL Edge ya no admite la plataforma ARM64.
En la segunda parte de este tutorial de tres partes para predecir impurezas de mineral de hierro en Azure SQL Edge, configurará los siguientes módulos de IoT Edge:
- Azure SQL Edge
- Módulo IoT Edge del generador de datos
Especificación de las credenciales de registro de contenedor
Debe especificar las credenciales en los registros de contenedor que hospedan las imágenes de módulo. Se pueden encontrar estas credenciales en el registro de contenedor que se creó en el grupo de recursos. Vaya a la sección Claves de acceso. Anote los campos siguientes:
- Nombre de registro
- Servidor de inicio de sesión
- Nombre de usuario
- Contraseña
Ahora, especifique las credenciales del contenedor en el módulo IoT Edge.
Vaya al centro de IoT que creó en el grupo de recursos.
En la sección IoT Edge, en Administración automática de dispositivos, seleccione Id. de dispositivo. Para este tutorial, el identificador es
IronOrePredictionDevice
.Seleccione la sección Establecer módulos.
En Credenciales de Container Registry, escriba los valores siguientes:
Campo Valor Nombre Nombre de registro Dirección Servidor de inicio de sesión Nombre de usuario Nombre de usuario Contraseña Contraseña
Creación, inserción e implementación del módulo del generador de datos
Clone los archivos de proyecto en la máquina.
Abra el archivo IronOre_Silica_Predict.sln con Visual Studio 2019.
Actualice los detalles del registro de contenedor en deployment.template.json.
"registryCredentials": { "RegistryName": { "username": "", "password": "", "address": "" } }
Actualice el archivo modules.json para especificar el registro de contenedor de destino (o el repositorio para el módulo).
"image": { "repository":"samplerepo.azurecr.io/ironoresilicapercent", "tag": }
Ejecute el proyecto en modo de depuración o de lanzamiento para asegurarse de que el proyecto se ejecuta sin problemas.
Inserte el proyecto en el registro de contenedor; para ello, haga clic con el botón derecho en el nombre del proyecto y, a continuación, seleccione Compilación e inserción de módulos IoT Edge.
Implemente el módulo del generador de datos como módulo de IoT Edge en el dispositivo perimetral.
Implementación del módulo de Azure SQL Edge
Implemente el módulo Azure SQL Edge; para ello, seleccione + Agregar y, después, en Módulo de IoT Edge.
Establezca las opciones de configuración en la página Agregar módulos de IoT Edge para implementar el módulo de Azure SQL Edge. Para obtener más información sobre las opciones de configuración, consulte Implementación de Azure SQL Edge.
Agregue la variable de entorno
MSSQL_PACKAGE
a la implementación del módulo Azure SQL Edge y especifique la dirección URL de SAS del archivo dacpac de base de datos creado en el paso 8 de la primera parte de este tutorial.Seleccionar actualización
En la página Establecer módulos en el dispositivo, seleccione Siguiente: Rutas >.
En el panel de rutas de la página Establecer módulos en el dispositivo, especifique las rutas del módulo para la comunicación del centro de IoT Edge como se describe a continuación. Asegúrese de actualizar los nombres de los módulos en las definiciones de ruta siguientes.
FROM /messages/modules/<your_data_generator_module>/outputs/IronOreMeasures INTO BrokeredEndpoint("/modules/<your_azure_sql_edge_module>/inputs/IronOreMeasures")
Por ejemplo:
FROM /messages/modules/ASEDataGenerator/outputs/IronOreMeasures INTO BrokeredEndpoint("/modules/AzureSQLEdge/inputs/IronOreMeasures")
En la página Establecer módulos en el dispositivo, seleccione Siguiente: Revisar y crear >
En la página Establecer módulos en el dispositivo, seleccione Crear
Cree e inicie el trabajo de streaming de T-SQL en Azure SQL Edge.
Abra Azure Data Studio.
En la pestaña Bienvenida, inicie una nueva conexión con los detalles siguientes:
Campo Value Tipo de conexión Microsoft SQL Server Server Dirección IP pública mencionada en la VM que se creó para esta demostración. Nombre de usuario sa Contraseña Contraseña segura que se usó al crear la instancia de Azure SQL Edge. Base de datos Valor predeterminado Grupo del servidor Valor predeterminado Nombre (opcional) Puede proporcionar un nombre opcional. Seleccione Conectar.
En la pestaña del menú Archivo, abra un cuaderno nuevo o use el método abreviado de teclado CTRL+N.
En la nueva ventana Consulta, ejecute el siguiente script para crear el trabajo de streaming de T-SQL. Antes de ejecutar el script, asegúrese de cambiar las siguientes variables:
@SQL_SA_Password
: El valorMSSQL_SA_PASSWORD
especificado durante la implementación del módulo 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';
Utilice la siguiente consulta para comprobar que los datos del módulo de generación de datos se estén transmitiendo a la base de datos.
SELECT TOP 10 * FROM dbo.IronOreMeasurements ORDER BY timestamp DESC;
En este tutorial, hemos implementado el módulo generador de datos y el módulo SQL Edge. Después, hemos creado un trabajo de streaming para transmitir los datos generados por el módulo de generación de datos a SQL.