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打包的目录名字可以参考下图:
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分钟: