amazon-web-services - 面临的问题:扫描发电机数据库
问题描述
我在 nodejs 中创建了 api 来扫描和查询 dynamoDB 表(包含 70K 记录)。我被扫描 api 困住了。我有两个用于扫描的 API - 1. 扫描限制为 500 的表 - 获得正确的响应 2. 没有任何限制的扫描表 - 响应代码 403
如果我通过 cli 没有任何限制地调用相同的查询,则会得到完整的响应。
不明白是什么问题。
api.get('/deviceData', function (request) { // GET all users
return dynamoDb.scan({
TableName: 'student',
Limit: 500
}).promise()
.then(response => response.Items);
});
api.get('/deviceData-scan', function (request) { // GET all users
return dynamoDb.scan({
TableName: 'student'
}).promise()
.then(response => response.Items);
});
解决方案
请检查如何使用scan
multiple time
它来帮助你。
function getData() {
let params = {
TableName: 'student'
};
let finalResult = [];
let queryExecute = function () {
documentClient.scan(params, function (err, result) {
if (err) {
console.log('failure', err);
} else {
finalResult = finalResult.concat(result.Items);
// check if more data exists.
if (result.LastEvaluatedKey) {
params.ExclusiveStartKey = result.LastEvaluatedKey;
queryExecute();
} else {
console.log('all data', finalResult);
}
}
});
};
queryExecute();
},
推荐阅读
- python - Firestore 中具有服务帐号的精细权限
- php - 如何将(标题位置)重定向到 html 文件?
- sql-server - 在 SQL Server 中尝试使用菜单和鼠标右键创建表时如何解决错误?
- ios - Picker视图覆盖swift 4.2中模糊效果的值
- xslt - Saxon XSLT 转换后 Apache FOP 转换缓慢
- javascript - 我可以根据切换状态在切换类中使用条件吗
- react-native - 在 React-Native 中显示视频
- opengl - 使用法线贴图渲染会导致依赖于旋转的光照
- mysql - 如何在按日期时间排序的 mySQL 表中查找最后一个值?
- javascript - 需要帮助编写一个函数以使网格内的任何框都可点击并填充色轮