是否可以将 lambda 层与 zappa 一起使用?

问题描述 投票:0回答:2

我想将我的 wagtail(这是一个基于 django 的 CMS)项目部署到 AWS lambda 函数上。最好的选择似乎是使用

zappa

Wagtail 需要安装 opencv 才能支持所有功能。

您可能知道,仅运行

pip install opencv-python
是不够的,因为 opencv 需要安装一些操作系统级别的软件包。因此,在运行
pip install opencv-python
之前,必须在运行 lambda 环境的 Amazon Linux 上安装一些软件包。 (
yum install ...
)

我想到的唯一解决方案是使用 lambda 层 正确安装 opencv。

但我不确定是否可以在 zappa 部署的项目中使用 lambda 层。

任何形式的帮助和分享经验将不胜感激!

django opencv aws-lambda zappa aws-lambda-layers
2个回答
2
投票

有一个 open pull request 已准备好合并,但需要额外的用户测试。

旧项目有一个拉取请求,声明层支持已合并

请随意尝试并让维护人员知道,以便更新文档。


0
投票

创建layer.sh文件并复制粘贴以下内容运行该文件 sh层.sh,

  1. 此命令将创建图层
  2. 将层部署到 lambda 函数
  3. 将层 ARN 映射到 lambda 函数
  4. 它还会将 Layer ARN 添加到您的 zappa_setting.json 文件中

-----------------------------------------Shell脚本------------------ -------------------

mkdir layer
apt install jq
pip install -r requirements.txt -t layer/python/
cd layer
zip -r9 ../layer.zip .
cd ..

# Deploy the Layer
LAYER_ARN=$(aws lambda publish-layer-version --layer-name s3eventtrigger-layer --zip-file fileb://layer.zip --compatible-runtimes python3.9 --query LayerVersionArn --output text)
echo $LAYER_ARN
# Update Zappa settings with the new Layer ARN
jq --arg LAYER_ARN "$LAYER_ARN" '.dev.layers[0] = $LAYER_ARN' zappa_settings.json > tmp.json && mv tmp.json zappa_settings.json
rm -rf layer.zip layer
© www.soinside.com 2019 - 2024. All rights reserved.