Compreender os módulos do Azure IoT Edge

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

Importante

IoT Edge 1.5 LTS e IoT Edge 1.4 LTS são versões suportadas. O IoT Edge 1.4 LTS termina a vida útil em 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 na borda na forma de 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 podem ser atualizadas, alteradas e implantadas 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 existe como uma imagem separada de um módulo que usa visão computacional para controlar um drone.

Cada vez que uma imagem de módulo é implantada em um dispositivo e iniciada pelo tempo de execução do IoT Edge, uma nova instância desse módulo é criada. 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 uma nova instância de módulo é criada pelo tempo de execução do IoT Edge, ela obtém uma identidade de módulo correspondente. A identidade do módulo é armazenada no Hub IoT e é usada como o escopo de endereçamento e segurança para todas as comunicações locais e em nuvem para essa instância do módulo.

A identidade associada a uma instância de módulo depende da identidade do dispositivo no qual a instância está sendo executada e do nome que você fornece a esse módulo em sua solução. Por exemplo, se você chamar insight um módulo que usa um Azure Stream Analytics 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.

Claramente, em cenários em que você precisa implantar uma imagem de módulo várias vezes no mesmo dispositivo, você pode implantar a mesma imagem várias vezes 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 também tem um gêmeo de módulo correspondente que você pode usar para configurar a instância do módulo. A instância e o gêmeo são associados um ao outro através da identidade do módulo.

Um módulo twin é um documento JSON que armazena informações do módulo e propriedades de configuração. Este conceito é paralelo ao conceito de gêmeo de dispositivo do Hub IoT. A estrutura de um módulo gêmeo é a mesma de um dispositivo gêmeo. As APIs usadas para interagir com ambos os tipos de gêmeos também 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 podem operar offline indefinidamente após a sincronização com o Hub IoT pelo menos uma vez. Os dispositivos IoT Edge também podem estender esse recurso offline para outros dispositivos IoT. Para obter mais informações, consulte Compreender os recursos offline estendidos para dispositivos, módulos e dispositivos downstream do IoT Edge.

Próximos passos