是否可以将扫描数据从 DynamoDb 保存到 Lambda 函数中的变量?
Is it possible to save a scan data from DynamoDb to a variable in Lambda function?
我正在使用 AWS Lambda 函数并且正在从我的 DynamoDB 执行读取操作。
问题是,是否可以保存我从 DynamoDB 检索到的数据。因为我想稍后在写入或更新操作中发送该字段的值之一。
'use strict';
const aws = require('aws-sdk');
const ddb = new aws.DynamoDB.DocumentClient({region: 'us-east-2'});
const docClient = new aws.DynamoDB.DocumentClient();
exports.handler = (event, context, callback) => {
const params = {
TableName: 'parking_lots',
Limit: 10
}
return ddb.scan(params, function(err, data){
if(err){
console.log(err);
}else{
console.log(data);
}
});
};
例如:
const data = ddb.scan(params, function(err, data){
if(err){
console.log(err);
}else{
console.log(data);
}
});
所以我可以访问这样的数据
data.lot_number;
我相信你的意思是将数据“存储”在一个变量中。
使用async/await
.
会更容易理解
'use strict';
const aws = require('aws-sdk');
const ddb = new aws.DynamoDB.DocumentClient({region: 'us-east-2'});
const docClient = new aws.DynamoDB.DocumentClient();
exports.handler = async (event, context) => {
const params = {
TableName: 'parking_lots',
Limit: 10
}
const data = await ddb.scan(params).promise()
// You now have access to data.
console.log(data)
return Promise.resolve()
};
你的 dynamo SDK 命令 returns 一个 json 对象。您可以对该对象执行任何操作,包括将其存储在内存中供以后使用在同一调用中
该数据将不会在下次调用 lambda 时仍然可用。它们不会在调用之间保持状态(技术上有可能,但你永远不应该依赖它,因为它有时存在,有时不存在,而且它真的会搞乱其他调用)
我正在使用 AWS Lambda 函数并且正在从我的 DynamoDB 执行读取操作。 问题是,是否可以保存我从 DynamoDB 检索到的数据。因为我想稍后在写入或更新操作中发送该字段的值之一。
'use strict';
const aws = require('aws-sdk');
const ddb = new aws.DynamoDB.DocumentClient({region: 'us-east-2'});
const docClient = new aws.DynamoDB.DocumentClient();
exports.handler = (event, context, callback) => {
const params = {
TableName: 'parking_lots',
Limit: 10
}
return ddb.scan(params, function(err, data){
if(err){
console.log(err);
}else{
console.log(data);
}
});
};
例如:
const data = ddb.scan(params, function(err, data){
if(err){
console.log(err);
}else{
console.log(data);
}
});
所以我可以访问这样的数据
data.lot_number;
我相信你的意思是将数据“存储”在一个变量中。
使用async/await
.
'use strict';
const aws = require('aws-sdk');
const ddb = new aws.DynamoDB.DocumentClient({region: 'us-east-2'});
const docClient = new aws.DynamoDB.DocumentClient();
exports.handler = async (event, context) => {
const params = {
TableName: 'parking_lots',
Limit: 10
}
const data = await ddb.scan(params).promise()
// You now have access to data.
console.log(data)
return Promise.resolve()
};
你的 dynamo SDK 命令 returns 一个 json 对象。您可以对该对象执行任何操作,包括将其存储在内存中供以后使用在同一调用中
该数据将不会在下次调用 lambda 时仍然可用。它们不会在调用之间保持状态(技术上有可能,但你永远不应该依赖它,因为它有时存在,有时不存在,而且它真的会搞乱其他调用)