Sincronize sombras do dispositivo local com AWS IoT Core - AWS IoT Greengrass

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Sincronize sombras do dispositivo local com AWS IoT Core

O componente do gerenciador de sombras permite AWS IoT Greengrass sincronizar os estados de sombra do dispositivo local com AWS IoT Core o. Você deve modificar a configuração do componente do gerenciador de sombras para incluir o parâmetro de synchronization configuração e especificar os AWS IoT nomes dos dispositivos e as sombras que você deseja sincronizar.

Quando você configura o gerenciador de sombras para sincronizar sombras, ele sincroniza todas as alterações de estado das sombras especificadas, independentemente de as alterações ocorrerem em documentos de sombra locais ou em documentos de sombra na nuvem.

Você também pode especificar se o componente gerenciador de sombras sincroniza sombras em tempo real ou em um intervalo periódico. Por padrão, o componente do gerenciador de sombras sincroniza as sombras em tempo real, para que o dispositivo principal envie e receba atualizações de sombra de e para AWS IoT Core quando cada atualização ocorre. Você pode configurar intervalos periódicos para reduzir o uso da largura de banda e as cobranças.

Pré-requisitos

Para sincronizar sombras locais comAWS IoT Core, você deve configurar a política do dispositivo principal AWS IoT do Greengrass para permitir as AWS IoT Core seguintes ações de política paralela.

  • iot:GetThingShadow

  • iot:UpdateThingShadow

  • iot:DeleteThingShadow

Para ver mais informações, consulte:

Configurar o componente do gerenciador de sombras

O gerenciador de sombra requer uma lista de mapeamentos de nomes de sombra para sincronizar informações de estado de sombra em documentos de sombra locais com documentos de sombra em nuvem. AWS IoT Core

Para sincronizar estados de sombra, crie uma implantação que inclua o aws.greengrass.ShadowManager componente e especifique as sombras que você deseja sincronizar no parâmetro de synchronize configuração na configuração do gerenciador de sombras na implantação.

nota

Para permitir que um dispositivo principal interaja com as sombras do dispositivo cliente, você também deve configurar e implantar o componente de ponte MQTT. Para obter mais informações, consulte Habilitar o shadow manager para se comunicar com dispositivos clientes.

O exemplo de atualização de configuração a seguir instrui o componente do gerenciador de sombras a sincronizar as seguintes sombras com: AWS IoT Core

  • A sombra clássica para o dispositivo principal

  • O nome MyCoreShadow do dispositivo principal

  • A sombra clássica de uma coisa de IoT chamada MyDevice2

  • As sombras nomeadas MyShadowA e MyShadowB para uma coisa de IoT chamada MyDevice1

Essa atualização de configuração especifica a sincronização de sombras AWS IoT Core em tempo real. Se você usar o gerenciador de sombras v2.1.0 ou posterior, poderá configurar o componente do gerenciador de sombras para sincronizar sombras em um intervalo periódico. Para configurar esse recurso, altere a estratégia de sincronização para periodic e especifique um delay em segundos para o intervalo. Para obter mais informações, consulte o parâmetro de configuração da estratégia do componente shadow manager.

Essa atualização de configuração especifica a sincronização de sombras em ambas as direções entre o dispositivo principal AWS IoT Core e o dispositivo principal. Se você usar o gerenciador de sombras v2.2.0 ou posterior, poderá configurar o componente do gerenciador de sombras para sincronizar sombras em apenas uma direção. Para configurar esse recurso, altere a sincronização direction para deviceToCloud oucloudToDevice. Para obter mais informações, consulte o parâmetro de configuração de direção do componente gerenciador de sombras.

{ "strategy": { "type": "realTime" }, "synchronize": { "coreThing": { "classic": true, "namedShadows": [ "MyCoreShadow" ] }, "shadowDocuments": [ { "thingName": "MyDevice1", "classic": false, "namedShadows": [ "MyShadowA", "MyShadowB" ] }, { "thingName": "MyDevice2", "classic": true, "namedShadows": [ ] } ], "direction": "betweenDeviceAndCloud" } }

Sincronizar sombras locais

Quando o dispositivo principal do Greengrass está conectado à AWS IoT nuvem, o gerenciador de sombras executa as seguintes tarefas para as sombras que você especifica na configuração do componente. O comportamento depende da opção de configuração da direção de sincronização de sombras especificada por você. Por padrão, o gerenciador de sombras usa a betweenDeviceAndCloud opção de sincronizar sombras nas duas direções. Se você usa o gerenciador de sombras v2.2.0 ou posterior, pode configurar o dispositivo principal para sincronizar sombras em apenas uma direção, que pode ser ou. cloudToDevice deviceToCloud

  • Se a configuração da direção da sincronização de sombra for betweenDeviceAndCloud oucloudToDevice, o gerenciador de sombras recuperará as informações de estado relatadas do documento de sombra na nuvem emAWS IoT Core. Em seguida, ele atualiza os documentos-sombra armazenados localmente para sincronizar o estado do dispositivo.

  • Se a configuração da direção da sincronização de sombra for betweenDeviceAndCloud oudeviceToCloud, o gerenciador de sombras publicará o estado atual do dispositivo no documento de sombra na nuvem.

Comportamento de conflito do Shadow Merge

Em alguns casos, como quando o dispositivo principal está desconectado da Internet, uma sombra pode mudar no serviço paralelo local e na AWS IoT nuvem antes que o gerenciador de sombra sincronize as alterações. Como resultado, os estados desejados e reportados diferem entre o serviço paralelo local e a AWS IoT nuvem.

Quando o gerenciador de sombras sincroniza a sombra, ele mescla as alterações de acordo com o seguinte comportamento:

  • Se você usa uma versão do gerenciador de sombras anterior à v2.2.0 ou quando especifica a direção da sincronização de betweenDeviceAndCloud sombras, o seguinte comportamento se aplica:

    • Quando há um conflito de mesclagem no estado desejado de uma sombra, o gerenciador de sombra substitui a seção conflitante do documento paralelo local pelo valor da nuvem. AWS IoT

    • Quando há um conflito de mesclagem no estado relatado de uma sombra, o gerenciador de sombra substitui a seção conflitante da sombra na AWS IoT nuvem pelo valor do documento de sombra local.

  • Quando você especifica a deviceToCloud direção da sincronização de sombras, o gerenciador de sombras substitui a seção conflitante da sombra na AWS IoT nuvem pelo valor do documento de sombra local.

  • Quando você especifica a cloudToDevice direção da sincronização de sombras, o gerenciador de sombras substitui a seção conflitante do documento de sombra local pelo valor da AWS IoT nuvem.