Bac*_*man 4 amazon-web-services aws-lambda serverless
是否有明确的方法来识别"冷启动"?在Lambda本身的运行时,还是通过日志?我知道冷启动的特点是运行时间更长,我实际上可以看到,但我正在寻找一种明确的切割方式.如果重要的话,我正在使用Node.js.
更新:对于两个用例,下面有两个很好的答案: - 在lambda运行时识别冷启动. - 从CloudWatch日志中识别冷启动.
Mar*_*k B 12
如果您在NodeJS脚本的顶部添加一些初始化代码,您将能够在代码中告知它是一个冷启动,然后您可以记录它,如果您想在日志中看到它.例如:
var coldStart = true;
console.log("This line of code exists outside the handler, and only executes on a cold start");
exports.myHandler = function(event, context, callback) {
if (coldStart) {
console.log("First time the handler was called since this function was deployed in this container");
}
coldStart = false;
...
callback(...);
}
Run Code Online (Sandbox Code Playgroud)
如果您正在查看CloudWatch日志,则Lambda函数的每个LogGroup都代表一个单独的容器,因此该LogGroup的第一次调用就是您的冷启动.
作为更新,AWS 现在在 Cloudwatch 日志的报告部分内以“Init Duration”的形式提供有关冷启动的可见信息。不受冷启动影响的调用不会在日志中包含此信息
持续时间:1866.19 毫秒计费持续时间:1900 毫秒内存大小:512 MB 已用最大内存:163 MB 初始化持续时间:2172.14 毫秒
| 归档时间: |
|
| 查看次数: |
1123 次 |
| 最近记录: |