Entender os recursos offline estendidos para dispositivos, módulos e dispositivos filho do IoT Edge

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.

O Azure IoT Edge dá suporte a operações offline estendidas em seus dispositivos 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:

  1. 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.

  2. 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.

  3. 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.

  4. 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

Os dispositivos IoT Edge e seus dispositivos downstream atribuídos podem funcionar offline indefinidamente após a sincronização inicial e ú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 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 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 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 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 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:

Especificar servidores de DNS

Para melhorar a robustez, é altamente recomendável especificar 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 de tempo, otimize o desempenho definindo duas configurações de hub do IoT Edge:

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

Vida útil

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 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, consulte Conceder aos módulos acesso 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: