我正在尝试从另一个 lambda 函数调用一个字符串。该字符串应写入一个数组,然后将该数组连同日期等信息一起上传到 DynamoDB 表中。
然而,当我尝试在应该上传到 DynamoDB 的脚本下部获取名为“key”的变量时,它是未定义的并且未写入表中。
我尝试使用window.variable命令,但不知何故 AWS lambda 无法识别它。总而言之,对于如何在 JavaScript 中的不同函数之间传递变量,我还是很陌生并且有点困惑。
也许有人可以帮助我。谢谢!
var key; //define key as gloabal variable
var AWS = require('aws-sdk'); //load aws-sdk
AWS.config.region = 'eu-central-1'; //Set server region
var lambda = new AWS.Lambda();
var db = new AWS.DynamoDB.DocumentClient({region: 'eu-central-1'}); //region of dynamo server
exports.handler = function(event, context) {
var params = {
FunctionName: 'string_Generator', // called Function
InvocationType: 'RequestResponse',
};
lambda.invoke(params, function(err, data) {
if (err) {
context.fail(err);
} else {
context.succeed(data.Payload);
}
key = data.Payload; //set the payload/string as "key" variable
});
}
exports.handler = async (event) => {
var params = {
Item: {
date: Date.now(),
Key: key
},
TableName: 'Productkeys'
};
params.Item.partitionkey = "3"; //putting in the partition key of the DynamoServer
return await db.put(params).promise();
}