Compartilhar via


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

Aplica-se a: ícone sim IoT Edge 1.1

Importante

IoT Edge 1.1 a data de término do suporte foi 13 de dezembro de 2022. Confira o Ciclo de Vida do Produto da Microsoft para obter informações sobre o suporte deste produto, serviço, tecnologia ou API. Para obter mais informações sobre como atualizar para a versão mais recente do IoT Edge, consulte Atualizar o IoT Edge.

O Azure IoT Edge tem suporte para operações offline estendidas em seus dispositivos do IoT Edge e também permite operações offline em dispositivos de 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. Primeiro, ele armazena todas as mensagens que estão no sentido upstream e as salva até que o dispositivo se reconecte. Em segundo lugar, ele atua em nome do IoT Hub para autenticar módulos e dispositivos de downstream para que possam continuar a operar. Em terceiro lugar, 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 recursos offline estendidos descritos neste artigo estão disponíveis no IoT Edge versão 1.0.7 ou superior. As versões anteriores têm um subconjunto de recursos offline. Os dispositivos do IoT Edge existentes que não têm recursos offline estendidos não podem ser atualizados alterando a versão de runtime, mas devem ser reconfigurados com uma nova identidade do dispositivo do IoT Edge para obter esses recursos.

Somente dispositivos não IoT Edge podem ser adicionados como dispositivos de downstream.

Os dispositivos IoT Edge e seus dispositivos de 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 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.

Dispositivos de downstream podem ser qualquer dispositivo que não é do IoT Edge registrado no mesmo Hub IoT.

Se você não estiver familiarizado com 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 pai ou filho.

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

Primeiro, aumente a configuração do tempo de vida útil para que o hub do IoT Edge mantenha as mensagens por tempo suficiente para que o dispositivo se reconecte. Em seguida, 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.0",
        "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: