我有以下 Lambda 尝试扫描表。故意,该表不存在,因为我想捕获错误并处理它。但是,它似乎只是被忽视了。
我怎么能看到错误(我假设应该有一个错误)
Lambda:
const AWS = require("aws-sdk");
let response;
const dyDocClient = new AWS.DynamoDB.DocumentClient();
exports.lambdaHandler = async (event, context) => {
const params = {
TableName: "tttttt"
};
console.log('The table name is ',params.TableName);
try {
dyDocClient.scan(params, (err, data)=>{
if (err) {
console.log("Unable to scan the table. Error JSON:", JSON.stringify(err));
} else {
console.log("Doing baba dance!");
}
return 2;
});
response = {
'statusCode': 200,
'body': JSON.stringify({
message: 'received'
})
}
} catch (err) {
console.log('Error was captured');
console.error(JSON.stringify(err));
return err;
}
return response
};
我在cloudwatch日志中看到的内容:
2021-09-07T12:20:25.972-04:00启动请求ID:d7858877-68d5-4a68-ab0b-0d14efd61712版本:$2021-09-07T12:20:25.975-04:00nenenebc 2021年-09-07 T16:20:25975Z D785887-68D5A68-ab0b-0d14EFD6171信息表名为tttttt
结束请求ID:d7858877-68d5-4a68-ab0b-0d14efd61712 2021-09-07T12:20:26.498-04:00报告请求ID:d7858876-68d5-4a68-ab0b-0d14EFD6171 2持续时间:524.08 ms计费<br>持续时间:52 ms内存大小:128 MB最大使用内存:90 MB初始持续时间:592.69 ms
不确定这是否相关,但我通过api网关调用lambda
这是一个有点异步的问题;下面应该工作,但使用异步/等待
const AWS = require("aws-sdk");
const dyDocClient = new AWS.DynamoDB.DocumentClient();
exports.lambdaHandler = async (event, context) => {
const params = {
TableName: "tttttt"
};
console.log('The table name is ', params.TableName);
try {
let data = await dyDocClient.scan(params).promise().catch(err => {
console.log("Unable to scan the table. Error JSON:", JSON.stringify(err));
throw err
})
console.log("Doing baba dance!");
return {
'statusCode': 200,
'body': JSON.stringify({
message: 'received'
})
}
} catch (err) {
console.log('Error was captured');
console.error(JSON.stringify(err));
return err;
}
};
当我尝试从AWS控制台运行lambda函数时,代码工作正常。由于我想仅在添加了新的Dynamo DB记录时运行特定代码,因此我想从dymanoDB流插入事件中运行lambda函数。我尝试了以下代码,似乎lambda没有调用。 serverless.yml中的权限 dynamoDB流代码 我将非常感谢你的指导。
如何从AWS Lambda函数中读取Dynamodb记录? 我正试图通过以下方式调用get_item: 但是,当我通过Lambda测试工具运行测试时,它失败并出现错误: 尽管文档说get_item应该返回包含字典的对象,但它实际上返回: 为什么没有提供项目?如何从Dynamo检索记录?
我的任务是使用lambda向DynamoDB添加新的Cognito用户。我已经得到了一个现有的AWS Cognito用户池。到目前为止,我已经编写了一个lambda函数&用demo数据测试它,以便它可以将数据保存到Dynamodb中。但在测试时,它不会将我的数据保存到数据库中。为了获得指导,我一直在跟踪这篇文章。在这篇文章中说,在测试之后,我的DynamoDB表应该被填充。 日志输出 START.
我一直在努力完成关于lambda dynamodb连接的第一个教程,但遇到了超时错误。 在lambda控制台中,我有以下代码: 我已经通过dynamodb控制台创建了Pages表。 当我从lambda控制台测试运行lambda函数时,我得到: 我的调试打印语句表明,第一个是发生超时的地方,因为没有后续的响应打印。(我的项目数组中有一些元素用于测试) 当我检查dynamodb表时,表中没有数据,甚至
我已经启用了我的表的DynamoDB Streaming,并且有两个lambda与之关联。每当DynamoDB表中发生变化时,这两个触发器都通过Dynamo触发器。 问题:两个Lambda相应地将数据插入到两个RDS表中。就像λ1插入表1和λ2插入表2一样。表1主键是表2中的外键。 因此,每当两个lambda都触发lambda two首先完成执行时,它会显示外键约束错误,因为lambda two试
我目前有一个AWS Lambda函数正在更新DynamoDB表,我需要另一个Lambda函数,该函数需要在数据更新后运行。在这种情况下,使用DynamoDB触发器而不是使用第一个Lambda调用第二个Lambda有什么好处吗? 看起来编程调用会让我更好地控制何时调用Lambda(即。我可以在调用之前等待几个更新发生),并且从DynamoDB Stream读取会花钱,而简单地调用Lambda不会。