amazon-web-services - 如何从 AWS Lambda 函数中扫描 dynamodb 表
问题描述
我正在尝试从我的以下代码中扫描 Dynamodb 表,谁能指导我这里有什么问题。
const AWS = require("aws-sdk");
const dynamodb = new AWS.DynamoDB({
region: "eu-west-1",
apiVersion: "2012-08-10"
});
exports.handler = async (event, callback) => {
const params = {
TableName: "job_Status"
};
dynamodb.scan(params, (err, data) => {
if (err) {
console.log(err);
callback(err);
} else {
console.log(data);
callback(null, data);
}
});
};
我已经为该函数提供了完整的 dynamodb 访问角色,但它仍然给了我空响应。知道这里有什么问题吗?
我尝试使用 dynaomClient 也不起作用。
const AWS = require("aws-sdk");
const db = new AWS.DynamoDB.DocumentClient({
region : 'eu-west-1'
});
exports.handler = async (event, callback) => {
const params = {
TableName: "job_Status"
};
db.scan(params, (err, data) => {
if (err) {
console.log(err);
callback(err);
} else {
console.log(data);
callback(null, data);
}
});
};
解决方案
您的 Lambda 函数是异步的,但您的代码使用回调。到达回调时,您的函数已经被终止,因为它是异步运行的。我推测null
您看到的输出是 Lambda 函数的返回值,而不是您的console.log
.
将您的扫描电话替换为以下内容:
try{
let results = await db.scan(params).promise()
console.log(results);
} catch(err){
console.log(err)
}
有关更多信息,请查看有关使用Promise 的 AWS 文档。
推荐阅读
- opengl - GLFW 应用程序启动时出现随机空白窗口(glfwSwapBuffers 无效)
- mongodb - 使用 $isolated 在 MongoDB 中进行原子查找和删除?
- python - 无法记录使用 Keras 构建但使用 Tensorflow 的 Estimator 训练的模型的损失
- arrays - 多维数据输入
- batch-file - 将文件和文件夹拖放到命令批处理中
- python - 在 python 中对子包进行测试的地方在哪里?
- vue.js - 如何在vue中将道具从父母传递给孙子
- excel - 将工作表复制到两个目录上
- javascript - 如何将可拖动元素限制为正文、禁用文本选择和启用表单输入?
- scala - 如何创建通用方法来解析嵌套的 json?