

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

# Reter o estado do dispositivo enquanto o dispositivo está off-line com as sombras do dispositivo
<a name="iot-shadows-tutorial"></a>

Esses tutoriais mostram como usar o serviço AWS IoT Device Shadow para armazenar e atualizar as informações de estado de um dispositivo. O documento Shadow, que é um documento JSON, mostra a alteração no estado do dispositivo com base nas mensagens publicadas por um dispositivo, aplicativo local ou serviço. Neste tutorial, o documento Shadow mostra a mudança na cor de uma lâmpada. Esses tutoriais também mostram como a sombra armazena essas informações mesmo quando o dispositivo está desconectado da Internet e passa as informações de estado mais recentes para o dispositivo quando ele volta a ficar on-line e solicita essas informações.

Recomendamos que você veja esses tutoriais na ordem em que são mostrados aqui, começando com os recursos AWS IoT que você precisa criar e a configuração de hardware necessária, o que também ajuda você a aprender os conceitos de forma incremental. Esses tutoriais mostram como configurar e conectar um dispositivo Raspberry Pi para uso com. AWS IoT Se você não tiver o hardware necessário, poderá seguir esses tutoriais adaptando-os a um dispositivo de sua escolha ou [criando um dispositivo virtual com o Amazon EC2](creating-a-virtual-thing.md).

**Visão geral do cenário do tutorial**  
O cenário desses tutoriais é um aplicativo ou serviço local que altera a cor de uma lâmpada e publica seus dados em tópicos de sombra reservados. Esses tutoriais são semelhantes à funcionalidade Sombra do Dispositivo descrita no [tutorial interativo de introdução](interactive-demo.md) e são implementados em um dispositivo Raspberry Pi. Os tutoriais nesta seção concentram-se em uma única sombra clássica e mostram como você pode acomodar sombras nomeadas ou vários dispositivos.

Os tutoriais a seguir ajudarão você a aprender como usar o serviço AWS IoT Device Shadow.
+ 

**[Tutorial: preparando seu Raspberry Pi para executar o aplicativo de sombra](create-resources-shadow.md)**  
Este tutorial mostra como configurar um dispositivo Raspberry Pi para conexão com o. AWS IoT Você também criará um documento de AWS IoT política e um recurso, baixará os certificados e anexará a política a esse recurso. Este tutorial leva cerca de 30 minutos para ser concluído.
+ 

**[Tutorial: instalando o Device SDK e executando o aplicativo de amostra para Sombras do Dispositivo](lightbulb-shadow-application.md)**  
Este tutorial mostra como instalar as ferramentas e o software necessários e o AWS IoT Device SDK para Python e, em seguida, executar o aplicativo shadow de amostra. Este tutorial se baseia nos conceitos apresentados em [Conectar um Raspberry Pi ou outro dispositivo](connecting-to-existing-device.md) e leva 20 minutos para ser concluído.
+ 

**[Tutorial: interagindo com a Sombra do Dispositivo usando o aplicativo de amostra e o cliente de teste MQTT](interact-lights-device-shadows.md)**  
Este tutorial mostra como você usa o aplicativo e o **AWS IoT console** de `shadow.py` amostra para observar a interação entre AWS IoT Device Shadows e as mudanças de estado da lâmpada. O tutorial também mostra como enviar mensagens MQTT para os tópicos reservados da Sombra do Dispositivo. A conclusão deste tutorial pode levar cerca de 45 minutos.

**AWS IoT Visão geral do Device Shadow**  
Um Device Shadow é uma representação virtual persistente de um dispositivo gerenciado por um [recurso](iot-thing-management.md) criado por você no AWS IoT registro. O documento Shadow é um documento JSON ou de JavaScript notação usado para armazenar e recuperar as informações do estado atual de um dispositivo. Você pode usar a sombra para obter e definir o estado de um dispositivo por meio de tópicos do MQTT ou HTTP REST APIs, independentemente de o dispositivo estar conectado à Internet.

Um documento de sombra contém uma `state` propriedade que descreve esses aspectos do estado do dispositivo.
+ `desired`: Os aplicativos especificam os estados desejados das propriedades do dispositivo atualizando o objeto `desired`.
+ `reported`: Os dispositivos relatam seu estado atual no objeto `reported`.
+ `delta`: AWS IoT relata diferenças entre o estado desejado e o estado relatado no `delta` objeto.

Veja um exemplo de documento do estado de sombra.

```
{
  "state": {
    "desired": {
      "color": "green"
      },
    "reported": {
      "color": "blue"
      },
    "delta": {
      "color": "green"
      }
   }
}
```

Para atualizar o documento Shadow de um dispositivo, você pode usar os [tópicos reservados do MQTT](reserved-topics.md#reserved-topics-shadow), o [Device Shadow REST APIs](device-shadow-rest-api.md) que suporta o`GET`,`UPDATE`, e `DELETE` as operações com HTTP e a [AWS IoT CLI](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot-data/index.html).

No exemplo anterior, digamos que você queira alterar a cor `desired` para `yellow`. Para fazer isso, envie uma solicitação para a API [UpdateThingShadow](device-shadow-rest-api.md#API_UpdateThingShadow) ou publique uma mensagem no tópico [Atualizar](device-shadow-mqtt.md#update-pub-sub-topic), `$aws/things/THING_NAME/shadow/update`.

```
{
  "state": {
    "desired": {
      "color": yellow
    }
  }
}
```

As atualizações afetam apenas os campos especificados na solicitação. Depois de atualizar com sucesso o Device Shadow, AWS IoT publica o novo `desired` estado no `delta` tópico,`$aws/things/THING_NAME/shadow/delta`. O documento de sombra, nesse caso, tem a seguinte aparência:

```
{
  "state": {
    "desired": {
      "color": yellow
    },
    "reported": {
      "color": green
    },
    "delta": {
      "color": yellow
      }
  }
}
```

O novo estado é então reportado ao AWS IoT Device Shadow usando o `Update` tópico `$aws/things/THING_NAME/shadow/update` com a seguinte mensagem JSON: 

```
{
  "state": {
    "reported": {
      "color": yellow
    }
  }
}
```

Se você quiser obter as informações do estado atual, envie uma solicitação para a API [GetThingShadow](device-shadow-rest-api.md#API_GetThingShadow) ou publique uma mensagem MQTT no tópico [Obter](device-shadow-mqtt.md#get-pub-sub-topic), `$aws/things/THING_NAME/shadow/get`.

Para obter mais informações sobre como usar o serviço de sombra do dispositivo, consulte [AWS IoT Serviço Device Shadow](iot-device-shadows.md).

Para obter mais informações sobre o uso de sombra do dispositivo em dispositivos, aplicativos e serviços, consulte [Usar sombras em dispositivos](device-shadow-comms-device.md) e [Usar sombras em aplicativos e serviços](device-shadow-comms-app.md).

Para obter informações sobre como interagir com AWS IoT sombras, consulte. [Interagir com sombras](device-shadow-data-flow.md)

Para obter informações sobre os tópicos reservados do MQTT e o HTTP REST APIs, consulte [Tópicos MQTT da Sombra do Dispositivo](device-shadow-mqtt.md) e. [API REST da Sombra do Dispositivo](device-shadow-rest-api.md)