Uso de AWS Lambda con AWS IoT - AWS Lambda

Uso de AWS Lambda con AWS IoT

AWS IoT proporciona una comunicación segura entre dispositivos conectados a Internet (como sensores) y la nube de AWS. Esto le permite recopilar, almacenar y analizar los datos de telemetría de varios dispositivos.

Puede crear reglas de AWS IoT para que sus dispositivos interactúen con los servicios de AWS. El motor de reglas de AWS IoT proporciona un lenguaje basado en SQL para seleccionar datos de cargas de mensajes y enviar los datos a otros servicios como Amazon S3, Amazon DynamoDB y AWS Lambda. Cuando quiera invocar otro servicio de AWS o un servicio de terceros, defina una regla para invocar una función de Lambda.

Cuando un mensaje de IoT entrante desencadena la regla, AWS IoT invoca su función de Lambda de forma asíncrona y pasa los datos del mensaje de IoT a la función.

El siguiente ejemplo muestra una lectura de humedad del sensor de un invernadero. Los valores row y pos identifican la ubicación del sensor. Este evento de ejemplo se basa en el tipo de invernadero de los Tutoriales de reglas de AWS IoT.

ejemplo Evento de mensaje de AWS IoT
{ "row" : "10", "pos" : "23", "moisture" : "75" }

En la invocación asincrónica, Lambda pone en cola el mensaje y, si la función devuelve un error, lo intenta de nuevo. Configure su función con un destination para retener eventos que su función no pudo procesar.

Debe conceder permiso para que el servicio AWS IoT invoque su función de Lambda. Utilice el comando add-permission para añadir una instrucción de permiso a la política basada en recursos de la función.

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

Debería ver los siguientes datos de salida:

{ "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 obtener más información acerca de cómo utilizar Lambda con AWS IoT, consulte Creación de una regla de AWS Lambda.