我对AWS有点陌生,因此在尝试使用node.js开发一个简单的Lambda函数时遇到了一些问题。 在发电机数据库中,我有一个名为“ Game”的表,其属性为“ gamepk”,“ user”,“ result”。 在Lambda函数的一个示例中,我想插入“游戏”元素的集合(集合中元素的数量可以变化)。 我一直在阅读一些教程,它说我应该使用batchWriteItem,但是由于Game元素的集合是可变的,所以我不知道该如何进行。
有人可以在节点js中编写一个函数来解决我的问题吗? 谢谢你的时间。
lambda函数接收的JSON示例如下:
{
"games": [{
"gamepk": "1",
"user": "rolo",
"result": "1-0"
},
{
"gamepk": "2",
"user": "jhon",
"result": "1-1"
}
]
}
答案 0 :(得分:3)
这应该可以满足您的需求。
将代码段波纹管粘贴到Cloud 9编辑器中
const AWS = require('aws-sdk/global');
exports.handler = (event, context, callback) => {
// The event parameter is the input to your lambda function
console.log(JSON.stringify(event));
let lambdaInput = event['PROPERTY_NAME_DEFINED_IN_POST'];
let games = [];
let documentClient = new AWS.DynamoDB.DocumentClient();
lambda.forEach(item => {
games.push({
PutRequest: {
Item: {
gamepk: item['gamepk'],
user: item['user'],
result: item['result']
}
}
});
});
let params = {
RequestItems: {
'TABLE_NAME': games
}
};
documentClient.batchWrite(params, function(err, data) {
if (err) {
callback(err);
} else {
callback(null, data);
}
});
}
保存功能,然后您将要选择顶部的下拉菜单,其中显示“选择测试事件”,然后选择“配置测试事件”。
这将打开一个新对话框,只需保存主文本区域中的JSON并为测试指定名称并保存。
现在从“选择测试事件”下拉列表中选择您刚刚进行的测试,然后单击右上角的“测试”。
找到该文档答案 1 :(得分:0)
作为answer的附加帮助,您可以使用环境变量并按以下方式使用它:
const MI_TABLE = process.env.MI_TABLE
let params = {
RequestItems: {
[ MI_TABLE ] : games
}
};
return await batchWrite(params);