簡體   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