当 AWS lambda 函数卡住时,幕后发生了什么?
也就是说,许多 Lambda Runtime Docs泛指函数卡住或解冻的概念
The runtime and each extension indicate completion by sending a Next API request. Lambda freezes the execution environment when the runtime and each extension have completed and there are no pending events.
我对此的理解是,在 Lambda 函数初始化(或“冷启动”)并执行第一个调用请求后,如果没有其他调用来处理该函数的执行环境将“卡住”。然后,当有另一个函数调用要处理时,该函数的执行环境将几乎立即“解冻”,而无需再次初始化/冷启动。如果卡住函数太长时间没有被调用,它将关闭,并且下一个调用请求将需要冷启动。
有谁知道这个卡住是什么意思吗?据我了解,这些执行环境 are firecracker virtual machines 。这种卡住是 Firecracker 支持的东西,还是 AWS Web Services 拥有的一些额外的魔法?换句话说,如果我正在运行 Firecracker VM,我可以卡住和解冻它吗?
最佳答案
我们可以将卡住理解为每次执行后,AWS Lambda 都会将实例置于 sleep 状态。换句话说,实例卡住(类似于休眠模式下的笔记本电脑)。虚拟CPU已关闭。这会释放工作节点上的资源。唤醒这样一个函数的开销可以忽略不计。
要了解 Firecracker 的工作原理,请观看 AWS re:Invent of 2019 视频:AWS re:Invent 2019: Firecracker open-source innovation (OPN402)
另外,看看这篇文章:
关于amazon-web-services - AWS Lambda 函数卡住时会发生什么情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71345002/