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./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 osimport jsondef 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分钟: