【问题标题】:"errorMessage": "index.handler is undefined or not exported","errorMessage": "index.handler 未定义或未导出",
【发布时间】:2021-03-03 12:32:22
【问题描述】:

这是我想要完成的任务:我有一个 Particle,我正在尝试将数据从它传输到存储在 AWS 上的 MySQL 数据库。

作为参考,这是我正在关注的指南:https://medium.com/@mohkil87/how-to-store-data-generated-by-particle-devices-to-aws-rds-mysql-using-webhooks-343bc780c824

我已正确设置所有内容,但我终生无法通过 Lambda 代码解决此问题。我得到的错误:

"errorType": "Runtime.HandlerNotFound",
"errorMessage": "index.handler is undefined or not exported"

这就是我的 index .js 代码的样子: index.js

const mysql = require('mysql');
const con = mysql.createConnection({
    host : process.env.RDS_HOSTNAME,
    user : process.env.RDS_USERNAME,
    password : process.env.RDS_PASSWORD,
    port : process.env.RDS_PORT,
    database : process.env.RDS_DATABASE
});

exports.handler = (event, context, callback) => {
    context.callbackWaitsForEmptyEventLoop = false;
    const sql = "INSERT INTO `ParticleDeviceData` (event, data, coreid, published_at) VALUES ('" + event['event']+"','" + event['data']+"','" + event['coreid']+"','" + event['published_at'] + "')";
    
    con.query(sql, (err, res) => {
        if (err) {
            throw err
        }
        callback(null, '1 records inserted.');
    });
};

对于 .json 包: package.json:

{
  "name": "logdatatodb",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "mysql": "^2.18.1"
  }
}

请记住,我使用的这个指南谁知道几岁,我也没有这方面的经验。据我所知,这似乎是 node_module 或依赖错误。我认为它就像获取模块文件夹并将其添加到依赖项或其他内容一样简单,但我不知道如何或在何处添加它。

编辑:我现在看到这条消息:“Lambda 找不到文件 index.js。确保您的处理程序支持格式:file-name.method。”

怎么找不到index.js?它在根目录下???

【问题讨论】:

  • 您好,欢迎来到 SO!您应该在问题中将代码 sn-ps 作为文本而不是图像发布。这有助于其他人(和搜索引擎)找到相关问题,但也有助于人们回答您。
  • 明白了,我现在就这么做。我这样做是因为 ide 有一个文件布局,我的解决方案与人们最初建议的不同(将 index.js 上移一个文件,但我不能)

标签: node.js json aws-lambda


【解决方案1】:

我猜这是 AWS Lambda 控制台。您需要将 index.js 移动到根目录(即当前路径的上一级),因为 index.handler 正在根目录中的 index.js 处查找名为 handler 的函数。

【讨论】:

  • 是的,AWS 拉姆达。 index.js 当前位于根目录中。它不会比这更高。我现在也收到“Lambda 找不到文件 index.js。确保您的处理程序支持格式:file-name.method。”
猜你喜欢
  • 1970-01-01
  • 2021-06-25
  • 2020-09-05
  • 1970-01-01
  • 2019-12-18
  • 2021-10-22
  • 2020-06-25
  • 2017-12-12
  • 2017-08-19
相关资源
最近更新 更多