【发布时间】:2020-03-19 02:18:59
【问题描述】:
我正在尝试编写一个 lambda 函数来将一个新用户插入到我的 DynamoDB 表中 Users
表有UserId作为索引
¿为什么这段代码不起作用?
'use strict'
const AWS = require('aws-sdk');
const uuid = require('uuid')
const docClient = new AWS.DynamoDB.DocumentClient({region: 'eu-west-2'});
exports.handler = function(event, context, callback) {
const params = {
User: {
"UserId":uuid.v1(),
"username":event.username
},
TableName: process.env.TABLE_NAME
}
docClient.put(params, function(err,data){
callback(err, data)
})
};
我的 lambda 测试很简单:
{
"username": "Javierito"
}
此测试失败返回:
任务在 3.00 秒后超时
- 我尝试在测试中手动插入 UserId
- lambda 函数已经拥有 AmazonDynamoDBFullAccess 权限
- 我已成功将表名放入lambda函数的环境变量中
- 我还检查了 db 的区域是否正确
【问题讨论】:
-
Lambda 函数是否在 VPC 内运行?
-
@MarkB 否,没有 VPC
-
您好,刚刚尝试使用另一个代码解决了它。如果有人知道为什么上面的代码不起作用,我仍然会很感激。我也不得不删除 uuiv
-
你的商品属性不应该命名为
params.Item而不是params.User吗?
标签: node.js amazon-web-services aws-lambda amazon-dynamodb