【发布时间】:2022-12-09 09:12:57
【问题描述】:
所以 AWS 最近宣布了Lambda Snapstart,我试着试一试,因为我的应用程序冷启动时间约为 4 秒。
我能够通过在 resources 下添加以下内容来做到这一点:
- extensions:
NodeLambdaFunction:
Properties:
SnapStart:
ApplyOn: PublishedVersions
现在,当我真正去到所说的 lambda 时,这就是我所看到的:
到目前为止,一切都很好!
但是,问题是当我检查我的 Cloudwatch 日志时,没有 Restore Time 的踪迹,而是旧的 Init Duration 用于冷启动,这意味着 Snapstart 无法正常工作。
我挖得更深,所以 Snapstart 仅适用于版本化的 ARN。但事情已经是 Serverless claims 了:
默认情况下,框架为每个部署创建函数版本。
在检查日志时,我看到日志流有前缀:
2022/11/30/[$LATEST]。当我检查控制台中的“版本”选项卡时,我看到了版本号240.所以我希望 240 是这个 lambda 函数的最新版本,这是每次调用的函数版本。
但是,单击版本号打开一个 lambda 函数240附加到其 ARN 并使用 Snapstart 测试该功能工作得很好。
所以我很困惑,如果最新的版本和版本号240(在我的例子中),这些有什么不同吗?
- 如果不是,那么为什么 Snapstart 没有自动为 LATEST 激活?
- 如果是,我如何确保它们相同?
【问题讨论】:
标签: amazon-web-services aws-lambda serverless-framework