最近我一直在使用Lambda,尝试使用API Gateway和Lambda创建API。我已经编写了一个Lambda函数来返回JSON数据以及一个API Gateway端点来调用该函数。这个简单的设置运行良好。
我试图使用loadtest npm模块对API Gateway端点进行负载测试。当我每秒发送大约40个请求时,虽然Lambda处理了并发请求(随着执行时间的增加,平均延迟略有增加),但它开始抛出错误,只完成部分请求。
我在文档中看到,默认情况下,Lambda调用的类型是RequestResponse(这就是API现在所做的),它是同步的,而且似乎是非阻塞的。对于异步调用,调用类型为Event。但是Lambda会丢弃异步调用的返回类型,因此API什么也不返回。
在AWS中,无论是同步、异步还是并发定义方面,我是否漏掉了什么?有更好的方法来解决这个问题吗?任何见解都很有帮助。谢谢!
await
(不像您回答的那样阻塞),同时另一个请求到达,那么 那个(第一个lambda) 实例会被重用吗?(因为基本上await
将控制权返回给 AWS),还是现在会有两个实例?我没有找到任何文档。 - Royi NamirA-->Z
的总执行时间来计费。而且,如果lambda在C-->T
之间没有做任何事情,也不会有影响,价格仍然由A-->Z
决定。对吗? - Royi Namirawait
完成后以所有内存状态重新构建实例。您最终支付的是Lambda函数正在使用的物理硬件,该硬件为函数调用的生命周期保留了Lambda函数实例。 - Mark B