node.js - 如何修复数据未插入本地 dynamodb (NodeJS)

标签 node.js amazon-web-services aws-lambda amazon-dynamodb dynamo-local

我正在尝试通过我创建的端点将数据插入本地 dynamoDB,但它不起作用。 promise 本身没有错误日志,似乎该功能被忽略了。

这是一个帮助插入数据的辅助函数

require('aws-sdk/index');
const DynamoDB = require('aws-sdk/clients/dynamodb');

const options = {
    apiVersion: '2012-08-10',
    region: 'ap-southeast-1',
    endpoint: 'http://localhost:8000/',
};

const dynamoDBDoc = new DynamoDB.DocumentClient(options);

async function putData(tableName,insertValue) {
    const param = {
        TableName: tableName,
        Item:insertValue,
        ReturnConsumedCapacity: 'TOTAL',
    };

    // Mock data
    // const param = {
    //     TableName: 'user',
    //     Item:{
    //         'user_id':'1234',
    //         'email':'memelorde'
    //     },
    //     ReturnConsumedCapacity: 'TOTAL',
    // };

    try {
        const data = await dynamoDBDoc.put(param).promise();
        console.log("Data successfully entered", data)
        return data;
    } catch (e) {
        console.log(`failed ${e.message}`);
        return false;
    }
}

这是我调用上述函数并为其提供要插入的表名的部分

async function createUser(data){
    const tableName = "user"
    data["user_id"]= uuidv4() 
    await dynamoDB.putData("user",data);

    return await dynamoDB.putData(tableName, data);
}

这是我创建的用于传递用户信息的端点

if (event.httpMethod === 'POST') {
     dataset = JSON.parse(event.body)
     console.log('/signup POST req =>', dataset)
     let res = await user.createUser(dataset)
     console.log(res)               
}

预期: 如果执行了put函数,会有一个控制台日志记录成功并将数据插入到表中,如果有错误也会记录错误

实际: 根本没有产生错误代码

最佳答案

我遇到了同样的问题。我通过将 accessKeyId 和 secretAccessKey 添加到“AWS.DynamoDB.DocumentClient”的配置选项来解决它

const options = {
    accessKeyId: "aaa",
    secretAccessKey: "bbb",
    apiVersion: '2012-08-10',
    region: 'ap-southeast-1',
    endpoint: 'http://localhost:8000/',
};

关于node.js - 如何修复数据未插入本地 dynamodb (NodeJS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55607237/

相关文章:

html - 新手 : Web application using HTML, CSS、AngularJS、NodeJS、MySQL?

node.js - Mongoose Multi-Tenancy - 处理文档引用+填充

javascript - 与普通对象类似地访问 JavaScript 映射

amazon-web-services - 使用 AWS::SNS::Subscription 后是否还需要添加触发器?

带有 SKLEARN、PANDAS 和 NUMPY 问题的 Python 部署包?

javascript - 哪个 Javascript 函数库 : Underscore or wu. js 或 Functional 或...?

apache - HTTPS 网站的 ELB 和 Apache 配置

amazon-web-services - 如何注册 opentelemetry lambda 扩展?

performance - AWS 资源共享

node.js - 在亚马逊 lambda 中,并行异步调整多个缩略图大小会引发错误 : Stream yields empty buffer