以下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
});
''