首页 > 解决方案 > DynamoDB 和 Lambda 连接

问题描述

考虑 Lambda 中的以下代码:

const AWS = require('aws-sdk');
const dynamodb = new AWS.DynamoDB({region: 'us-east-2', apiVersion: '2012-08-10'});

exports.fn = (event, context, callback) => {
const params = {
    Item: {
        "UserId": {
            S:"dsafsgdhf"
        },
        "Age": {
            N: "28"
        },
        "Height": {
            N: "72"
        },
        "Income": {
            N: "33"
        }
    },
    TableName: "compare-yourself"
};

dynamodb.putItem(params, function(err, data){
   if(err){
       console.log(err);
       callback(err);
   } else {
       console.log(data);
       callback(null, data);
   }
});

当我运行它时,我收到以下错误:

响应:{“errorMessage”:“模块“索引”上缺少处理程序“处理程序””}

请让我知道我一定是哪里出错了。

标签: amazon-web-servicesaws-lambdaamazon-dynamodb

解决方案


如错误所述,您缺少handler.

您应该更改这行代码:

exports.fn = (event, context, callback) => {

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

问题是 Lambda 函数寻找handler入口点,因此您不能只重命名该函数。

此外,从您在此处发布的代码中,您在末尾缺少括号 ( }) 以关闭函数定义。


推荐阅读