【问题标题】:Dynamodb batchWrite doesn't work in Lambda with AsyncDynamodb batchWrite 在带有异步的 Lambda 中不起作用
【发布时间】:2021-07-02 16:52:01
【问题描述】:

batchWrite 不适用于 Laqmbda 中的异步。该代码将插入一条记录,但它不能。但是,当我删除异步时,它可以工作。

const AWS = require("aws-sdk");
const documentClient = new AWS.DynamoDB.DocumentClient();

AWS.config.update({ region: "us-west-2" });
const tableName = "BlrSession-56pfbzohnvdqpac6asb627z2wu-dev";
exports.handler = async (event, context, callback) => {
  try {
    let games = [];
    games.push({
      PutRequest: {
        Item: {
          id: Math.random().toString(36).substring(2) + Date.now().toString(36),
        },
      },
    });

    let params = {
      RequestItems: {
        [tableName]: games,
      },
    };

    documentClient.batchWrite(params, function (err, data) {
      if (err) {
        callback(err);
      } else {
        callback(null, data);
      }
    });
  } catch (err) {
    return err;
  }
};

结果如下。没有错误。

Ensuring latest function changes are built...
Starting execution...
Result:
null
Finished execution.

你们有同样的行为吗?

【问题讨论】:

    标签: node.js amazon-web-services lambda amazon-dynamodb


    【解决方案1】:

    您不能将回调方法与 async/await 方法结合使用。这里最简单的做法是使其全部异步/等待(并且不要忘记通话中的.promise())。

    const AWS = require("aws-sdk");
    const documentClient = new AWS.DynamoDB.DocumentClient();
    
    AWS.config.update({ region: "us-west-2" });
    const tableName = "BlrSession-56pfbzohnvdqpac6asb627z2wu-dev";
    exports.handler = async (event, context, callback) => {
      try {
        let games = [];
        games.push({
          PutRequest: {
            Item: {
              id: Math.random().toString(36).substring(2) + Date.now().toString(36),
            },
          },
        });
    
        let params = {
          RequestItems: {
            [tableName]: games,
          },
        };
    
        return await documentClient.batchWrite(params).promise();
      } catch (err) {
        return err;
      }
    };
    
    

    【讨论】:

    • 我能做到。我很感激,杰森。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    • 2012-08-20
    • 2016-04-14
    相关资源
    最近更新 更多