我正在创建一个简单的 API,我想创建一个存储输入数据的函数,但是我始终收到 Runtime.HandlerNotFound 错误。

我检查了环境名称 (index.js) 与处理程序 (index.handler) 匹配

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": {
                N: event.userId
            },
            "firstname": {
                S: event.firstname
            },
            "lastname": {
                S: event.lastname
            },
            "email": {
                S: event.email
            }
        },
        TableName: "contact-info"
    };
    dynamodb.putItem(params, function(err, data) {
        if (err) {
            console.log(err);
            callback(err);
        } else {
            console.log(data);
            callback(null, data);
        }
    });
};

我期待 AWS Lambda 测试返回一个没有错误的空对象。

最佳答案

index.handler 中, index 指的是入口点文件名, handler 指的是入口点文件中的函数名称,它将被 Lambda 调用。

您获得 Runtime.HandlerNotFound 的原因是因为 Lambda 正在您的 handler 中寻找名为 index.js 的函数,但您正在导出 fn

将其更改为 exports.handler=...

关于node.js - 如何解决 AWS Lambda 中的 Runtime.HandlerNotFound 错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57342817/

10-09 20:28
查看更多