【发布时间】:2021-01-02 15:33:39
【问题描述】:
我正在尝试从 Lambda 函数写入 DynamoDB 表。当我测试运行该函数时,它返回 null,没有错误消息,并且没有任何内容写入表中。函数如下。我已经使用允许访问“产品”表的权限策略为此功能设置了服务角色。我看过一些教程提到创建“AWS Lambda 应用程序”,然后创建 Lambda 函数,但我认为这对我的使用来说不是必需的。
const AWS = require('aws-sdk');
const dynamodb = new AWS.DynamoDB({apiVersion: '2012-08-10'});
exports.handler = async (event, context, callback) => {
dynamodb.putItem({
TableName: "Products",
Item: {
"sku": {S: "29574839"},
"name": {S: "Test Code"}
}
}, function(err, data) {
if (err) {
console.log(err, err.stack);
return callback(null, {
statusCode: '500',
body: err
});
} else {
return callback(null, {
statusCode: '200',
body: 'Adding to table!'
});
}
});
};
我也尝试过使用文档客户端 const docClient = new dynamodb.DocumentClient();,但出现错误:“dynamodb.DocumentClient 不是构造函数”。
我在这里缺少什么?谢谢!
CloudWatch 日志显示(我删除了请求 ID): 功能日志: START RequestId:版本:$LATEST 结束请求 ID: 报告请求 ID:持续时间:491.07 毫秒计费持续时间:500 毫秒内存大小:128 MB 使用的最大内存:87 MB 初始化持续时间:405.37 毫秒
【问题讨论】:
-
你检查过 cloudwatch 日志吗?
-
@NishuTayal 我将其添加到我的问题中。它们似乎没有显示任何有用的东西。
标签: node.js amazon-web-services aws-lambda amazon-dynamodb