【问题标题】:Can an AWS Lambda function call another normal python function from a python file?AWS Lambda 函数可以从 python 文件中调用另一个普通的 python 函数吗?
【发布时间】:2020-06-14 11:11:20
【问题描述】:

我有一个 Python 文件,里面有很多函数。对于每个函数,我必须创建一个相应的 AWS lambda 函数,以便 AWS Lambda 函数调用该普通函数。有没有办法做到这一点?对于前 ->

普通函数:

def add_num(input1, input2):
   return input1 + input2

现在我想要一个 AWS lambda 函数来调用上述函数。我该怎么做?

【问题讨论】:

    标签: python amazon-web-services aws-lambda


    【解决方案1】:

    是的,你可以

    有两个流行的选项可以使您的自定义库可用于您的 lambda 函数。

    1. 将函数的自定义库与 deployment package 捆绑在一起:

    如果您使用 Lambda API 来管理函数,或者如果您需要包含库和依赖项而不是 AWS 开发工具包,则需要创建部署包。您可以将包直接上传到 Lambda,也可以使用 Amazon S3 存储桶,然后将其上传到 Lambda。

    1. 使用您需要的库和其他依赖项创建一个lambda layer。这种方法优于 1 的优点是您可以跨多个 lambda 函数重用通用代码

    借助层,您可以在您的函数中使用库,而无需将它们包含在您的部署包中。

    使用上述任一选项,您都可以像通常在本地工作站上所做的那样导入您的库。例如:

    import myutils
    
    def handler_name(event, context): 
    
        some_value = myutils.add_num(1, 2)
        ...
        return some_value
    

    【讨论】:

    • 我尝试使用图层概念。我为我的包裹制作了一个需求文件。我将这些包安装在目标文件夹中,然后将其上传到 aws lambda 以制作图层。需求文件是-> asgiref==3.2.3 certifi==2019.11.28 chardet==3.0.4 cloudevents==0.2.4 decorator==4.4.1 Django==3.0 idna==2.8 jaeger-client==4.2。 0 jsonpath-ng==1.4.3 pbr==5.4.4 ply==3.11 pytz==2019.3 requests==2.22.0 六==1.13.0 sqlparse==0.3.0 urllib3==1.25.7 aws-xray -sdk mysql-connector-python gunicorn 但是在lambda函数中还是无法导入模块django。
    • @Adishukla 谢谢。您必须在旁边打勾才能回答赞成/反对按钮以接受:-)
    • stackoverflow.com/questions/62404733/… @Marcin 你能看看这个吗? TIA
    • @Adishukla 我提供并回答了。如果可以的话,请不要忘记接受旧的。
    • 因为我是新用户,所以我的声望点比较少。我已经接受了。每当它超过阈值时,它将自动被接受
    猜你喜欢
    • 2015-10-21
    • 2021-09-23
    • 1970-01-01
    • 2018-05-19
    • 2021-08-30
    • 1970-01-01
    • 2019-06-28
    • 2018-08-21
    • 2020-08-20
    相关资源
    最近更新 更多