Partilhar via


Configurar módulos e conexões do IoT Edge

Importante

O Azure SQL Edge será desativado em 30 de setembro de 2025. Para obter mais informações e opções de migração, consulte o Aviso de aposentadoria.

Nota

O Azure SQL Edge não suporta mais a plataforma ARM64.

Na segunda parte deste tutorial de três partes para prever impurezas de minério de ferro no Azure SQL Edge, você configurará os seguintes módulos do IoT Edge:

  • SQL do Azure no Edge
  • Gerador de dados Módulo IoT Edge

Especificar credenciais do Registro de contêiner

As credenciais para os registros de contêiner que hospedam imagens de módulo precisam ser especificadas. Essas credenciais podem ser encontradas no registro de contêiner que foi criado em seu grupo de recursos. Navegue até a seção Teclas de acesso . Anote os seguintes campos:

  • Nome de registo
  • Servidor de início de sessão
  • Username
  • Palavra-passe

Agora, especifique as credenciais do contêiner no módulo IoT Edge.

  1. Navegue até o hub IoT que foi criado em seu grupo de recursos.

  2. Na seção IoT Edge em Gerenciamento Automático de Dispositivos, selecione ID do Dispositivo. Para este tutorial, o ID é IronOrePredictionDevice.

  3. Selecione a seção Definir módulos .

  4. Em Credenciais do Registro de Contêiner, insira os seguintes valores:

    Campo Valor
    Nome Nome de registo
    Endereço Servidor de início de sessão
    Nome de Utilizador Username
    Palavra-passe Palavra-passe

Crie, envie por push e implante o módulo do gerador de dados

  1. Clone os arquivos de projeto para sua máquina.

  2. Abrir o arquivo IronOre_Silica_Predict.sln usando o Visual Studio 2019

  3. Atualize os detalhes do registro do contêiner no deployment.template.json

    "registryCredentials": {
         "RegistryName": {
             "username": "",
             "password": "",
             "address": ""
         }
    }
    
  4. Atualize o arquivo modules.json para especificar o registro do contêiner de destino (ou repositório para o módulo)

    "image": {
         "repository":"samplerepo.azurecr.io/ironoresilicapercent",
         "tag":
    }
    
  5. Execute o projeto no modo de depuração ou liberação para garantir que o projeto seja executado sem problemas

  6. Envie o projeto para o registro do contêiner clicando com o botão direito do mouse no nome do projeto e selecionando Build and Push IoT Edge Modules.

  7. Implante o módulo Gerador de Dados como um módulo IoT Edge em seu dispositivo Edge.

Implantar o módulo SQL Edge do Azure

  1. Implante o módulo SQL Edge do Azure selecionando + Adicionar e, em seguida, Módulo IoT Edge.

  2. Defina as opções de configuração na página Adicionar Módulos de Borda IoT para implantar o módulo SQL Edge do Azure. Para obter mais informações sobre as opções de configuração, consulte Implantar o Azure SQL Edge.

  3. Adicione a MSSQL_PACKAGE variável de ambiente à implantação do módulo SQL Edge do Azure e especifique a URL SAS do arquivo dacpac do banco de dados criado na etapa 8 da Parte um deste tutorial.

  4. Selecione atualizar

  5. Na página Definir módulos no dispositivo , selecione Avançar: Rotas >.

  6. No painel de rotas da página Definir módulos no dispositivo , especifique as rotas para a comunicação do módulo com o hub IoT Edge conforme descrito abaixo. Certifique-se de atualizar os nomes dos módulos nas seguintes definições de rota.

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

    Por exemplo:

    FROM /messages/modules/ASEDataGenerator/outputs/IronOreMeasures
    INTO BrokeredEndpoint("/modules/AzureSQLEdge/inputs/IronOreMeasures")
    
  7. Na página Definir módulos no dispositivo , selecione Avançar: Revisar + criar >

  8. Na página Definir módulos no dispositivo , selecione Criar

Crie e inicie o Trabalho de Streaming T-SQL no Azure SQL Edge.

  1. Abra o Azure Data Studio.

  2. Na guia Bem-vindo, inicie uma nova conexão com os seguintes detalhes:

    Campo Value
    Connection type Microsoft SQL Server
    Servidor Endereço IP público mencionado na VM que foi criada para esta demonstração
    Username SA
    Palavra-passe A senha forte que foi usada durante a criação da instância do Azure SQL Edge
    Base de Dados Predefinido
    Grupo de servidores Predefinido
    Name (optional) (Nome [opcional]) Forneça um nome opcional
  3. Selecione Ligar.

  4. Na guia do menu Arquivo , abra um novo bloco de anotações ou use o atalho de teclado Ctrl + N.

  5. Na nova janela Consulta, execute o script abaixo para criar o trabalho de Streaming T-SQL. Antes de executar o script, certifique-se de alterar as seguintes variáveis:

    • @SQL_SA_Password: O MSSQL_SA_PASSWORD valor especificado durante a implantação do Módulo de Borda SQL do Azure.
    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. Use a consulta a seguir para verificar se os dados do módulo de geração de dados estão sendo transmitidos para o banco de dados.

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

Neste tutorial, implantamos o módulo gerador de dados e o módulo SQL Edge. Em seguida, criamos um trabalho de streaming para transmitir os dados gerados pelo módulo de geração de dados para SQL.