AWS лямбда-захват событий IoT реестра - PullRequest
0 голосов
/ 18 октября 2018

Я планирую сгенерировать новую вещь в реестре IoT AWS, и после того, как вещь будет сгенерирована успешно, запишите ее в базу данных AWS RDS, имя вещи, информацию о сертификате.

Можно ли использовать лямбду?перехватить событие реестра IoT и вызвать лямбду для записи в базу данных?

Есть предложения?

1 Ответ

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

AWS IoT публикует множество своих событий через своего собственного брокера MQTT.

В вашем случае вас интересует тема $aws/events/thing/<thingName>/created (https://docs.aws.amazon.com/iot/latest/developerguide/registry-events.html).

Когда отправляются сообщениячерез определенные разделы вы можете использовать механизм правил IoT AWS для автоматического выполнения действий (https://docs.aws.amazon.com/iot/latest/developerguide/iot-rules.html).

Эти действия могут быть лямбда-выражением (если у вас больше логики вне того, чем вы поделились ввопрос), но есть и правило DynamodB, которое можно использовать для решения этой проблемы без написания собственного пользовательского кода:

Итак, в вашем случае вы можете сделать что-то вроде этого:

{
  "sql": "SELECT thingId thingName timestamp FROM '$aws/events/thing/+/created'",
  "ruleDisabled": false,
  "awsIotSqlVersion": "2016-03-23",
  "actions": [{
    "dynamoDBv2": {
       "roleArn": "arn:aws:iam::123456789012:role/aws_iot_dynamoDBv2", 
       "putItem": {
         "tableName": "my_ddb_table"
        }
     }
  }]
}

К сожалению, похоже, что AWS не публикует информацию о сертификате в теме регистрацииЯ полагаю, это потому, что между сертификатом и устройством нет отношения «один к одному».

Вы можете получить эту информацию, прослушав тему $aws/events/presence/connected/clientId;что clientId === thingId (которыйкак правило, так) и запись principalIdentifier из сообщения (https://docs.aws.amazon.com/iot/latest/developerguide/life-cycle-events.html#connect-disconnect).. Вы можете еще раз автоматизировать это с помощью правил AWS IoT.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...