2
votes

I'm trying to trigger an AWS lambda function via an IoT Rule. I mostly followed this guide - http://docs.aws.amazon.com/iot/latest/developerguide/iot-lambda-rule.html - except I'm not using an IoT Button so a few things were updated to account for a custom rule.

I'm publishing messages to a queue, and if I subscribe to that queue I see them coming through in the MQTT client. I also setup multiple actions on my rule. One inserts into Dynamo, one triggers an SNS text message. The last, and the most important to me, is supposed to invoke a Lambda function. That one doesn't seem to be executing. The other two do what I expect them to do every time i publish a new queue message.

When i check cloudwatch logs on the lambda I never see anything. No error, no success, it's like the action just isn't triggering at all.

If i manually run the Lambda test with the payload I expect to send it successfully executes.

Has anyone seen this before. I'm lost on how to troubleshoot.

1

1 Answers

1
votes

First of all, the correct term for subscription in MQTT is to a "topic" not "queue".

Now, regarding your issue, I recommend you enable CloudWatch Log for your AWS IoT (not just looking at the Lambda log). Then, you will need to watch out for the event "LambdaActionFailure".

http://docs.aws.amazon.com/iot/latest/developerguide/cloud-watch-logs.html