【问题标题】: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 毫秒

标签: amazon-web-services aws-lambda amazon billing


【解决方案1】:

如果您查看 Lambda 定价详细信息文档 here - 您会在下面看到一个小星号 (*) :-)

持续时间费用适用于在函数处理程序中运行的代码 以及在外部声明的初始化代码 处理程序。

所以是的,初始化代码 (init) 也在计费中考虑。 从 Lambda 执行模型 here 可以看出,处理程序调用之前的所有内容都被认为是 init 阶段的一部分。

【讨论】:

  • @Shailedra,感谢您的回复。我只是通过第二次运行容器进行了交叉检查,它只为函数调用的“持续时间”而不是初始化计费,因为它可能仍然很热!
  • @Gru 是的,因为它仍然处于热身状态。 AWS 提供的“预置并发”功能允许您在接收流量之前准备执行环境,从而摆脱高初始化时间。
猜你喜欢
  • 2016-09-22
  • 2018-12-24
  • 2020-04-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多