15. Publish / Subscribe
Suporte a Protocolos Padrões
MQTT, HTTP, WebSockets
Conexões de Longa Duração
Receber sinais da nuvem
Seguro por Padrão
Conecte com segurança usando
certificados X509 e TLS 1.2
com Autenticação Mútua
16. Mensagens dos Sensores
Suporte a protocolos padrão
MQTT, HTTP, WebSockets
Tópico/canal
Hierarquia para roteamento das mensagens
Controle total da árvore
Conteúdo (JSON)
JSON customizado
18. Extraindo o Valor das Mensagens
• Filtrar mensagens usando um critério
• Mover mensagens para outros tópicos
• Mover mensagens para outros sistemas
• Transformar o conteúdo das mensagens
• Predizer mensages usando tendências
• Reagir baseado nas mensagens
20. AWS IoT SQL – Referência
SELECT DATA FROM TOPIC WHERE FILTER
• Similar a ler uma tabela de um banco de dados
• A origem padrão é um tópico MQTT
Exemplos:
• FROM mqtt(‘meu/topico’)
• FROM mqtt(‘meu/coringa/+/topico’)
• FROM (‘meu/topico’)
21. Motor de Regras
• Funções
• Manipulação de strings (suporte a expressões regulares)
• Operações matemáticas
• Funções auxiliares baseadas em contexto
• Suporte a criptografia
• UUID, timestamp, rand, etc.
• Executar ações em paralelo
22. novo: Funcionalidades do Motor de Regras
• Versionamento
• 2016-10-08 – Versão original
• 2016-03-23-beta – Versão beta lançada em uma
determinada data
• beta – Última versão beta (mudanças com quebras!)
• lts – Última versão estável, atualizada automaticamente
{
"sql": "expression",
"ruleDisabled": false,
"awsIotSqlVersion": "2015-03-23-beta",
"actions": [{
"republish": {
"topic": "my-mqtt-topic",
"roleArn": "arn:aws:iam::123456789012:role/my-iot-role"
}
}]}
26. Fluxo básico para usar predição
• Gerar dados
• Use uma regra do AWS IoT para enviar dados para o S3
• Construa o seu modelo no Amazon Machine Learning
usando o S3 como fonte de dados
• Habilite as predições em tempo-real no Amazon ML
• Use uma regra do AWS IoT para validar o valor predito
com o Amazon ML
• Adicione outras ações
29. 1. Dispositivo publica o estado atual
2. Persiste no repositório de dados JSON
3. Aplicativo solicita o estado
atual do dispositivo
4. Aplicativo solicita atualização
no estado
5. Device shadow sincroniza
o estado atualizado
6. Dispositivo publica o
estado atual
7. Device shadow confirma a
mudança do estado
AWS IoT Fluxo de uso do Device Shadow
30. AWS IoT Device Shadow: Simples e Poderoso
{
"state" : {
“desired" : {
“luzes": { "cor": “VERMELHO" },
"motor" : "LIGADO"
},
"reported" : {
“luzes" : { "cor": “VERDE" },
„motor" : "LIGADO"
},
"delta" : {
“luzes" : { "cor": "VERMELHO" }
} },
"version" : 10
}
Dispositivo
Reporta o estado atual para uma ou mais device
shadows
Obtém o estado desejado da shadow
Aplicação Móvel
Determina o estado desejado do dispositivo
Obtém o último estado reportado pelo dispositivo
Apaga a device shadow
Shadow
Shadow informa a diferença (delta),
estado desejado (desired) e reportado (reported)
incluindo o metadado e versão
35. Autenticação Mútua usando TLS
• Criar um CSR
• Criar um certificado X.509 a partir do CSR
• Ativar o certificado
• Criar uma policy
• Anexar a policy ao certificado
* Certificado precisa ser emitido pelo AWS IoT
36. novo: Traga o seu próprio Certificado
• Use os certificados emitidos pela sua própria AC
• Aproveitar a Infraestrutura de emissão atual
• Usar certificados que já estão embarcados
• Acesso limitado a internet na linha de montagem/fábrica
• Provisionamento simplificado de dispositivos
• 8 chamadas novas de API para suportar o
gerenciamento dos certificados
37. Exemplo de Policy publish/subscribe
"Effect": "Allow",
"Action": [
"iot:Publish"
],
"Resource": [
"arn:aws:iot:us-east-1:123456789012:topic/foo"
]
},
{
"Effect": "Deny",
"Action": [
”iot:Subscribe"
],
"Resource": [
"arn:aws:iot:us-east-1:123456789012:topic/bar"
]
Permite acesso a
topic/foo
Nega acesso a
topic/bar
38. AWS IoT policies
• Resultado (Effect)
• Permitir (Allow) ou Negar (Deny)
• Ação (Action)
• "iot:Publish" – publicar em um tópico MQTT
• "iot:Subscribe" – inscrever em um tópico MQTT
• "iot:UpdateThingShadow" – Atualizar uma thing shadow
• "iot:GetThingShadow" – Obter uma thing shadow
• "iot:DeleteThingShadow - Apagar uma thing shadow
• Recurso (Resource)
• Cliente
• ARN do tópico ou do filtro do tópico
40. Criando um relação de confiança com AWS IoT
P P
P
Role
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "",
"Effect": "Allow",
"Principal": {
"Service": “iot.amazonaws.com”
},
"Action": "sts:AssumeRole"
}
]
}
42. Protegendo acesso dos usuários
• WebSockets suporta autenticação
Signature Version 4
• IAM roles e policies
• Pool de Identidade do Amazon Cognito
• Acesso anônimo ao iot:Subscribe
• Use o seu próprio padrão de autenticação no nível de
aplicação
44. Suporte ao SDK para Dispositivos
• Baseado em padrões abertos como Eclipse Paho
• Embedded C
• JavaScript
• Arduíno Yún
• Java
• Python
• iOS
• Android
45. Resumo
• AWS IoT
• novo Ciclo de Vida de Eventos
• novo Funcionalidades do Motor de Regra
• Elasticsearch
• Amazon ML como função de predição
• novo Traga o seu próprio certificado