Entender os recursos offline estendidos para dispositivos, módulos e dispositivos filho do IoT Edge
Aplica-se a: IoT Edge 1.5 IoT Edge 1.4
Importante
O IoT Edge 1.5 LTS e o IoT Edge 1.4 LTS são versões com suporte. O IoT Edge 1.4 LTS chegará ao 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 tem suporte para operações offline estendidas nos dispositivos do IoT Edge e também permite operações offline em dispositivos downstream. Desde que um dispositivo IoT Edge tenha tido uma oportunidade de se conectar ao Hub IoT, esse dispositivo e quaisquer dispositivos de downstream podem continuar a funcionar com conexão intermitente ou sem conexão com a Internet.
Como ele funciona
Quando um dispositivo do IoT Edge entra em modo offline, o hub do IoT Edge assume três funções:
- Armazena todas as mensagens que estão no sentido upstream e as salva até que o dispositivo se reconecte.
- Atua em nome do Hub IoT para autenticar módulos e dispositivos de downstream para que possam continuar a operar.
- Permite a comunicação entre dispositivos de downstream que normalmente passariam pelo Hub IoT.
O exemplo a seguir mostra como um cenário de IoT Edge opera no modo offline:
Configurar dispositivos
Dispositivos do IoT Edge automaticamente têm recursos offline habilitados. Para estender essa capacidade a outros dispositivos, você precisa configurar os dispositivos de downstream para confiar em seu dispositivo pai atribuído e rotear as comunicações do dispositivo para a nuvem por meio do pai como um gateway.
Sincronizar com o Hub IoT
Pelo menos uma vez após a instalação do runtime do IoT Edge, o dispositivo do IoT Edge precisa estar online para sincronizar com o Hub IoT. Nessa sincronização, o dispositivo do IoT Edge obtém detalhes sobre todos os dispositivos de downstream atribuídos a ele. O dispositivo do IoT Edge também atualiza seu cache local com segurança para permitir operações offline e recupera as configurações para o armazenamento local de mensagens de telemetria.
Ficar offline
Enquanto desconectado do Hub IoT, o dispositivo IoT Edge, seus módulos implantados e quaisquer dispositivos de downstream podem operar indefinidamente. Os módulos e dispositivos de downstream podem ser iniciados e reiniciados ao autenticarem com o hub do IoT Edge enquanto estiverem offline. A telemetria upstream associada para o Hub IoT é armazenada localmente. A comunicação entre os módulos ou entre dispositivos de downstream é mantida por meio de métodos diretos ou mensagens.
Reconectar e sincronizar novamente com o Hub IoT
Quando a conexão com o Hub IoT for restaurada, o dispositivo do 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 dos fatores relacionados. Elas são entregues na mesma ordem em que foram armazenadas.
Todas as diferenças entre as propriedades desejadas e relatadas dos módulos e dispositivos são reconciliadas. O dispositivo do IoT Edge atualiza qualquer alteração de seu conjunto de dispositivos de downstream atribuídos.
Restrições e limites
Dispositivos do IoT Edge e os 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 TTL (vida útil) e do espaço em disco disponível para armazenar as mensagens.
O EdgeAgent de um dispositivo atualiza suas propriedades relatadas sempre que houver 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. Portanto, o status do dispositivo no portal do Azure pode permanecer 200 OK quando dispositivo IoT Edge não tiver conexão com a Internet.
Configurar dispositivos pai e filho
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. Um dispositivo filho tem apenas um pai.
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 de downstream ou um dispositivo de gateway em uma topologia aninhada.
Os dispositivos de downstream podem ser qualquer dispositivo, IoT Edge ou não IoT Edge, registrado no mesmo Hub IoT.
Para obter mais informações sobre a criação de uma relação pai-filho entre um dispositivo IoT Edge e um dispositivo IoT, consulte Autenticar um dispositivo downstream para Hub IoT do Azure. As seções de chave simétrica, X.509 autoassinado e X.509 assinadas por autoridade de certificação 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 a criação de uma relação pai-filho entre dois dispositivos do IoT Edge, consulte Conectar um dispositivo IoT Edge downstream para um gateway do Azure IoT Edge.
Configurar o dispositivo pai como gateway
Você pode considerar uma relação pai/filho como gateway transparente, em que o dispositivo filho tem sua própria identidade no Hub IoT, mas se comunica através da nuvem por meio do pai. Para uma comunicação segura, o dispositivo filho precisa verificar se o dispositivo pai vem de uma fonte confiável. Caso contrário, terceiros poderiam configurar dispositivos mal-intencionados para representar os pais e interceptar as comunicações.
Uma maneira de criar essa relação de confiança é descrita detalhadamente nos artigos a seguir:
- Configure um dispositivo IoT Edge para atuar como um gateway transparente
- Conectar um dispositivo downstream (filho) para um gateway do Azure IoT Edge
Especificar servidores de DNS
Para melhorar a robustez, é altamente recomendável que você especifique os endereços de servidor DNS usados em seu ambiente. Para definir o servidor DNS para IoT Edge, confira a resolução para O módulo Edge Agent relata 'arquivo de configuração vazio' e nenhum módulo é iniciado no dispositivo no artigo de solução de problemas.
Configurações offline opcionais
Se os dispositivos ficarem offline, o dispositivo pai IoT Edge armazenará todas as mensagens do dispositivo para a nuvem até que a conexão seja restabelecida. O módulo hub do IoT Edge gerencia o armazenamento e o encaminhamento das mensagens offline.
Para dispositivos que podem ficar offline por longos períodos, otimize o desempenho definindo duas configurações de hub do IoT Edge:
- Aumente a configuração de tempo de vida útil, para que o hub do IoT Edge mantenha as mensagens até que seu dispositivo se reconecte.
- Adicione mais espaço em disco para o armazenamento de mensagens.
Vida útil
A configuração de tempo de vida útil é 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 de inteiro, que é cerca de 2 bilhões.
Essa configuração é uma propriedade desejada do hub do IoT Edge, que é armazenada no gêmeo do módulo. 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 do contêiner local do hub do IoT Edge por padrão. Para maior confiabilidade, especialmente ao operar offline, você também pode dedicar o armazenamento no dispositivo IoT Edge de host. Para obter mais informações, confira Fornecer acesso de módulos ao armazenamento local de um dispositivo.
Próximas etapas
Saiba mais sobre como configurar um gateway transparente para suas conexões de dispositivo pai/filho: