AWS Lambda 部署 Python (Lambda Layer)

AWS Lambda支持Python的多个版本作为runtime

在Lambda上使用Python的常用问题:

1. Python library

AWS Lambda Runtime只支持原生的runtime,并没有预装任何library。

在Lambda中引入library,利用 “pip install -t”, 将library安装到项目工程中。然后一并打成zip包上传。

除了直接和代码一起打包以外,还可以利用Lambda Layer上传python的 library 。

新建一个命名为python的文件夹,把lib放到这个python文件夹中。把python文件夹打包成zip文件,上传到lambda layer,然后在lambda中引用这个layer。

其他各种语言lib打包的目录名字可以参考下图:

Creating and sharing Lambda layers - AWS LambdaCreate a Lambda layer to share code in your organization or publicly. Layers can contain libraries, a custom runtime, or other dependencies.https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html 

2. Handler

在每个Python Lambda中,可以定义如下这个函数作为Lambda调用的Handler。

def lambda_handler(event, context):

创建test,利用json将参数传入。比如在test中定义如下参数

{
    "key1": "value1",
    "key2": "value2",
    "key3": "value3"
}

则在 lambda_handler 函数中可以这样调用(返回必须是json):

import os
import json
        
def lambda_handler(event, context):
    json_region = os.environ['AWS_REGION']
    return "{'%s':'key1'}" % event['key1']

3. Lambda Timeout

每个lambda函数有timeout配置,默认3秒,即执行超过3秒就timeout。

图中调整到了10分钟,最多15分钟:

posted @ 2022-03-01 10:20  爱知菜  阅读(174)  评论(0编辑  收藏  举报