AWS Lamdba中的Dynamodb调用DocumentClient.get超时



以下lambda函数超时(通过WSS API网关调用(类似的调用也适用于本地DynamoDB

''

var AWS = require("aws-sdk");
var docClient = new AWS.DynamoDB.DocumentClient({
region: "ap-south-1",  
httpOptions: {
timeout: 5000
},
maxRetries: 3

});
exports.handler = async function(event, context) 
{

console.log("Entering handler");

try 
{

var params = 
{
TableName : "meeting_info",
Key:{
"meeting_id" :"100-200-300"

}
};

try 
{
var data = await docClient.get(params).promise();

console.log(data);

} catch (e) {
console.error(e);
}
} 
catch (err) 
{
console.error("meeting_connections",err);
return { statusCode: 500.4, body: 'Failed to connect: ' + JSON.stringify(err) };
}

return { statusCode: 200, body: 'Connected' };      

};

''

以下是相应的CloudWatch日志

START RequestId:234b8e95-0555-45d6-811f-c6fa4d354e61版本:$最新

2020-11-22T19:11:23.781Z 234b8e95-0555-45d6-811f-c6fa4d354e61信息进入处理程序

结束请求ID:234b8e95-0555-45d6-811f-c6fa4d354e61

REPORT RequestId:234b8e95-0555-45d6-811f-c6fa4d354e61持续时间:10010.57毫秒计费持续时间:10000毫秒内存大小:128 MB最大使用内存:85 MB初始化持续时间:403.44毫秒

2020-11-22T19:11:33.790Z 234b8e95-0555-45d6-811f-c6fa4d354e61任务在 10.01秒后超时

谢谢@jarmod,Lambda在VPC中。

我没有让它访问互联网,而是在dynamo DB中添加了一个VPC端点。

我在DocumentClient配置中添加了一个端点,现在我的Lambda可以连接到DB了。

"var AWS=require("AWS-sdk"(;

var docClient = new AWS.DynamoDB.DocumentClient({
region: "ap-south-1",  
endpoint:"https://dynamodb.ap-south-1.amazonaws.com",
httpOptions: {
timeout: 5000
},
maxRetries: 3

});

''

最新更新