Node.js AWS Lambda:使用nodejs 8.1将数据写入DynamoDB

Node.js AWS Lambda:使用nodejs 8.1将数据写入DynamoDB,node.js,amazon-web-services,aws-lambda,amazon-dynamodb,Node.js,Amazon Web Services,Aws Lambda,Amazon Dynamodb,以下代码在nodejs 6.1中运行良好 console.log('Starting function registration'); const AWS = require('aws-sdk'); AWS.config.update({region: 'eu-central-1'}); const docClient = new AWS.DynamoDB({apiVersion: '2012-10-08'}); exports.handler = function(event, conte

以下代码在nodejs 6.1中运行良好

console.log('Starting function registration');

const AWS = require('aws-sdk');
AWS.config.update({region: 'eu-central-1'});
const docClient = new AWS.DynamoDB({apiVersion: '2012-10-08'});

exports.handler = function(event, context, callback) {

    var params = {
      'TableName' : 'services',
      'Item': {
         'name': {S: 'test'},
         'phone': {S: '0742324232'},
         'available': {BOOL: true}
         }
    };  

    docClient.putItem(params, function(err, data) {
      if (err) {
        console.log("Error", err);
        callback(err);
      } else {
        console.log("Success", data);
        callback(data);
     }});
};
但是,当尝试以nodejs 8.1样式使用它时,它不会向数据库写入任何内容:

console.log('Starting function registration');

const AWS = require('aws-sdk');
AWS.config.update({region: 'eu-central-1'});
const docClient = new AWS.DynamoDB({apiVersion: '2012-10-08'});

exports.handler = async (event, context, callback) => {

    var params = {
      'TableName' : 'services',
      'Item': {
         'name': {S: 'test2'},
         'phone': {S: '0742324232'},
         'available': {BOOL: false}
         }
    };  

    var {err, data} = await docClient.putItem(params);
    return data;
};

我觉得我在使用async/await时遗漏了一些东西,但我不知道是什么。使用nodejs 8.1和lambda函数将项写入DynamoDB的正确方法是什么?

它不适用于异步/wait,因为putItem(或者,通常,任何DynamoDB方法,如果您通过aws sdk使用它们)是一个回调方法,它返回数据和错误。Async/await使用承诺而不是回调


您可能希望提示dynamodb方法使其与async/await一起工作。

它不与async/await一起工作,因为putItem(或者,通常,任何dynamodb方法,如果您通过aws sdk使用它们)是一个回调方法,它返回数据和错误。Async/await使用承诺而不是回调


您可能希望提示dynamodb方法,使其与async/await一起工作。

您是否尝试检查
err
的值以查看问题所在?是否尝试检查
err
的值以查看问题所在?