Usar o AWS Lambda com o AWS IoT - AWS Lambda

Usar o AWS Lambda com o AWS IoT

O AWS IoT fornece comunicação segura entre dispositivos conectados à Internet (como sensores) e a Nuvem AWS. Isso permite que você colete, armazene e analise dados de telemetria de vários dispositivos.

É possível criar regras de AWS IoT para que seus dispositivos interajam com os serviços da AWS. O Mecanismo de regras do AWS IoT fornece uma linguagem baseada em SQL para selecionar dados de cargas de mensagem e enviar os dados para outros serviços, como o Amazon S3, o Amazon DynamoDB e o AWS Lambda. Defina uma regra para invocar uma função do Lambda quando quiser invocar outro serviço da AWS ou um serviço de terceiros.

Quando uma mensagem de entrada da IoT aciona a regra, o AWS IoT invoca a função do Lambda de forma assíncrona e passa os dados da mensagem da IoT para a função.

O exemplo a seguir mostra uma leitura de umidade do sensor de uma estufa. Os valores de linha e pos identificam a localização do sensor. Esse evento de exemplo é baseado no tipo de estufa nos Tutoriais de regras da AWS IoT.

exemplo Evento de mensagem do AWS IoT
{ "row" : "10", "pos" : "23", "moisture" : "75" }

Para a invocação assíncrona, o Lambda coloca em fila a mensagem e tenta novamente caso a sua função retorne um erro. Configure sua função com um destino para manter os eventos que a função não puder processar.

É necessário conceder permissão para que o serviço da AWS IoT invoque sua função do Lambda. Use o comando add-permission para adicionar uma instrução de permissão à política baseada em recursos de sua função.

aws lambda add-permission --function-name my-function \ --statement-id iot-events --action "lambda:InvokeFunction" --principal iot.amazonaws.com

A seguinte saída deverá ser mostrada:

{ "Statement": "{\"Sid\":\"iot-events\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":\"iot.amazonaws.com\"},\"Action\":\"lambda:InvokeFunction\",\"Resource\":\"arn:aws:lambda:us-east-1:123456789012:function:my-function\"}" }

Para obter mais informações sobre como usar o Lambda com o AWS IoT, consulte Criar uma regra do AWS Lambda.