Compartilhar via


Configurar módulos e conexões de IoT Edge

Importante

O SQL do Azure no Edge encerrou o suporte à plataforma ARM64.

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

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

Especificar credenciais do registro de contêiner

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

  • Nome do registro
  • Servidor de logon
  • Nome de Usuário
  • Senha

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

  1. Navegue até o hub IoT criado no seu grupo de recursos.

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

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

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

    Campo Valor
    Nome Nome do registro
    Endereço Servidor de logon
    Nome do Usuário Nome de Usuário
    Senha Senha

Criar, efetuar push e implantar um Módulo Gerador de Dados

  1. Clone os arquivos de projeto em seu computador.

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

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

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

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

  6. Efetue push do projeto para o registro de contêiner clicando com o botão direito do mouse no nome do projeto e selecionando Criar e efetuar push de Módulos do IoT Edge.

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

Implantar o módulo de SQL do Azure no Edge

  1. Implante o módulo do SQL do Azure no Edge selecionando + Adicionar e Módulo do Marketplace.

  2. No painel Módulo do Marketplace do IoT Edge, pesquise SQL do Azure no Edge e escolha Desenvolvedor do SQL do Azure no Edge.

  3. Selecione o módulo SQL do Azure no Edge recém-adicionado em Módulos do IoT Edge para configurar o módulo do SQL do Azure no Edge. Para obter mais informações sobre as opções de configuração, confira Implantar o SQL do Azure no Edge.

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

  5. Selecione Atualizar

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

  7. No painel de rotas da página Definir módulos no dispositivo, especifique as rotas para o módulo para comunicação do hub do IoT Edge, conforme descrito abaixo. Atualize os nomes de módulo nas definições de rota a seguir.

    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")
    
  8. Na página Definir módulos no dispositivo, selecione Avançar: Examinar + criar >

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

Criar e iniciar o trabalho de Streaming do T-SQL no SQL do Azure no Edge.

  1. Abra o Azure Data Studio.

  2. Na guia de boas-vindas, inicie uma nova conexão com os seguintes dados:

    Campo Valor
    Tipo de conexão Microsoft SQL Server
    Servidor Endereço IP público mencionado na VM que foi criado para esta demonstração.
    Nome de Usuário sa
    Senha A senha forte que foi usada ao criar a instância do SQL do Azure no Edge.
    Banco de dados Padrão
    Grupo de servidor Padrão
    Nome (opcional) Forneça um nome opcional.
  3. Selecione Conectar.

  4. Na guia do menu Arquivo, abra um novo notebook ou use o atalho de teclado Ctrl + N.

  5. Na janela Consulta nova, execute o script abaixo para criar o trabalho de Streaming do T-SQL. Antes de executar o script, altere as variáveis a seguir:

    • @SQL_SA_Password: o valor MSSQL_SA_PASSWORD especificado ao implantar o Módulo do SQL do Azure no 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. 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 no Edge. Em seguida, criamos um trabalho de streaming para transmitir os dados gerados pelo módulo de geração de dados para SQL.

Próximas etapas