Как отправить данные из брокера AWS IoT MQTT в случайный файл в корзине S3 - PullRequest
0 голосов
/ 30 января 2019

Я создал правило для пересылки всех сообщений, опубликованных в любую тему, например, foo / bar моего брокера MQTT, управляемого ядром AWS IoT, во вложенную папку в корзине S3.Для этого я использую ключ раздел.Я могу отправить данные во вложенную папку, например, / b / c.Проблема в том, что он принимает c в качестве файла назначения, и этот файл обновляется новыми данными по мере их поступления.Есть ли какая-либо конфигурация, которую я могу сделать, чтобы поместить данные в корзину в новый файл (с произвольным именем) по мере его поступления (аналогично тому, как это происходит, когда мы пересылаем данные из пожарного рукава в S3)

1 Ответ

0 голосов
/ 31 января 2019

Вы можете изменить клавишу для использования функции newuuid().например,

a/b/${newuuid()}

Это запишет данные в файл в папке a / b с именем файла, который является сгенерированным UUID.

Ключ в действиях AWS IoT S3 позволяет использовать справочные функции IoT SQL для формирования папки и имени файла.

Документация для ключа гласит:

Путь к файлу, в который записываются данные.Например, если значение этого аргумента равно «$ {topic ()} / $ {timestamp ()}», тема, в которую было отправлено сообщение, называется «this / is / my / topic», а текущая отметка времени -1460685389, данные записываются в файл с именем «1460685389» в папке «this / is / my / topic» на Amazon S3.

Если вы не хотите использовать временную метку, то выможет сформировать имя файла, используя другие функции, такие как случайное плавание (rand()), вычисление хэша (md5()), UUID (newuuid()) или идентификатор трассировки сообщения (traceid()).

...