Отправка данных из облака в aws iot thing

Я пытаюсь найти надежный способ отправки данных из лямбда-функции aws в вещь aws iot. По сути, это Raspberry Pi, который находится удаленно.

Я видел темы aws iot, но они не кажутся надежными для моего варианта использования.

Пока что я нашел следующие функции по темам

Темы:

  • Темы асинхронны.
  • Когда что-то добавляется в тему, все и только слушающие в данный момент устройства получат обновление.
  • Очередей нет.
  • Уведомление о доставке для издателя отсутствует.

В моем случае использования мне нужно знать, произведена ли доставка (в противном случае повторите попытку), но если устройство не подключено, тема может потерять запись.

Есть ли способ решить эту проблему. Любая помощь горячо приветствуется.

Редактировать:

Я пытаюсь отправить данные о пользователе, который может взаимодействовать с устройством с удаленного сервера.

Чтобы преодолеть ограничение темы для моего варианта использования, я придумал следующее решение.

Шаг 1: Dynamo -> lambda1 -> sqs -> topic1 -> удаленное устройство

Шаг 2: удаленное устройство (после получения данных) -> topic2 (подтверждение) -> lambda2 (удалить сообщение из sqs) -> Обновить БД о действии

Это решение кажется надежным?

Изменить 2:

В основном я пытаюсь отправить все обновления, сделанные в БД, в IOT Thing.

На основании ответа @ dvd86,

Шаг 1: DynamoStream -> lambda1 -> sqs -> Желаемая тень

Шаг 2: тень сообщила об обновлении -> lambda2 (удалить сообщение из sqs) -> Обновить базу данных о действии


person tharun    schedule 17.01.2018    source источник
comment
Вы можете это сделать, но не рекомендуется для устройств IOT. Вам нужно будет либо использовать очередь для каждого устройства, либо некоторую базу данных, отслеживающую все устройства. Какой у вас вариант использования?   -  person vidit    schedule 17.01.2018
comment
Я пытаюсь отправить данные о пользователе, который может взаимодействовать с устройством с удаленного сервера. Чтобы преодолеть ограничение темы для моего варианта использования, я придумал следующее решение. 1) lambda1 - ›sqs -› topic1 - ›удаленное устройство 2) удаленное устройство (после получения данных) -› topic2 (подтверждение) - ›lambda2 (удалить сообщение из sqs) Есть ли какой-либо изъян в приведенном выше решении?   -  person tharun    schedule 18.01.2018


Ответы (1)


Ваше решение не рекомендуется, потому что есть много проблем, которые вам придется реализовать самостоятельно, которые уже реализованы Aws iot.

Ваш ответ для этого сценария - использование тени AWS IoT: https://docs.aws.amazon.com/iot/latest/developerguide/using-thing-shadows.html

person Deividi Silva    schedule 18.01.2018
comment
Мне нравится идея использовать тень, но даже если я использую вещь shadow, мне все равно придется поддерживать очередь sqs для поддержки списка вещей, которые необходимо отправить. - person tharun; 19.01.2018