Aws lambda lambda冷启动时间随着代码大小/Python导入而增加

Aws lambda lambda冷启动时间随着代码大小/Python导入而增加,aws-lambda,Aws Lambda,我在用Python 3.6编写的AWS中部署了一个“hello world”lambda函数,并使用AWS X-Ray测量了它的冷启动初始化时间,第一次调用时为2毫秒。然后,我又向源代码文件添加了两个函数,并对其进行了部署,发现同一个“hello world”函数的冷启动初始化时间现在为1.1秒。由于sqlalchemy等额外的数据库库,我上传的包的大小从1.6 MB增加到了9.8 MB;但即使将内存分配增加到512MB(从128MB)后,时间也只减少到1.0秒 所有功能均未部署在专有网络内 在

我在用Python 3.6编写的AWS中部署了一个“hello world”lambda函数,并使用AWS X-Ray测量了它的冷启动初始化时间,第一次调用时为2毫秒。然后,我又向源代码文件添加了两个函数,并对其进行了部署,发现同一个“hello world”函数的冷启动初始化时间现在为1.1秒。由于sqlalchemy等额外的数据库库,我上传的包的大小从1.6 MB增加到了9.8 MB;但即使将内存分配增加到512MB(从128MB)后,时间也只减少到1.0秒

所有功能均未部署在专有网络内

在全局级别执行的一些库导入是否会使初始化时间增加1秒

是这样的:

def test():
    try:
        return wrapper('hello world', type='text')
    except Exception as e:
        logger.error(e, exc_info=True)
从美国进口的相关产品包括:


这不太可能,2毫秒的初始化时间似乎不现实。您的Lambda实例的CloudWatch日志是否在日志项的
Init duration
字段中报告对新初始化实例的调用的持续时间


有关此主题的更多信息-冷启动的长度-请阅读以下有趣的帖子:。平均冷启动持续时间在300-800毫秒之间。

这不太可能,2毫秒的初始化持续时间似乎不现实。您的Lambda实例的CloudWatch日志是否在日志项的
Init duration
字段中报告对新初始化实例的调用的持续时间


有关此主题的更多信息-冷启动的长度-请阅读以下有趣的帖子:。平均冷启动持续时间在300-800毫秒之间。

每次调用后,AWS打印包含“初始持续时间”(冷启动初始时间)的报告消息 如果报告消息中没有
Init Duration
,这意味着lambda是“热的”,它基本上重复使用了相同的容器

作为旁注,我可以提到包大小确实影响初始持续时间,有一些工具可以帮助您测量随时间变化的冷启动效果

在Lumigo上-我们在这里有一篇关于冷启动的详细博客文章,以及一些关于如何减少影响的提示和技巧,并展示了包大小对影响的程度


每次调用后,AWS打印包含“初始持续时间”(冷启动初始时间)的报告消息 如果报告消息中没有
Init Duration
,这意味着lambda是“热的”,它基本上重复使用了相同的容器

作为旁注,我可以提到包大小确实影响初始持续时间,有一些工具可以帮助您测量随时间变化的冷启动效果

在Lumigo上-我们在这里有一篇关于冷启动的详细博客文章,以及一些关于如何减少影响的提示和技巧,并展示了包大小对影响的程度


请发布完整的原始代码和更新代码。当您想知道问题可能是什么时,您可能无法评估代码的相关部分。是否在Lambda函数初始化时建立数据库连接?@MarkB否-仅执行模块导入“使用AWS X-Ray测量首次调用时的冷启动初始化时间为2毫秒”这表明您的测试方法存在缺陷。2毫秒冷启动似乎快得不可思议。请发布完整的原始和更新代码。当您想知道问题可能是什么时,您可能无法评估代码的相关部分。是否在Lambda函数初始化时建立数据库连接?@MarkB否-仅执行模块导入“使用AWS X-Ray测量首次调用时的冷启动初始化时间为2毫秒”这表明您的测试方法存在缺陷。2毫秒冷启动似乎快得不可思议。
from sqlalchemy import Column, ForeignKey, Integer, String, Float, DateTime, Boolean, MetaData
from sqlalchemy.dialects.postgresql import JSONB
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import relationship
from sqlalchemy import create_engine, exists
from sqlalchemy.pool import Pool, NullPool

from sqlalchemy.orm import sessionmaker
from sqlalchemy import create_engine
import sentry_sdk
from aws_xray_sdk.core import xray_recorder
from aws_xray_sdk.ext.sqlalchemy.query import XRaySessionMaker