Partilhar via


Compreender os módulos do Azure IoT Edge

Aplica-se a:Marca de verificação do IoT Edge 1.5 IoT Edge 1.5

Importante

O IoT Edge 1.5 LTS é a versão suportada. O IoT Edge 1.4 LTS está em fim de vida útil a partir de 12 de novembro de 2024. Se tiver uma versão anterior, consulte Atualizar IoT Edge.

O Azure IoT Edge permite implantar e gerenciar a lógica de negócios em dispositivos de borda usando módulos. Os módulos do Azure IoT Edge são a menor unidade de computação gerenciada pelo IoT Edge e podem conter serviços do Azure (como o Azure Stream Analytics) ou seu próprio código específico da solução. Para entender como os módulos são desenvolvidos, implantados e mantidos, considere os quatro elementos conceituais de um módulo:

  • Uma imagem de módulo é um pacote que contém o software que define um módulo.
  • Uma instância de módulo é a unidade específica de computação que executa a imagem do módulo em um dispositivo IoT Edge. A instância do módulo é iniciada pelo tempo de execução do IoT Edge.
  • Uma identidade de módulo é uma informação (incluindo credenciais de segurança) armazenada no Hub IoT associada a cada instância do módulo.
  • Um módulo gêmeo é um documento JSON armazenado no Hub IoT que contém informações de estado para uma instância de módulo, incluindo metadados, configurações e condições.

Imagens e instâncias do módulo

As imagens do módulo IoT Edge contêm aplicativos que aproveitam os recursos de gerenciamento, segurança e comunicação do tempo de execução do IoT Edge. Você pode desenvolver suas próprias imagens de módulo ou exportar uma de um serviço do Azure com suporte, como o Azure Stream Analytics. As imagens existem na nuvem e você pode atualizá-las, alterá-las e implantá-las em diferentes soluções. Por exemplo, um módulo que usa aprendizado de máquina para prever a saída da linha de produção é uma imagem separada de um módulo que usa visão computacional para controlar um drone.

Cada vez que o tempo de execução do IoT Edge implanta e inicia uma imagem de módulo em um dispositivo, ele cria uma nova instância desse módulo. Dois dispositivos em diferentes partes do mundo poderiam usar a mesma imagem de módulo. No entanto, cada dispositivo teria sua própria instância de módulo quando o módulo é iniciado no dispositivo.

Diagrama - Imagens de módulo na nuvem, instâncias de módulo em dispositivos

Na implementação, as imagens de módulos existem como imagens de contêiner em um repositório, e as instâncias de módulo são contêineres em dispositivos.

Identidades de módulo

Quando o tempo de execução do IoT Edge cria uma nova instância de módulo, ele atribui uma identidade de módulo correspondente. O Hub IoT armazena a identidade do módulo, que serve como o escopo de endereçamento e segurança para todas as comunicações locais e na nuvem para a instância do módulo.

A identidade da instância do módulo depende da identidade do dispositivo e do nome que você atribui ao módulo em sua solução. Por exemplo, se você nomear um módulo insight e implantá-lo em um dispositivo chamado Hannover01, o tempo de execução do IoT Edge criará uma identidade de módulo correspondente chamada /devices/Hannover01/modules/insight.

Em cenários em que você precisa implantar uma imagem de módulo várias vezes no mesmo dispositivo, você pode implantá-la com nomes diferentes.

Diagrama - As identidades dos módulos são exclusivas dentro e entre dispositivos

Gêmeos de módulo

Cada instância de módulo tem um módulo gêmeo correspondente que você usa para configurá-lo. A identidade do módulo liga a instância e o gémeo.

Um módulo twin é um documento JSON que armazena informações do módulo e propriedades de configuração. Este conceito é semelhante ao conceito de gêmeo de dispositivo do IoT Hub. A estrutura de um gêmeo de módulo é a mesma de um gêmeo do dispositivo. As APIs para interagir com ambos os tipos de gêmeos são as mesmas. A única diferença entre os dois é a identidade usada para instanciar o SDK do cliente.

// Create a ModuleClient object. This ModuleClient will act on behalf of a
// module since it is created with a module's connection string instead
// of a device connection string.
ModuleClient client = new ModuleClient.CreateFromEnvironmentAsync(settings);
await client.OpenAsync();

// Get the module twin
Twin twin = await client.GetTwinAsync();

Funcionalidades offline

Os módulos do Azure IoT Edge operam offline indefinidamente após a sincronização com o Hub IoT uma vez. Os dispositivos IoT Edge também podem estender esse recurso offline para outros dispositivos IoT. Para obter mais informações, consulte Entender os recursos offline estendidos para dispositivos IoT Edge, módulos e dispositivos a jusante.

Próximos passos