AWS работает Lambda читать из темы IOT - PullRequest
0 голосов
/ 23 октября 2018

У меня есть AWS Lambda, которая публикует данные в теме A AWS IOT и ждет результата, который будет опубликован в другой теме B.

Мне было интересно, как получить эти данные из темы Bкогда вещь публикует ее в уже работающей лямбде*

Lambda1 -> IOT Тема A -> Вещь

Lambda1 ожидает

Thing -> IOT Тема B

Lambda1 читает из Темы B и обновляет, скажем, DB и умирает.

Мне было интересно, как это можно сделать.

По некоторым причинам мы больше не можем использовать IOT Shadow.

Текущая архитектура:

Lambda1 -> IOT Shadow Desired -> Вещи

Lambda1 -> ожидает в течение 5 секунд

Lambda1 -> читает IOT Shadow Reported -> успех или неудача

Если сбой Lambda1 -> сбрасывает IOT Desired в старое состояние -> существует

Ответы [ 2 ]

0 голосов
/ 01 февраля 2019

AWS SDK для Lambda (например, Boto3 для Python) не поддерживает тему подписки.Поддерживается только публикация темы.

Если вы хотите подписаться на тему, вы должны использовать устройство sdk (ref. https://docs.aws.amazon.com/iot/latest/developerguide/iot-sdks.html)

И затем, вы можете публиковать и подписываться на устройствеsdk in lambda.

Если вы не хотите использовать устройство sdk, вам нужно использовать redis или DynamoDB, как показано ниже.

сообщение об опубликовании устройства -> AWS IoT Rule вызывает некоторое действие (например, запись в БД) -> лямбда-опрос БД.

0 голосов
/ 23 октября 2018

Невозможно настроить IoT для отправки нового сообщения на «уже запущенную» лямбду.Он всегда будет запускать новый вызов лямбда-функции.Разве предыдущее состояние уже отсутствует в сообщении об ошибке теневого обновления IoT?Разве вы не можете просто использовать эти данные в новом вызове для выполнения каких-либо обновлений БД или чего-то еще, что вам нужно?

...