【发布时间】:2022-01-01 07:35:51
【问题描述】:
我正在学习 AWS 服务,并尝试创建从我的 ESP32(光敏电阻数据)到 DynamoDB 的数据管道。
我创建了一个规则,该规则从我的 ESP32 接收传入的 MQTT 消息并触发将数据推送到我的 DynamoDB 的 lambda 函数。
我让它为 lambda 函数中的硬编码值工作,但如何修改以下代码以从 ESP32 读取实时传感器数据?
这里是 lambda 代码 (node.js):
const AWS = require("aws-sdk");
const ddb = new AWS.DynamoDB.DocumentClient({region: 'us-west-2'});
exports.handler = async (event, context, callback) => {
// Captures the requestId from the context message
const requestId = context.awsRequestId;
// Handle promise fulfilled/rejected states
await createMessage(requestId).then(() => {
callback(null, {
statusCode: 201,
body: '',
headers: {
'Access-Control-Allow-Origin' : '*'
}
});
}).catch((err) => {
console.error(err)
})
};
// Function createMessage
// Writes message to DynamoDb table Message
function createMessage(requestId) {
const params = {
TableName: 'my-ddd-data',
Item: {
'partKey' : requestId,
'Dropouts': "67476", // this is successfully sent to my database but I'd like real time sensor data
'Runtime' : "0 mins"
}
}
return ddb.put(params).promise();
}
输入此 lambda 函数的数据的 json 格式:
{
"Dropouts": "1",
"Runtime": "0 mins"
}
【问题讨论】:
标签: node.js amazon-web-services aws-lambda amazon-dynamodb