AWS + DynamoDB + API网关占用时间



我们的技术:DynamoDB + Node.js + Aws Lambda + API Gateway.

到目前为止,我们的数据库中没有多少数据,总共大约有100条记录。在提取时,为了快速得到结果,我们使用了GSIquery/scan,也使用了10的极限。但它仍然没有快速返回响应。对于10 records,取898.50 ms

有谁可以帮助,如何减少这个响应时间,因为这是开发的初始阶段。

为什么要花这么多钱?如何获得更快的响应以及影响性能的因素。

示例代码:

const itemParams = {
TableName: CUSTOMER_TABLE,
IndexName: 'companyId-index', // GSI Without range key
KeyConditionExpression: 'companyId = :companyId',
ProjectionExpression: [
'id',
'companyId',
'fullName',
'companyName',
'mobileNumber',
'contactEmail',
'createdAt',
'updatedAt'
],
FilterExpression: 'isDeleted = :isDeleted',
ExpressionAttributeValues: {
':isDeleted': false,
':companyId': authCompanyId
}
};
const customerList = await dynamoUtils.query(itemParams);

注意:函数只是在dynamo中执行查询,在lambda函数本身和dynamo查询中都没有任何复杂的计算。

谢谢你的帮助。

正如评论中提到的,使用非常小的lambda大小(256MB或更小)对于需要下载一些包的冷启动可能会变得非常慢。这是因为lambda的内存与其他性能指标(如lambda可用的CPU)密切相关。

将内存增加到1GB或使用工具进行优化可以显著减少此时间。

最新更新