AWS IoT
Guia do desenvolvedor

O que é AWS IoT?

A AWS IoT proporciona comunicação bidirecional segura entre dispositivos conectados à Internet como sensores, acionadores, microcontroladores incorporados ou aparelhos inteligentes e a nuvem AWS. Isso permite que você colete dados de telemetria de vários dispositivos, armazene e analise os dados. Você também pode criar aplicativos que permitem que os usuários controlem esses dispositivos de smartphones ou tablets.

Componentes de AWS IoT

O AWS IoT consiste nos seguintes componentes:

Gateway do dispositivo

Permite que dispositivos se comuniquem com a AWS IoT com segurança e eficiência.

Operador de mensagens

Fornece um mecanismo seguro para dispositivos e aplicativos da AWS IoT a fim de publicar e receber mensagens um do outro. Você pode usar diretamente o protocolo MQTT ou o MQTT pelo WebSocket para publicar e se inscrever. Você pode usar a interface REST HTTP para publicar.

Mecanismo de regras

Fornece processamento de mensagens e integração com outros serviços da AWS. Você pode usar uma linguagem baseada em SQL para selecionar dados de cargas de mensagem, processar e enviar os dados para outros serviços, como Amazon S3. Amazon DynamoDB e AWS Lambda. Você também pode usar o operador de mensagens para republicar mensagens para outros assinantes.

Serviço de segurança e identidade

Fornece responsabilidade compartilhada para segurança na Nuvem AWS. Seus dispositivos devem manter as credenciais seguras para enviar dados com segurança ao operador de mensagens. O operador de mensagens e o mecanismo de regras usam os recursos de segurança da AWS para enviar dados com segurança para dispositivos ou outros serviços da AWS.

Registro

Organiza os recursos associados a cada dispositivo na nuvem AWS. É possível registrar seus dispositivos e associar até três atributos personalizados a cada um. Você também pode associar certificados e IDs de cliente MQTT a cada dispositivo para melhorar sua capacidade de gerenciá-los e de solucionar seus problemas.

Registro de grupo

Os grupos permitem gerenciar vários dispositivos simultaneamente, categorizando-os em grupos. Os grupos também podem conter grupos—você pode criar uma hierarquia de grupos. Qualquer ação executada em um grupo pai será aplicada a seus grupos filho e a todos os dispositivos contidos nele, e também a todos os seus grupos filho. As permissões fornecidas a um grupo serão aplicadas a todos os dispositivos no grupo e a todos os seus grupos filho.

Device Shadow

Um documento JSON usado para armazenar e recuperar as informações do estado atual de um dispositivo.

Serviço Device Shadow

Fornece representações persistentes de seus dispositivos na nuvem AWS. Você pode publicar informações de estado atualizadas em uma shadow de dispositivo, e seu dispositivo pode sincronizar seu estado quando ele se conectar. Seus dispositivos também podem publicar o estado atual deles em uma shadow para ser usado por aplicativos ou outros dispositivos.

Serviço de provisionamento de dispositivos

Permite provisionar dispositivos usando um modelo que descreve os recursos necessários para seu dispositivo: uma coisa, um certificado e uma ou mais políticas. Uma coisa é uma entrada no registro que contém atributos que descrevem um dispositivo. Os dispositivos usam certificados para autenticação com a AWS IoT. As políticas determinam quais operações um dispositivo pode executar na AWS IoT.

Os modelos contêm variáveis que são substituídas por valores em um dicionário (mapa). Você pode usar o mesmo modelo para provisionar vários dispositivos bastando passar diferentes valores para as variáveis do modelo no dicionário.

Serviço de autenticação personalizada

Você pode definir autorizadores personalizados que permitem que você gerencie sua própria estratégia de autenticação e autorização usando um serviço de autenticação personalizada e uma função do Lambda. Os autorizadores personalizados permitem que a AWS IoT autentique seus dispositivos e autorize operações usando as estratégias de autenticação e autorização do token do portador.

Os autorizadores personalizados podem implementar várias estratégias de autenticação (por exemplo, verificação de JSON Web Token, chamada do provedor OAuth etc.) e devem retornar documentos de política usados pelo gateway de dispositivos para autorizar operações MQTT.

Serviço Jobs

Permite definir um conjunto de operações remotas que são enviadas e executadas em um ou mais dispositivos conectados à AWS IoT. Por exemplo, você pode definir um trabalho que instrui um conjunto de dispositivos a baixar e instalar um aplicativo ou atualizações de firmware, reinicializar, alternar certificados ou executar operações de solução de problemas remotamente.

Para criar um trabalho, você especifica uma descrição das operações remotas a serem executadas e uma lista de destinos que devem executá-las. Os destinos podem ser dispositivos individuais, grupos ou ambos.

Para obter informações sobre os limites do AWS IoT, consulte Limites do AWS IoT.

Conceitos básicos do AWS IoT

Acessando o AWS IoT

A AWS IoT oferece as seguintes interfaces para criar e interagir com os dispositivos:

  • AWS Command Line Interface (AWS CLI)—Execute comandos para a AWS IoT no Windows, macOS e Linux. Esses comandos permitem que você crie e gerencie coisas, certificados, regras e políticas. Para começar, consulte o Guia do usuário do AWS Command Line Interface. Para obter mais informações sobre comandos AWS IoT, consulte iot no AWS CLI Command Reference.

  • AWS IoT API—Crie seus aplicativos para IoT usando solicitações HTTP ou HTTPS. Essas ações da API permitem que você crie e gerencie de modo programático coisas, certificados, regras e políticas. Para obter mais informações sobre as ações de API para AWS IoT, consulte Ações na Referência de API para AWS IoT.

  • AWS SDKs—Cria aplicativos para a IoT usando APIs específicas de uma linguagem. Esses SDKs encapsulam a API HTTP/HTTPS e permitem que você programe em qualquer uma das linguagens suportadas. Para obter mais informações, consulte SDKs e ferramentas da AWS.

  • SDKs de dispositivos da AWS IoT—Cria aplicativos que são executados em dispositivos que enviam e recebem mensagens da AWS IoT. Para obter mais informações, consulte, AWS IoT SDKs.

A AWS IoT se integra diretamente aos seguintes serviços da AWS:

  • Amazon Simple Storage Service—Fornece armazenamento escalável na Nuvem AWS. Para obter mais informações, consulte Amazon S3.

  • Amazon DynamoDB—Bancos de dados NoSQL gerenciados. Para obter mais informações, consulte Amazon DynamoDB.

  • Amazon Kinesis—Permite o processamento em tempo real de streaming de dados em altíssima escala. Para obter mais informações, consulte Amazon Kinesis.

  • AWS Lambda—Execução do código em servidores virtuais do Amazon EC2 em resposta aos eventos. Para obter mais informações, consulte AWS Lambda​​​.

  • Amazon Simple Notification Service—Envia ou recebe notificações. Para obter mais informações, consulte Amazon SNS.

  • Amazon Simple Queue Service—Armazena dados em uma fila para serem recuperados por aplicativos. Para obter mais informações, consulte Amazon SQS.