Compartir a través de


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.

  1. Vaya al centro de IoT que creó en el grupo de recursos.

  2. En la sección IoT Edge, en Administración automática de dispositivos, seleccione Id. de dispositivo. Para este tutorial, el identificador es IronOrePredictionDevice.

  3. Seleccione la sección Establecer módulos.

  4. 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

  1. Clone los archivos de proyecto en la máquina.

  2. Abra el archivo IronOre_Silica_Predict.sln con Visual Studio 2019.

  3. Actualice los detalles del registro de contenedor en deployment.template.json.

    "registryCredentials": {
         "RegistryName": {
             "username": "",
             "password": "",
             "address": ""
         }
    }
    
  4. 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":
    }
    
  5. Ejecute el proyecto en modo de depuración o de lanzamiento para asegurarse de que el proyecto se ejecuta sin problemas.

  6. 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.

  7. 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

  1. Implemente el módulo Azure SQL Edge; para ello, seleccione + Agregar y, después, en Módulo de IoT Edge.

  2. 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.

  3. 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.

  4. Seleccionar actualización

  5. En la página Establecer módulos en el dispositivo, seleccione Siguiente: Rutas >.

  6. 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")
    
  7. En la página Establecer módulos en el dispositivo, seleccione Siguiente: Revisar y crear >

  8. 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.

  1. Abra Azure Data Studio.

  2. 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.
  3. Seleccione Conectar.

  4. En la pestaña del menú Archivo, abra un cuaderno nuevo o use el método abreviado de teclado CTRL+N.

  5. 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 valor MSSQL_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';
    
  6. 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.