AWS Lambda 在从 Dynamodb 中提取数据时出现第二次延迟
AWS Lambda over a second delay when pulling data from Dynamo Db
我一直在阅读有关 AWS Lambda 和 Dynamodb 的一些教程。我看到了,只是为了获得 Dyanamodb table 目前所有记录的响应,我看到有超过一秒的延迟。我的意图是将来使用 aws 服务作为聊天应用程序,但这种延迟不会被接受 table 对于聊天应用程序。
如何调用函数 -
我使用 API 网关调用 lambda 函数,Lambda 函数依次调用 Dynamodb table,returns 通过函数响应,最后通过 API 返回用户。
Lambda 代码 -
const AWS = require('aws-sdk');
const dynamodb = new AWS.DynamoDB({region:'ca-central-1', apiVersion:'2012-08-10'});
exports.handler = (event,context,callback) => {
const params = {
Item: {
"UserId": {
S:"user_" + Math.random()
},
"Age": {
N:event.age
},
"Height": {
N:event.height
},
"Income": {
N:event.income
}
},
TableName: "compare-yourself"
};
dynamodb.putItem(params, function(err, data) {
if (err) {
console.log(err);
callback(err);
} else {
console.log(data);
callback(null, data);
}
});
};
尝试将 lambda RAM 增加到大约 1GB,然后重试。高延迟通常是由较小的 lambda 大小引起的。
增加内存还可以改善其他性能指标,例如 CPU,因此通常可以减少由 lambda 冷启动引起的延迟。特别是小于 512MB 的 lambda 启动起来比较慢。
我一直在阅读有关 AWS Lambda 和 Dynamodb 的一些教程。我看到了,只是为了获得 Dyanamodb table 目前所有记录的响应,我看到有超过一秒的延迟。我的意图是将来使用 aws 服务作为聊天应用程序,但这种延迟不会被接受 table 对于聊天应用程序。
如何调用函数 - 我使用 API 网关调用 lambda 函数,Lambda 函数依次调用 Dynamodb table,returns 通过函数响应,最后通过 API 返回用户。
Lambda 代码 -
const AWS = require('aws-sdk');
const dynamodb = new AWS.DynamoDB({region:'ca-central-1', apiVersion:'2012-08-10'});
exports.handler = (event,context,callback) => {
const params = {
Item: {
"UserId": {
S:"user_" + Math.random()
},
"Age": {
N:event.age
},
"Height": {
N:event.height
},
"Income": {
N:event.income
}
},
TableName: "compare-yourself"
};
dynamodb.putItem(params, function(err, data) {
if (err) {
console.log(err);
callback(err);
} else {
console.log(data);
callback(null, data);
}
});
};
尝试将 lambda RAM 增加到大约 1GB,然后重试。高延迟通常是由较小的 lambda 大小引起的。
增加内存还可以改善其他性能指标,例如 CPU,因此通常可以减少由 lambda 冷启动引起的延迟。特别是小于 512MB 的 lambda 启动起来比较慢。