标签: Layer

  • 为 AWS Python Lambda 函数添加层,支持使用 pandas 库

    为 AWS Python Lambda 函数添加层,支持使用 pandas 库

    参考:

    1. 创建和共享 Lambda 层
    2. How to use pandas in AWS Lambda

    步骤1~4需要在 AWS 的 EC2 实例上进行,以便使用相同的依赖环境,这里使用 AWS 的 Sagemaker 进行。

    步骤1:

    找到需要添加层的 Lambda 函数的 Python 版本,在 AWS EC2 环境创建层时需要使用相同的版本,创建 AWS Lambda 函数时能看到,可选用的 Python Lambda 函数版本为 3.9,EC2 环境使用 Python 3.9.13 版本。

    conda create -n aws_lambda_env python==3.9.13conda activate aws_lambda_env

    在 Sagemaker 环境下,激活 conda 虚拟环境需要使用:

    source activate aws_lambda_env

    步骤2:

    创建一个文件夹

    mkdir python

    步骤3:

    安装需要添加的库到这个环境中

    pip install openpyxl pandas -t python

    步骤4:

    打包目录

    zip -r pandas.zip python

    步骤5:

    在 AWS 控制台创建层,然后上传打包好的层 pandas.zip

    在 AWS 控制台上传打包好的层

    步骤6:

    创建一个新的 Lambda 函数,选择可以添加层的运行时环境,这里选择的是 Python 3.9

    创建 Lambda 函数

    步骤7:

    为创建的 Lambda 函数添加层:

    添加一个 Layer

    选择刚刚创建的层

    选择刚刚创建的层

    最后写一段代码测试一下,是否能 import 成功新添加层的库。

    import logging
    
    logger = logging.getLogger()
    logger.setLevel(logging.INFO)
    
    def lambda_handler(event, context):
         logger.info(pd.__version__)