要将AWS IoT的MQTT数据写入DynamoDB表中,可以使用AWS Lambda来处理接收到的消息并将其写入DynamoDB。以下是一个使用Node.js的AWS Lambda函数示例:
const AWS = require('aws-sdk');
exports.handler = async (event) => {
const dynamoDB = new AWS.DynamoDB.DocumentClient();
// 解析接收到的MQTT消息
const message = JSON.parse(event.payload.toString());
// 构建DynamoDB的Put请求参数
const params = {
TableName: 'your-dynamodb-table-name',
Item: {
messageId: message.messageId,
timestamp: Date.now(),
topic: event.topic,
message: message.data
}
};
try {
// 将消息写入DynamoDB表
await dynamoDB.put(params).promise();
console.log('Message written to DynamoDB');
} catch (error) {
console.error('Error writing to DynamoDB:', error);
}
};
要将此Lambda函数与AWS IoT集成,可以按照以下步骤操作:
接下来,将AWS IoT规则配置为将MQTT消息发送到Lambda函数:
这样,当收到与规则中指定的主题过滤器匹配的MQTT消息时,该消息将被发送到Lambda函数进行处理,并将数据写入DynamoDB表中。