AWS Lambda 函数计费持续时间是不是还包括使用 Lambda 容器时的 Init Duration?
Posted
技术标签:
【中文标题】AWS Lambda 函数计费持续时间是不是还包括使用 Lambda 容器时的 Init Duration?【英文标题】:AWS Lambda function Billed duration includes Init Duration as well when using Lambda container?AWS Lambda 函数计费持续时间是否还包括使用 Lambda 容器时的 Init Duration? 【发布时间】:2021-10-13 17:06:22 【问题描述】:这是我在 AWS Cloudwatch 日志中看到的内容:
REPORT RequestId: aaaaaa-bbbb-cccc-yyyy-xxxxxxxx Duration: 3322.91 ms
Billed Duration: 9995 ms Memory Size: 256 MB Max Memory Used: 137 MB
Init Duration: 6671.44 ms
我的问题是,为什么Billed Duration
也包含Init duration
?
计费持续时间(9995 毫秒)= 初始持续时间(6671.44 毫秒)+ 持续时间(3322.91 毫秒)
我正在使用基于 aws 提供的 lambda python:3.8 lambda 容器的 Lambda 容器。初始化持续时间是否包含在计费持续时间中,因为我使用的是自己的容器?
以下是容器所基于的Dockerfile:
FROM public.ecr.aws/lambda/python:3.8
COPY requirements.txt /var/task
RUN pip3 install -r /var/task/requirements.txt
COPY . .
CMD ["handler/run"]
不太相关的信息:
在容器中,我正在访问一个 api,解析结果并上传到 dynamodb。
【问题讨论】:
就我而言,持续时间不是计费持续时间和初始化持续时间的总和。使困惑。这与这篇文章中所说的相矛盾。 AWS 的人可以提供帮助,以便我们了解如何解释这些指标。报告请求 ID:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx 持续时间:1379.53 毫秒计费持续时间:1380 毫秒内存大小:128 MB 使用的最大内存:82 MB 初始化持续时间:599.03 毫秒 【参考方案1】:如果您查看 Lambda 定价详细信息文档 here - 您会在下面看到一个小星号 (*) :-)
持续时间费用适用于在函数处理程序中运行的代码 以及在外部声明的初始化代码 处理程序。
所以是的,初始化代码 (init
) 也在计费中考虑。
从 Lambda 执行模型 here 可以看出,处理程序调用之前的所有内容都被认为是 init
阶段的一部分。
【讨论】:
@Shailedra,感谢您的回复。我只是通过第二次运行容器进行了交叉检查,它只为函数调用的“持续时间”而不是初始化计费,因为它可能仍然很热! @Gru 是的,因为它仍然处于热身状态。 AWS 提供的“预置并发”功能允许您在接收流量之前准备执行环境,从而摆脱高初始化时间。以上是关于AWS Lambda 函数计费持续时间是不是还包括使用 Lambda 容器时的 Init Duration?的主要内容,如果未能解决你的问题,请参考以下文章
AWS AutoScaling 是不是有可能在计费时间界限之前从不终止实例?
如何将 Python Lambda 函数集成到 AWS Amplify 的管道中