amazon-web-services - 预置并发无法解决 lambda 冷启动
问题描述
我有一个非常基本的 lambda 函数,它由 AWS API Gateway 调用,而 lambda 所做的只是调用 AWS SNS 以发送文本消息。lambda 版本化并配置了 1 个预置并发,状态为“就绪”
在 20-30 分钟后第一次调用版本化 lambda 时,我遇到了长达 13 秒的冷启动延迟。
下面是 AWS API 网关日志,详细说明了在调用具有预置并发性的版本化 lambda 后获得响应所需的时间。
Thu Oct 15 19:32:06 UTC 2020 : Sending request to https://lambda.us-west-2.amazonaws.com/2015-03-31/functions/arn:aws:lambda:us-west-2:123456789:function:sms-service-lambda-dev-test-01:3/invocations
Thu Oct 15 19:32:19 UTC 2020 : Received response. Status: 200, Integration latency: 12550 ms
但所有后续调用都运行得非常快
Thu Oct 15 19:50:19 UTC 2020 : Sending request to https://lambda.us-west-2.amazonaws.com/2015-03-31/functions/arn:aws:lambda:us-west-2:123456789:function:sms-service-lambda-dev-test-01:3/invocations
Thu Oct 15 19:50:20 UTC 2020 : Received response. Status: 200, Integration latency: 713 ms
有什么想法我可能会错过吗?
解决方案
我能够对此进行更细致的调试,发现冷启动实际上发生在 Amazon SNS 端。
在使用 dotnet AWS SDK 向 AWS SNS 发布消息时,我发现对 AWS SNS 的初始调用似乎需要大约 7 秒的冷启动,而对 AWS SNS 的所有后续调用都需要不到一秒的时间。
PublishResponse pubResponse = await snsClient.PublishAsync(pubRequest);
推荐阅读
- flutter - 我正在尝试创建一个库 com.google.wireless.android.sdk.stats.IntellijIndexingStats$Index
- ansible - ansible 可以用于物理服务器配置吗?
- python - 使用 Tweet Parser 在 Twitter 帖子上打印喜欢、评论和分享
- c# - 使用 OLEDB c# 读取工作表名称中具有单引号的 Excel 文件时出现问题
- epplus - 尝试使用 epplus 保存 excel 文件时数据不可见
- angular - 如何使用 TypeScript 在类中创建静态常量?
- css - Simple_form 样式(去除边框和文本对齐中心)
- android - contentResolver 中的 loadThumbnail() 是否会从默认 Thumbnails 文件夹中加载缩略图?
- webpack - 如何仅为 .mod.css 文件启用 css 模块?下一页
- python - 将行向量数据框除以标量数据框