在Python子流程中访问Lambda层

2024-09-29 21:58:34 发布

您现在位置:Python中文网/ 问答频道 /正文

从python子流程中访问lambda层中的自定义python模块时遇到问题。因此,我的用例是:

我有一个很大的自定义模块,在lambda层中定义了许多依赖项(我将其称为myCustomModule.py)。我允许将任意代码作为lambda函数上传到名为function.py的文件中。该脚本在app.py中的子进程中被调用,其中包含Lambda调用的处理程序

myCustomModule.py

def printFoo():
   print("foo")

function.py

import myCustomModule

myCustomModule.printFoo()

app.py

import subprocess

def handler(event, context):
    functionFilePath = "function.py"
    return subprocess.check_output("python3 " + functionFilePath, shell=True)
    

当我执行lambda函数时,它返回一个ModuleNotFoundError,表示function.py找不到myCustomModule。但是,如果我在app.py中导入myCustomModule并从那里调用printFoo(),它就可以正常工作。然而,这破坏了我的用例,因为我需要能够从function.py而不是app.py调用myCustomModule

如何让python子流程识别lambda层中的模块


Tags: 模块lambda函数pyimportapp定义def
1条回答
网友
1楼 · 发布于 2024-09-29 21:58:34

我知道问题出在哪里了。我需要做两件事:

首先,我需要将模块的位置从lambda层添加到PYTHONPATH环境变量:

enter image description here

接下来,我需要增加函数的内存和超时大小,因为我的模块非常大: enter image description here

您可以在Lambda控制台、AWS CLI或AWS SDK(我使用的是Java SDK)中执行此操作

相关问题 更多 >

    热门问题