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 启动起来比较慢。