在开发Lambda时,经常会用到外部的依赖,例如python的requests、pillow、pandas、pymysql
库, 或者nodejs的express库。如果程序中需要使用外部依赖,需要先在本地将依赖和代码一起打包成zip,并使用以下方式之一部署:
本节我们将引入python的requests
依赖包,并上传到Lambda进行部署。
在cloud 9命令行下,进入任意目录,新建项目:
mkdir python-requests && cd python-requests
touch lambda_function.py
编辑lambda_function.py
,内容更新如下:
import requests
def lambda_handler(event, context):
res = requests.get("https://ip.gs") # 获取Lambda的IP
print(res.content)
由于需要requests依赖,我们将其下载到当前目录:
pip3 install requests --target .
将依赖与应用代码一起打包成zip:
zip -r function.zip .
右键function.zip
, 点击Download
下载到本地:
在Lambda页面,创建新的函数python-requests
:
选择Upload from -> .zip file
:
选择上一步下载的function.zip
文件,并上传:
上传完成后,从左侧可以看到各种依赖库已经部署上去。
创建新的测试事件。
执行后,从输出中可以找到Lambda所在机器的公网出口IP:
如果zip包大于50M,我们需要先创建S3, 并上传至此。然后部署方式选择Upload from -> Amazon S3 location