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!')
? ? }
添加回答
舉報