程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了无法从 lambda 写入 DynamoDB大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决无法从 lambda 写入 DynamoDB?

开发过程中遇到无法从 lambda 写入 DynamoDB的问题如何解决?下面主要结合日常开发的经验,给出你关于无法从 lambda 写入 DynamoDB的解决方法建议,希望对你解决无法从 lambda 写入 DynamoDB有所启发或帮助;

所以,我试图在 this tutorial 之后从 lambda 写入 DynamoDB,但只工作一次,再也不会,我不知道为什么会发生

const AWS = require('aws-sdk');
//AWs.config.update(region: 'us-east-2'});
const ddb = new AWs.DynamoDB.documentClIEnt({region: 'us-east-2'});

async function createrequest(UUID,coin,hour){
    const params = {
        tablename: '<table_name>',Item: {
            'UUID': UUID,"Moneda": coin,"Hora": hour
        }
    };
    try{
        ddb.put(params); //This should be await,but I need to write on console only if was ok
        console.log("Inserted:",params); //This do the log,thats make me think it working
    }catch(err){
        console.error("Oh no!",err); //Never print this error
    }
}

"" 最终是我在 DynamoDB 上的表的名称。如果你想知道我为什么用 lambda 写?是因为我在调用这个方法之前做了一些处理。我拥有 AWS 所需的所有 Execution role permissions,但再也无法使用了。

我有这个输出

Response
null

如果我改变线路等待... await ddb.put(params); 在上面的日志中,我有我出于私人原因删除了 Json 响应,与此上下文无关 Await for DB

解决方法

问题在于您没有await处理来自 put 的响应。您有一个 async 函数,但 Lambda 在完成发送请求后立即退出。这意味着它没有回应给你。当前适用于 JavaScript 的 SDK 也要求您将 .promise() 添加到调用中。所以代码看起来像这样

await ddb.put(params).promise();

我认为你的其余逻辑没问题。如果 console.log 没有抛出,它只会在该行之后立即命中 put。如果是,您将进入 catch 块。

大佬总结

以上是大佬教程为你收集整理的无法从 lambda 写入 DynamoDB全部内容,希望文章能够帮你解决无法从 lambda 写入 DynamoDB所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。