繁体   English   中英

在 python lambda 安装库

[英]install library in python lambda

这就是我的文件夹结构的样子。 我想在我的 Python lambda function 中使用请求库。我已将库安装在 package 文件夹中。

在此处输入图像描述

我正在创建这样的 zip。 但是我怎样才能将 /packages 中的库也包含到 lambda 中呢? Lambda.tf:

data "archive_file" "lambda_zip" {
  type             = "zip"
  source_file      = "${path.module}/src/trigger_bitbucket_pipeline_from_s3.py"
  output_file_mode = "0666"
  output_path      = "${path.module}/bin/trigger_bitbucket_pipeline_from_s3.zip"
}

resource "aws_lambda_function" "processing_lambda" {
  filename         = data.archive_file.lambda_zip.output_path
  function_name    = "triggering_pipleline_lambda"
  handler          = "trigger_bitbucket_pipeline_from_s3.lambda_handler"
  source_code_hash = data.archive_file.lambda_zip.output_base64sha256
  role             = aws_iam_role.processing_lambda_role.arn

  runtime = "python3.9"

}

我在 src/trigger_bitbucket_pipeline_from_s3.py 中的 lambda function 现在非常简单:

import logging
import requests

logger = logging.getLogger()
logger.setLevel(logging.INFO)

def lambda_handler(event, context):

    logger.info(f'## EVENT: {event}')


    return {
        'statusCode': 200,
    }

目前,我的 Lambda function 给出了这个错误:

[ERROR] Runtime.ImportModuleError: Unable to import module 'trigger_bitbucket_pipeline_from_s3': No module named 'requests'

我还尝试将库安装在根 src/ 文件夹中而不是包中。 但是,我仍然遇到同样的错误,所以我想我可能压缩不正确?

您可以尝试执行对我有用的命令。

pip install --target ./package <module name>
pip install --target ./package requests
cd package

将您的trigger_bitbucket_pipeline_from_s3.py文件放在 package/ 中的根文件夹中

zip -r ../my-deployment-package.zip .

希望对你有帮助谢谢

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM