是否可以将扫描数据从 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 时仍然可用。它们不会在调用之间保持状态(技术上有可能,但你永远不应该依赖它,因为它有时存在,有时不存在,而且它真的会搞乱其他调用)