Compartilhar via


Entenda os módulos do Azure IoT Edge

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

Importante

O IoT Edge 1.5 LTS é a versão com suporte. O IoT Edge 1.4 LTS atingirá o fim da vida útil em 12 de novembro de 2024. Se você estiver em uma versão anterior, confira Atualizar o 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 (por exemplo, o Azure Stream Analytics) ou seu próprio código específico à 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 contendo o software que define um módulo.
  • Uma instância de módulo é a unidade específica de computação que executa a imagem de módulo em um dispositivo com IoT Edge. A instância de módulo é iniciada pelo runtime do IoT Edge.
  • Uma identidade do módulo é uma informação (incluindo as credenciais de segurança) armazenada no Hub IoT, que está associada a cada instância de módulo.
  • Um módulo gêmeo é um documento JSON armazenado no Hub IoT e contém informações de estado para uma instância de módulo, incluindo metadados, configurações e condições.

Instâncias e imagens de módulo

As imagens de módulo do IoT Edge contêm aplicativos que tiram proveito dos recursos de comunicação, segurança e gerenciamento do runtime 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 soluções diferentes. Por exemplo, um módulo que usa o aprendizado de máquina para prever a saída da linha de produção é uma imagem separada de um módulo usando a visão computacional para controlar um drone.

Sempre que o runtime do IoT Edge é implantado 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 podem usar a mesma imagem de módulo. No entanto, cada dispositivo terá sua própria instância de módulo quando o módulo for 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 runtime 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 de 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 runtime 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 de módulo são exclusivas dentro de dispositivos e em todos os dispositivos

Módulos gêmeos

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

O módulo gêmeo é um documento JSON que armazena as propriedades de configuração e as informações do módulo. Esse conceito é comparável ao conceito de dispositivo gêmeo do Hub IoT. A estrutura de um módulo gêmeo é a mesma de um dispositivo gêmeo. 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 depois de sincronizar 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, confira Entender os recursos off-line estendidos para dispositivos IoT Edge, módulos e dispositivos de downstream.

Próximas etapas