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.
Navegue até o hub IoT que foi criado em seu grupo de recursos.
Na seção IoT Edge em Gerenciamento Automático de Dispositivos, selecione ID do Dispositivo. Para este tutorial, o ID é
IronOrePredictionDevice
.Selecione a seção Definir módulos .
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
Clone os arquivos de projeto para sua máquina.
Abrir o arquivo IronOre_Silica_Predict.sln usando o Visual Studio 2019
Atualize os detalhes do registro do contêiner no deployment.template.json
"registryCredentials": { "RegistryName": { "username": "", "password": "", "address": "" } }
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": }
Execute o projeto no modo de depuração ou liberação para garantir que o projeto seja executado sem problemas
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.
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
Implante o módulo SQL Edge do Azure selecionando + Adicionar e, em seguida, Módulo IoT Edge.
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.
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.Selecione atualizar
Na página Definir módulos no dispositivo , selecione Avançar: Rotas >.
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")
Na página Definir módulos no dispositivo , selecione Avançar: Revisar + criar >
Na página Definir módulos no dispositivo , selecione Criar
Crie e inicie o Trabalho de Streaming T-SQL no Azure SQL Edge.
Abra o Azure Data Studio.
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 Selecione Ligar.
Na guia do menu Arquivo , abra um novo bloco de anotações ou use o atalho de teclado Ctrl + N.
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
: OMSSQL_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';
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.