Como um dispositivo IoT Edge pode ser usado como um gateway

Aplica-se a:IoT Edge 1.4 checkmark IoT Edge 1.4

Importante

A versão com suporte é a IoT Edge 1.4. Se você estiver em uma versão anterior, confira Atualizar o IoT Edge.

Os dispositivos IoT Edge podem operar como gateways, fornecendo uma conexão entre outros dispositivos na rede e no Hub IoT.

O módulo do hub do IoT Edge atua como o Hub IoT e pode manipular conexões de outros dispositivos que têm uma identidade com o mesmo hub IoT. Esse tipo de padrão de gateway é chamado transparente porque as mensagens podem passar de dispositivos downstream para o Hub IoT como se não houvesse um gateway entre eles.

Os gateways do IoT Edge podem fornecer uma conexão para dispositivos que não podem se conectar ao Hub IoT por conta própria. Esse tipo de padrão de gateway é chamado de tradução porque o dispositivo IoT Edge precisa executar o processamento em mensagens recebidas de dispositivos downstream antes que elas possam ser encaminhadas ao Hub IoT. Esses cenários exigem módulos adicionais no gateway do IoT Edge para lidar com as etapas de processamento.

Os padrões de gateway transparentes e de tradução não se excluem mutuamente. Um único dispositivo IoT Edge pode funcionar como um gateway transparente e um gateway de tradução.

Todos padrões de gateway fornecem os seguintes benefícios:

  • Análise na borda - Use serviços de IA localmente para processar dados provenientes de dispositivos downstream sem enviar telemetria de fidelidade total para a nuvem. Encontre e reaja a insights localmente e só envie um subconjunto de dados para o Hub IoT.
  • Isolamento de dispositivo downstream - O dispositivo de gateway pode proteger todos os dispositivos downstream da exposição à Internet. Ele pode ficar entre uma rede de OT (tecnologia operacional) que não tem conectividade e uma rede de TI (tecnologia da informação) que fornece acesso à Web. Da mesma forma, os dispositivos que não têm a capacidade de se conectar ao Hub IoT por conta própria podem se conectar a um dispositivo de gateway.
  • Multiplexação de conexão – todos os dispositivos conectados ao Hub IoT por meio de um gateway do IoT Edge podem usar a mesma conexão subjacente. Essa funcionalidade de multiplexação requer que o gateway do IoT Edge use o AMQP como seu protocolo de upstream.
  • Suavização de tráfego -dispositivo do IoT Edge implementará automaticamente a retirada exponencial se o IoT Hub limitar o tráfego, enquanto as mensagens persistem localmente. Esse benefício torna sua solução resiliente a picos no tráfego.
  • Suporte offline – o dispositivo de gateway armazena mensagens e atualizações de gêmeos que não podem ser entregues ao Hub IoT.

Gateways transparentes

No padrão de gateway transparente, os dispositivos que teoricamente podem se conectar ao Hub IoT podem se conectar a um dispositivo de gateway. Os dispositivos downstream têm suas próprias identidades Hub IoT e se conectam usando os protocolos MQTT ou AMQP. O gateway simplesmente passa as comunicações entre os dispositivos e o Hub IoT. Os dispositivos e os usuários que interagem com eles por meio do Hub IoT não têm conhecimento de que há um gateway mediando as comunicações. Essa falta de consciência significa que o gateway é considerado transparente.

Para obter mais informações sobre como o hub do IoT Edge gerencia a comunicação entre dispositivos downstream e a nuvem, consulte Entender o runtime do Azure IoT Edge e sua arquitetura.

A partir da versão 1.2 do IoT Edge, os gateways transparentes podem lidar com conexões de dispositivos downstream de IoT Edge.

Relações pai e filho

Declare as relações de gateway transparentes no Hub IoT configurando o gateway do IoT Edge como o pai de um dispositivo downstream filho que se conecta a ele.

Observação

Um dispositivo de downstream emite dados diretamente para a Internet ou para dispositivos de gateway (habilitados para IoT Edge ou não). Um dispositivo filho pode ser um dispositivo downstream ou um dispositivo de gateway em uma topologia aninhada.

A relação pai e filho é estabelecida em três pontos na configuração do gateway:

Identidades de nuvem

Todos os dispositivos em um cenário de gateway transparente precisam de identidades de nuvem para se autenticar no Hub IoT. Ao criar ou atualizar uma identidade de dispositivo, você pode definir os dispositivos pai ou filho. Essa configuração autoriza o dispositivo de gateway pai a lidar com a autenticação para os dispositivos filho.

Observação

Configurar o dispositivo pai no Hub IoT era uma etapa opcional para dispositivos downstream que usam a autenticação de chave simétrica. No entanto, na versão 1.1.0 e posteriores, cada dispositivo downstream deve ser atribuído a um dispositivo pai.

Você pode configurar o hub do IoT Edge para voltar ao comportamento anterior definindo a variável de ambiente AuthenticationMode com o valor CloudAndScope.

Um dispositivo filho pode ter apenas um dispositivo pai. Por padrão, um pai pode ter até 100 filhos. Você pode alterar esse limite definindo a variável de ambiente MaxConnectedClients no módulo EdgeHub do dispositivo pai.

Os dispositivos IoT Edge podem ser pais e filhos em relações de gateway transparentes. Pode ser criada uma hierarquia de vários dispositivos IoT Edge que se reportam entre si. O nó superior de uma hierarquia de gateway pode ter até cinco gerações de filhos. Por exemplo, um dispositivo IoT Edge pode ter cinco camadas de dispositivos IoT Edge vinculados como filhos abaixo dele. Mas o dispositivo IoT Edge na quinta geração não pode ter nenhum dispositivo filho, IoT Edge ou outros.

Descoberta de gateway

Um dispositivo filho precisa ser capaz de encontrar seu dispositivo pai na rede local. Configure dispositivos de gateway com um nome de host, um FQDN (nome de domínio totalmente qualificado) ou um endereço IP que será usado pelos dispositivos filho para localizá-lo.

Em dispositivos IoT downstream, use o parâmetro gatewayHostname na cadeia de conexão para apontar para o dispositivo pai.

Em dispositivos IoT Edge downstream, use o parâmetro parent_hostname no arquivo de configuração para apontar para o dispositivo pai.

Conexão segura

Os dispositivos pai e filho precisam autenticar suas conexões entre si. Cada dispositivo precisa de uma cópia de um certificado de AC raiz compartilhada que será usado pelos dispositivos filho para verificar se estão se conectando ao gateway adequado.

Quando vários gateways do IoT Edge se conectam entre si em uma hierarquia de gateway, todos os dispositivos na hierarquia devem usar uma única cadeia de certificados.

Recursos do dispositivo por trás dos gateways transparentes

Todos os primitivos do Hub IoT que funcionam com o pipeline de mensagens do IoT Edge também dão suporte a cenários de gateway transparentes. Cada gateway do IoT Edge tem recursos de armazenamento e encaminhamento para mensagens que chegam por ele.

Use a tabela a seguir para ver como recursos diferentes do Hub IoT têm suporte para dispositivos em comparação com os dispositivos por trás dos gateways.

Funcionalidade Dispositivo IoT IoT por trás de um gateway Dispositivo do IoT Edge IoT Edge por trás de um gateway
Mensagens D2C (dispositivo para nuvem) Yes - IoT D2C Yes - child IoT D2C Yes - IoT Edge D2C Yes - child IoT Edge D2C
Mensagens C2D (nuvem para dispositivo) Yes - IoT C2D Yes - IoT child C2D No - IoT Edge C2D No - IoT Edge child C2D
Métodos diretos Yes - IoT direct method Yes - child IoT direct method Yes - IoT Edge direct method Yes - child IoT Edge direct method
Dispositivo gêmeos e Módulo gêmeos Yes - IoT twins Yes - child IoT twins Yes - IoT Edge twins Yes - child IoT Edge twins
Carregamento de arquivos Yes - IoT file upload No - IoT child file upload No - IoT Edge file upload No - IoT Edge child file upload
Pulls de imagem de contêiner Yes - IoT Edge container pull Yes - child IoT Edge container pull
Upload de blob Yes - IoT Edge blob upload Yes - child IoT Edge blob upload

É possível fazer download, armazenar e entregar as imagens de contêiner de dispositivos pai a dispositivos filho.

É possível fazer o upload de Blobs, incluindo pacotes de suporte e logs, de dispositivos filho para dispositivos pai.

Gateways de tradução

Se os dispositivos downstream não podem se conectar ao Hub IoT, o gateway do IoT Edge precisa atuar como um tradutor. Geralmente, esse padrão é necessário para dispositivos que não dão suporte a MQTT, a AMQP ou a HTTP. Como esses dispositivos não podem se conectar ao Hub IoT, eles também não podem se conectar ao módulo do hub do IoT Edge sem algum pré-processamento.

Os módulos personalizados ou de terceiros que geralmente são específicos para o hardware ou protocolo do dispositivo downstream precisam ser implantados no gateway do IoT Edge. Esses módulos de tradução pegam as mensagens de entrada e as convertem em um formato que pode ser reconhecido pelo Hub IoT.

Há dois padrões para os gateways de tradução: tradução de protocolo e tradução de identidade.

Diagram showing translation gateway patterns.

Conversão de protocolo

No padrão de gateway de tradução de protocolo, somente o gateway do IoT Edge tem uma identidade com o Hub IoT. O módulo de tradução recebe mensagens de dispositivos downstream e as traduz em um protocolo com suporte e o dispositivo IoT Edge as envia em nome dos dispositivos downstream. Todas as informações parecem estar vindo de um dispositivo, o gateway. Dispositivos downstream deverão inserir informações de identificação adicionais em suas mensagens se os aplicativos de nuvem quiserem analisar os dados por dispositivo. Além disso, os primitivos do Hub IoT, como gêmeos e métodos diretos, estão disponíveis apenas para o dispositivo de gateway e não para dispositivos downstream. Os gateways nesse padrão são considerados opacos em comparação com os gateways transparentes, pois eles ocultam as identidades dos dispositivos downstream.

A tradução de protocolo dá suporte a dispositivos que são restritos por recursos. Muitos dispositivos existentes estão produzindo dados que podem fomentar insights de negócios, porém, não foram projetados com a conectividade de nuvem em mente. Os gateways opacos permitem que esses dados sejam desbloqueados e usados em uma solução de IoT.

Conversão de identidade

O padrão de gateway de tradução de identidade cria a tradução de protocolo, mas o gateway de IoT Edge também fornece uma identidade de dispositivo do Hub IoT em nome dos dispositivos downstream. O módulo de tradução é responsável por reconhecer o protocolo usado pelos dispositivos downstream, fornecer a eles a identidade e traduzir suas mensagens para primitivos do Hub IoT. Dispositivos downstream aparecem no Hub IoT como dispositivos de primeira classe com gêmeos e métodos. Um usuário pode interagir com os dispositivos no Hub IoT e não estar ciente do dispositivo de gateway intermediário.

A tradução de identidade fornece os benefícios da tradução de protocolo e permite a capacidade de gerenciamento completa de dispositivos downstream da nuvem. Todos os dispositivos da sua solução IoT são exibidos no Hub IoT, independentemente do protocolo usado.

Recursos do dispositivo por trás dos gateways de tradução

A tabela a seguir explica como os recursos do Hub IoT são estendidos para dispositivos downstream e nos dois padrões de gateway de tradução.

Funcionalidade Conversão de protocolo Conversão de identidade
Identidades armazenadas no registro de identidade do Hub IoT Somente a identidade do dispositivo de gateway Identidades de todos os dispositivos conectados
Dispositivo gêmeo Somente o gateway tem um dispositivo e módulo gêmeos Cada dispositivo conectado tem seu próprio dispositivo gêmeo
Métodos diretos e mensagens da nuvem para o dispositivo A nuvem pode lidar somente com o dispositivo de gateway A nuvem pode lidar com cada dispositivo conectado individualmente
Cotas e limitações do Hub IoT Aplica-se ao dispositivo de gateway Aplica-se a cada dispositivo

Ao usar um padrão tradução de protocolo, todos os dispositivos que se conectam por meio do gateway compartilham a mesma fila da nuvem para o dispositivo, que pode conter no máximo 50 mensagens. Use esse padrão somente quando poucos dispositivos estão se conectando através de cada gateway de campo e o tráfego de nuvem para dispositivo está baixo.

O runtime do IoT Edge não inclui recursos de tradução de protocolo ou identidade. Esses padrões exigem módulos personalizados ou de terceiros que geralmente são específicos para o hardware e o protocolo usados. O Azure Marketplace contém vários módulos de tradução de protocolo para escolher. Para obter um exemplo que usa o padrão de tradução de identidade, consulte Kit de início do LoRaWAN do Azure IoT Edge.

Próximas etapas

Saiba mais sobre as três etapas para configurar um gateway transparente: