Compreender os recursos offline estendidos para dispositivos, módulos e dispositivos filhos do 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 dá suporte a operações offline estendidas em seus dispositivos IoT Edge e também habilita operações offline em dispositivos downstream. Enquanto um dispositivo IoT Edge tiver tido uma oportunidade de se conectar ao Hub IoT, esse dispositivo e quaisquer dispositivos downstream podem continuar a funcionar com conexão intermitente ou sem conexão com a Internet.

Como funciona

Quando um dispositivo do IoT Edge entra no modo offline, o hub do IoT Edge assume três funções:

  • Armazena todas as mensagens a montante e guarda-as até que o dispositivo restabeleça a ligação.
  • Atua em nome do Hub IoT para autenticar módulos e dispositivos a jusante para que estes possam continuar a operar.
  • Permite a comunicação entre os dispositivos a jusante que normalmente passariam pelo Hub IoT.

O exemplo a seguir mostra como um cenário do IoT Edge opera no modo offline:

  1. Configurar dispositivos

    Os dispositivos IoT Edge têm automaticamente os recursos offline ativados. Para estender essa capacidade a outros dispositivos, você precisa configurar os dispositivos downstream para confiar no dispositivo pai atribuído e rotear as comunicações do dispositivo para a nuvem por meio do pai como um gateway.

  2. Sincronizar com o Hub IoT

    Pelo menos uma vez após a instalação do tempo de execução do IoT Edge, o dispositivo IoT Edge precisa estar online para sincronizar com o Hub IoT. Nessa sincronização, o dispositivo IoT Edge obtém detalhes sobre quaisquer dispositivos downstream atribuídos a ele. O dispositivo IoT Edge também atualiza com segurança seu cache local para habilitar operações offline e recupera configurações para armazenamento local de mensagens de telemetria.

  3. Ficar offline

    Embora desconectado do Hub IoT, o dispositivo IoT Edge, seus módulos implantados e quaisquer dispositivos downstream podem operar indefinidamente. Os módulos e dispositivos downstream podem iniciar e reiniciar autenticando-se com o hub IoT Edge enquanto estiverem offline. A telemetria ligada upstream ao Hub IoT é armazenada localmente. A comunicação entre módulos ou entre dispositivos a jusante é mantida através de métodos diretos ou mensagens.

  4. Reconectar e ressincronizar com o Hub IoT

    Depois que a conexão com o Hub IoT for restaurada, o dispositivo IoT Edge será sincronizado novamente. As mensagens armazenadas localmente são entregues ao Hub IoT imediatamente, mas dependem da velocidade da conexão, da latência do Hub IoT e de fatores relacionados. São entregues na mesma ordem em que foram armazenados.

    Quaisquer diferenças entre as propriedades desejadas e relatadas dos módulos e dispositivos são reconciliadas. O dispositivo IoT Edge atualiza todas as alterações em seu conjunto de dispositivos downstream atribuídos.

Restrições e limites

Os dispositivos IoT Edge e seus dispositivos downstream atribuídos podem funcionar indefinidamente offline após a sincronização inicial única. No entanto, o armazenamento de mensagens depende da configuração de tempo de vida (TTL) e do espaço em disco disponível para armazenar as mensagens.

O EdgeAgent de um dispositivo atualiza suas propriedades relatadas sempre que há uma alteração no status da implantação, como uma implantação nova ou com falha. Quando um dispositivo está offline, o EdgeAgent não pode relatar o status para o portal do Azure. Por conseguinte, o estado do dispositivo no portal do Azure pode permanecer 200 OK quando o dispositivo do IoT Edge não tem conectividade Internet.

Configurar dispositivos pai e filho

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

Nota

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

Os dispositivos downstream podem ser qualquer dispositivo, IoT Edge ou não-IoT Edge, registrado no mesmo Hub IoT.

Para obter mais informações sobre como criar uma relação pai-filho entre um dispositivo IoT Edge e um dispositivo IoT, consulte Autenticar um dispositivo downstream no Hub IoT do Azure. As seções chave simétrica, X.509 autoassinada e X.509 assinada pela CA mostram exemplos de como usar o portal do Azure e a CLI do Azure para definir as relações pai-filho ao criar dispositivos. Para dispositivos existentes, você pode declarar a relação na página de detalhes do dispositivo no portal do Azure do dispositivo pai ou filho.

Para obter mais informações sobre como criar uma relação pai-filho entre dois dispositivos IoT Edge, consulte Conectar um dispositivo IoT Edge downstream a um gateway do Azure IoT Edge.

Configurar o dispositivo pai como um gateway

Você pode pensar em uma relação pai/filho como um gateway transparente, onde o dispositivo filho tem sua própria identidade no Hub IoT, mas se comunica através da nuvem por meio de seu pai. Para uma comunicação segura, o dispositivo filho precisa ser capaz de verificar se o dispositivo pai vem de uma fonte confiável. Caso contrário, terceiros podem configurar dispositivos maliciosos para se passar pelos pais e intercetar comunicações.

Uma maneira de criar essa relação de confiança é descrita em detalhes nos seguintes artigos:

Especificar servidores DNS

Para melhorar a robustez, é altamente recomendável especificar os endereços de servidor DNS usados em seu ambiente. Para definir seu servidor DNS para IoT Edge, consulte a resolução para relatórios do módulo do Agente de Borda 'arquivo de configuração vazio' e nenhum módulo iniciado no dispositivo no artigo de solução de problemas.

Configurações offline opcionais

Se seus dispositivos ficarem offline, o dispositivo pai do IoT Edge armazenará todas as mensagens do dispositivo para a nuvem até que a conexão seja restabelecida. O módulo hub IoT Edge gerencia o armazenamento e o encaminhamento de mensagens offline.

Para dispositivos que podem ficar offline por longos períodos de tempo, otimize o desempenho definindo duas configurações do hub IoT Edge:

  • Aumente a configuração de tempo ao vivo , para que o hub IoT Edge mantenha as mensagens até que seu dispositivo se reconecte.
  • Adicione espaço em disco adicional para armazenamento de mensagens.

Time to live

A configuração de tempo de vida é a quantidade de tempo (em segundos) que uma mensagem pode esperar para ser entregue antes de expirar. O padrão é 7200 segundos (duas horas). O valor máximo é limitado apenas pelo valor máximo de uma variável inteira, que é de cerca de 2 mil milhões.

Essa configuração é uma propriedade desejada do hub IoT Edge, que é armazenada no módulo gêmeo. Você pode configurá-lo no portal do Azure ou diretamente no manifesto de implantação.

"$edgeHub": {
    "properties.desired": {
        "schemaVersion": "1.1",
        "routes": {},
        "storeAndForwardConfiguration": {
            "timeToLiveSecs": 7200
        }
    }
}

Armazenamento de host para módulos do sistema

As mensagens e as informações de estado do módulo são armazenadas no sistema de arquivos de contêiner local do hub IoT Edge por padrão. Para maior confiabilidade, especialmente ao operar offline, você também pode dedicar armazenamento no dispositivo host IoT Edge. Para obter mais informações, consulte Conceder aos módulos acesso ao armazenamento local de um dispositivo.

Próximos passos

Saiba mais sobre como configurar um gateway transparente para suas conexões de dispositivo pai/filho: