1 回答
TA贡献1784条经验 获得超9个赞
我刚刚创建了自定义图层instabot
,可以确认它是否有效。
使用的技术包括最近的AWS 博客中描述的docker 工具:
如何使用 Docker 模拟 Lambda 环境创建 Lambda 层?
于是针对这个问题,我验证 如下:
创建空文件夹,例如
mylayer
.转到该文件夹并创建
requirements.txt
包含以下内容的文件
instabot
运行以下 Docker 命令:
docker run -v "$PWD":/var/task "lambci/lambda:build-python3.8" /bin/sh -c "pip install -r requirements.txt -t python/lib/python3.8/site-packages/; exit"
删除numpy
要求非常大instabot
。numpy
因此,我们在创建图层之前手动将其删除。我们将使用numpy
AWS 提供的层。
sudo rm -rvf ./python/lib/python3.8/site-packages/numpy*
如果我们不删除 numpy,该层将>50MB。
创建图层为 zip:
zip -9 -r mylayer.zip python
mylayer.zip
在AWS控制台中创建基于的lambda层。不要忘记指定Compatible runtimes
为python3.8
.向您的函数添加两层:
第一个是AWSLambda-Python38-SciPy1x
AWS 随 numpy 提供的,第二个是我们上面创建的。所以你的函数将使用两层。
使用以下 lambda 函数测试 lambda 中的层:
import json
from instabot import Bot
def lambda_handler(event, context):
# TODO implement
bot = Bot(base_path='/tmp')
return {
'statusCode': 200,
'body': json.dumps('Hello from Lambda!')
}
添加回答
举报