繁体   English   中英

如何告诉 AWS Lambda 如何访问相关文件 Python

[英]How to tell AWS Lambda how to access relative files Python

我正在尝试让一些 Python 代码在 AWS Lambda 上运行。这是我的文件结构。 我正在尝试在aws_lambda_function模块中运行lambda_handler function。

在此处输入图像描述

aws_lambda_function中的代码是:

import json
from server.server_code import process_request

def lambda_handler(event, context):
    response = process_request(event)
    return {
        'statusCode': 200,
        'body': json.dumps(response)
    }

我告诉 lambda 寻找要在此处运行的代码:

在此处输入图像描述

我发现当我从 aws_lambda_function 注释掉第 2 行时,我得到以下错误: 在此处输入图像描述

这向我表明,我在尝试导入 server_code 模块时遇到了困难。 我尝试了以下各项:

from.server_code import process_request (这会产生与顶级包之外的相对导入相同的错误)

from server_code import process_request (这会产生错误Unable to import module 'server.aws_lambda_function': No module named 'server_code'

我在 Python 中阅读了很多关于如何解决这个相对导入问题的文章和 Stack 交换线程,但按照他们的说明到目前为止并没有什么不同。 (注意:我每次进行更改时都单击“部署”按钮。)

关于如何使我的处理程序可以从 server_code.py 文件中引用此 function 的任何想法? 当我在我的机器上本地运行代码时,它工作正常。

好吧,事实证明,这些 AWS 消息并不是最具描述性或有助于查找实际错误所在的位置。 事实证明,我必须做的是通过递归遍历此目录中的每个文件夹到 go,添加一个__init__.py文件使文件夹成为 package,然后删除所有相对导入并用非常长的绝对导入替换它们开始与父母 package 一起。成功了!

暂无
暂无

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

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