Utilisation AWS Lambda avec AWS IoT - AWS Lambda

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Utilisation AWS Lambda avec AWS IoT

AWS IoT fournit une communication sécurisée entre les appareils connectés à Internet (tels que les capteurs) et le AWS cloud. Vous pouvez ainsi collecter les données de télémétrie de plusieurs périphériques, les stocker et les analyser.

Vous pouvez créer des AWS IoT règles pour que vos appareils interagissent avec les AWS services. Le moteur de AWS IoT règles fournit un langage SQL basé pour sélectionner les données des charges utiles des messages et les envoyer à d'autres services, tels qu'Amazon S3, Amazon DynamoDB AWS Lambda et. Vous définissez une règle pour appeler une fonction Lambda lorsque vous souhaitez appeler un autre AWS service ou un service tiers.

Lorsqu'un message IoT entrant déclenche la règle, AWS IoT appelle votre fonction Lambda de manière asynchrone et transmet les données du message IoT à la fonction.

L'exemple suivant montre une mesure de l'humidité à partir d'un capteur de serre. Les valeurs row et pos identifient l'emplacement du capteur. Cet exemple d'événement est basé sur le type de serre indiqué dans les didacticiels sur les règles AWS IoT.

Exemple AWS IoT événement de message
{ "row" : "10", "pos" : "23", "moisture" : "75" }

Pour l'appel asynchrone, Lambda met le message en file d'attente et fait une nouvelle tentative si votre fonction renvoie une erreur. Configurez votre fonction avec une destination pour conserver les événements que votre fonction n'a pas pu traiter.

Vous devez autoriser le AWS IoT service à appeler votre fonction Lambda. Utilisez la commande add-permission pour ajouter une instruction d'autorisation à la stratégie basée sur les ressources de votre fonction.

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

Vous devriez voir la sortie suivante:

{ "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\"}" }

Pour plus d'informations sur l'utilisation de Lambda avec AWS IoT, consultez Création d'une AWS Lambda règle.