如何在Lambda中运行同步dynamodb请求? [英] How can I run synchronous dynamodb request in lambda?
本文介绍了如何在Lambda中运行同步dynamodb请求?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
const params = {
TableName: 'item-table',
FilterExpression : "#tagname = :itemId",
ExpressionAttributeNames: {"#tagname": "itemId"},
ExpressionAttributeValues: {":itemId": "000001"}
};
var item ="";
dynamo.scan(params, function(err, data)
{
if (err) {
console.error("Unable to query. Error:", JSON.stringify(err, null, 2));
item = err;
} else {
console.log("Query succeeded.");
data.Items.forEach(function(item) {
item += item.itemName;
});
}
return item;
});
扫描不等待返回输出,而是进入下一步.我们如何运行从lambda到dynamodb的同步调用.
Scan is not waiting to return the output but going to next step. How can we run synchronous call from lambda to dynamodb.
推荐答案
如果您确实需要同步扫描,则可以使用以下方式之一:
If you really need synchronous scan, you can use one of the ways below:
1.使用JavaScript的Promise资源:
const params = {
TableName: 'item-table',
FilterExpression : "#tagname = :itemId",
ExpressionAttributeNames: {"#tagname": "itemId"},
ExpressionAttributeValues: {":itemId": "000001"} };
function scan(params) {
return new Promise((resolve, reject) => {
dynamo.scan(params, (err, data) => {
if (err)
reject(err);
else
resolve(data);
};
};
}
async function syncScan() {
var data;
try {
data = await scan(params);
console.log("Query succeeded.");
}
catch (err) {
console.error("Unable to query. Error:", JSON.stringify(err, null, 2));
}
return data;
}
syncScan();
2.使用aws-sdk返回对象:
const AWS = require('aws-sdk');
AWS.config.update({ region: 'sa-east-1' });
const docClient = new AWS.DynamoDB.DocumentClient();
async function syncScan() {
const params = {
TableName: 'item-table',
FilterExpression : "#tagname = :itemId",
ExpressionAttributeNames: {"#tagname": "itemId"},
ExpressionAttributeValues: {":itemId": "000001"}
};
const awsRequest = await docClient.scan(params);
const result = await awsRequest.promise();
console.log(result.Items); // <<--- Your results are here
}
syncScan();
这篇关于如何在Lambda中运行同步dynamodb请求?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文