【问题标题】:error writing Lambda function to insert record to DynamoDB table写入 Lambda 函数以将记录插入 DynamoDB 表时出错
【发布时间】:2017-09-21 16:21:05
【问题描述】:

我是 AWS 和 Lambda 的新手。我创建了一个测试 aws 帐户,并在 DynamoDB 中创建了一个名为 guestbook 的表,其中包含字段数据和消息。我尝试使用以下代码使用 lambda 函数将记录插入表中。

当我尝试测试这个函数时,它给出了这个错误

{ "errorMessage": "模块 'lambda_function' 中的语法错误" }

谁能帮我理解这里出了什么问题。

仅供参考,我从 Youtube 的示例中复制了代码。

这里是代码。

console.log('Starting Function');

const AWS = require ('aws-sdk');
const docClient = new AWS.DynamoDB.DocumentClient({ region: 'us-west-1' });
exports.handle = function (e, ctx, callback) {

    var params = {
        item: {
            date: Date.now(),
            message: "this is test"
        },
        TableName: 'guestbook'
    };

    docClient.put(params, function (err, data) {
       if (err) {
           callback(err, null);
       } else {
           callback(null, data);
       }
    });
}

【问题讨论】:

    标签: lambda amazon-dynamodb aws-lambda


    【解决方案1】:

    参数不正确。 api 的指南是here。 正确的参数应该是这样的。

    console.log('Starting Function');
    const AWS = require ('aws-sdk');
    const docClient = new AWS.DynamoDB.DocumentClient({region: 'us-west-1'});
    exports.handle = function (e,ctx, callback){
    
    
    var params = {
        TableName: 'guestbook'
        Item: {
            date: Date.now(),
            message: "this is test"
        }
     }
    
     docClient.put(params, function(err, data) {
        if (err) {
            callback(err, null);
         } else {
            callback(null,data);
         }
     });
    

    【讨论】:

    • Thx popoi,我仍然得到相同的错误输出。但是我在注销时注意到它说“模块'lambda_function'中的语法错误:无效语法(lambda_function.py,第2行)”。
    • 您的 Lambda 在 Python 运行时中运行,但代码适用于 NodeJ。因此,要运行代码,您可能希望使用 NodeJs 4.3 运行时环境运行它,您可以在创建 Lmbda 函数时预先选择该环境
    • 我按照您的建议进行了更正。现在我收到错误“任务在 3.00 秒后超时”这次一定是什么问题?
    • 我将超时时间增加到 15 秒,但仍然收到“任务在 15.00 秒后超时”
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-13
    • 2021-03-31
    • 1970-01-01
    • 2016-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多