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á.
Sincronizar sombras do dispositivo locais com o AWS IoT Core
O componente Gerenciador de sombras permite que o AWS IoT Greengrass sincronize os estados das sombras do dispositivo locais com o AWS IoT Core. Você deve modificar a configuração do componente Gerenciador de sombras para incluir o parâmetro de configuração synchronization
e especificar os nomes dos itens do AWS IoT 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 se as alterações são feitas em documentos de sombra locais ou na nuvem.
Você também pode especificar se o componente Gerenciador de sombras sincroniza as sombras em tempo real ou em um intervalo periódico. Por padrão, o componente Gerenciador de sombras sincroniza as sombras em tempo real, dessa forma, o dispositivo principal envia e recebe as atualizações de sombras de e para o AWS IoT Core quando cada atualização ocorre. Você pode configurar intervalos periódicos para reduzir o uso e as cobranças de largura de banda.
Tópicos
Pré-requisitos
Para sincronizar as sombras locais com o AWS IoT Core, você deve configurar a política do AWS IoT do dispositivo principal do Greengrass para permitir as ações de política de sombra do AWS IoT Core a seguir.
-
iot:GetThingShadow
-
iot:UpdateThingShadow
-
iot:DeleteThingShadow
Para obter mais informações, consulte as informações a seguir.
Configurar o componente Gerenciador de sombras
O Gerenciador de sombras requer uma lista de mapeamentos de nomes de sombra para sincronizar as informações de estado das sombras dos documentos de sombra locais com os documentos de sombra em nuvem no AWS IoT Core.
Para sincronizar os estados das sombras, crie uma implantação que inclua o componente aws.greengrass.ShadowManager
e especifique as sombras que você deseja sincronizar no parâmetro synchronize
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 Gerenciador de sombras para comunicação com dispositivos cliente.
O exemplo de atualização de configuração a seguir instrui o componente Gerenciador de sombras a sincronizar as seguintes sombras com o AWS IoT Core:
-
A sombra clássica para o dispositivo principal
-
O nome
MyCoreShadow
do dispositivo principal -
A sombra clássica para um item do IoT chamado
MyDevice2
-
As sombras nomeadas
MyShadowA
eMyShadowB
para um item do IoT chamadoMyDevice1
Essa atualização de configuração especifica a sincronização de sombras com o AWS IoT Core em tempo real. Se você usa o Gerenciador de sombras v2.1.0 ou mais recente, pode configurar esse componente para sincronizar as 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 Gerenciador de sombras.
Essa atualização de configuração especifica a sincronização de sombras em ambas as direções entre o AWS IoT Core e o dispositivo principal. Se você usa o Gerenciador de sombras v2.2.0 ou mais recente, pode configurar esse componente para sincronizar as sombras em apenas uma direção. Para configurar esse recurso, altere a direction
da sincronização para deviceToCloud
ou cloudToDevice
. Para obter mais informações, consulte o parâmetro de configuração da 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 à nuvem do AWS IoT, o Gerenciador de sombras executa as tarefas a seguir 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 que você especifica. Por padrão, o Gerenciador de sombras usa a opção betweenDeviceAndCloud
para sincronizar as sombras nas duas direções. Se você usa o Gerenciador de sombras v2.2.0 ou mais recente, pode configurar o dispositivo principal para sincronizar as sombras em apenas uma direção, que pode ser cloudToDevice
ou deviceToCloud
.
-
Se a configuração de direção da sincronização de sombras for
betweenDeviceAndCloud
oucloudToDevice
, o Gerenciador de sombras recuperará as informações de estado relatadas do documento de sombra da nuvem no AWS IoT Core. Depois disso, ele atualizará os documentos de sombra armazenados localmente para sincronizar o estado do dispositivo. -
Se a configuração de direção da sincronização de sombras for
betweenDeviceAndCloud
oudeviceToCloud
, o Gerenciador de sombras publicará o estado atual do dispositivo no documento de sombra da nuvem.
Comportamento de conflito na mesclagem de sombras
Em alguns casos, por exemplo, quando o dispositivo principal está desconectado da Internet, uma sombra pode ser alterada no serviço de sombra local e na nuvem do AWS IoT antes que o Gerenciador de sombras sincronize as alterações. Como resultado, os estados desejados e relatados são diferentes entre o serviço de sombra local e a nuvem do AWS IoT.
Quando o Gerenciador de sombras sincroniza a sombra, ele mescla as alterações de acordo com este comportamento:
-
Se você usa uma versão do Gerenciador de sombras anterior à 2.2.0, ou quando especifica a direção da sincronização de sombras
betweenDeviceAndCloud
, o seguinte comportamento é aplicado:-
Quando há um conflito de mesclagem no estado desejado de uma sombra, o Gerenciador de sombras substitui a seção em conflito do documento de sombra local pelo valor da nuvem do AWS IoT.
-
Quando há um conflito de mesclagem no estado relatado de uma sombra, o Gerenciador de sombras substitui a seção em conflito da sombra na nuvem do AWS IoT pelo valor do documento de sombra local.
-
-
Quando você especifica a direção da sincronização de sombras
deviceToCloud
, o Gerenciador de sombras substitui a seção em conflito da sombra na nuvem do AWS IoT pelo valor do documento de sombra local. -
Quando você especifica a direção da sincronização de sombras
cloudToDevice
, o Gerenciador de sombras substitui a seção em conflito do documento de sombra local pelo valor da nuvem do AWS IoT.