Uso di AWS Lambda con AWS IoT
AWS IoT fornisce una comunicazione sicura tra i dispositivi connessi a Internet (come i sensori) e AWS Cloud. Questo consente raccogliere, archiviare e analizzare i dati di telemetria da più dispositivi.
È possibile creare regole AWS IoT affinché i dispositivi interagiscano con i Servizi AWS. AWS IoT Rules Engine fornisce un linguaggio basato su SQL, per selezionare i dati dai payload dei messaggi e inviare i dati ad altri servizi, ad esempio Amazon S3, Amazon DynamoDB e AWS Lambda. Si definisce una regola per richiamare una funzione Lambda quando si desidera richiamare un altro servizio AWS o un servizio di terze parti.
Quando un messaggio IoT in ingresso attiva la regola, AWS IoTrichiama la funzione Lambda in modo asincrono e passa i dati dal messaggio IoT alla funzione.
L'esempio seguente mostra una lettura dell'umidità da un sensore serra. I valori di riga e pos identificano la posizione del sensore. Questo evento di esempio si basa sul tipo serra in Tutorial sulle regole AWS IoT.
Esempio AWS IoTEvento messaggio di
{ "row" : "10", "pos" : "23", "moisture" : "75" }
Per le chiamate asincrone, Lambda inserisce in una coda i messaggi e i tentativi se la funzione restituisce un errore. Configura la tua funzione con una destination per mantenere gli eventi che la tua funzione non è in grado di elaborare.
È necessario concedere l'autorizzazione al servizio AWS IoT per richiamare la funzione Lambda. Utilizza il comando add-permission per aggiungere un'istruzione di autorizzazione alla policy basata sulle risorse della funzione.
aws lambda add-permission --function-namemy-function\ --statement-id iot-events --action "lambda:InvokeFunction" --principal iot.amazonaws.com
Verrà visualizzato l'output seguente:
{ "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\"}" }
Per ulteriori informazioni su come utilizzare Lambda con AWS IoT, consulta Creazione di una regola AWS Lambda.