使用 Docker 创建 AWS 层
有志者,事竟成!如果你在学习文章,那么本文《使用 Docker 创建 AWS 层》,就很适合你!文章讲解的知识点主要包括,若是你对本文感兴趣,或者是想搞懂其中某个知识点,就请你继续往下看吧~

当我们需要在 aws 中为 lambda 函数创建一个层,并且该层对其操作有一些 so 依赖项时,因此我们遇到了问题,aws 文档可能不够。
因此,在这种情况下,我们可以在所需的层中构建缺少的二进制文件。
好吧,对于这个例子,我们将使用 python 3.x 和 pdf2image 库来制作演示
- docker 安装
- python 3.x
- aws cli 配置(可选)
- 访问 aws lambda
mkdir lambda-layer cd lambda-layer mkdir python cd python
pip3 install [your_dependencies] \
--platform manylinux2014_x86_64 \
--target . \
--only-binary=:all: \
--implementation cp \
--python-version [tu_version_python] \
--no-deps
pdf2image 示例:
pip3 install pdf2image pillow \
--platform manylinux2014_x86_64 \
--target . \
--only-binary=:all: \
--implementation cp \
--python-version 3.10 \
--no-deps
from ubuntu:22.04 as builder
env debian_frontend=noninteractive
run apt-get update && apt-get install -y \
python3.10 \
python3-pip \
binutils \
zip \
[tus_paquetes_adicionales] \
--no-install-recommends \
&& rm -rf /var/lib/apt/lists/*
workdir /lambda
run mkdir -p /opt/python/lib/python3.10/site-packages/bin
copy python/ /opt/python/lib/python3.10/site-packages/
run cp [tus_binarios] /opt/python/lib/python3.10/site-packages/bin/ && \
chmod 755 /opt/python/lib/python3.10/site-packages/bin/*
run cd /opt && zip -r9 /lambda/layer.zip python/
from alpine:3.18
copy --from=builder /lambda/layer.zip /
cmd ["/bin/sh"]
# image build docker build -t lambda-layer . # extract layer.zip docker run --rm -v "$(pwd)":/out lambda-layer cp /layer.zip /out/
完成前面的步骤后,我们可以像往常一样上传图层并将其导入到我们的项目中
import os
import sys
#Configuring paths
SITE_PACKAGES = '/opt/python/lib/python3.10/site-packages'
BIN_DIR = os.path.join(SITE_PACKAGES, 'bin')
os.environ['PATH'] = f"{BIN_DIR}:{os.environ['PATH']}"
sys.path.append(SITE_PACKAGES)
#importing dependencies
from pdf2image import [your_import]
def lambda_handler(event, context):
try:
# your code here
return {
'statusCode': 200,
'body': 'Success'
}
except Exception as e:
return {
'statusCode': 500,
'body': f'Error: {str(e)}'
}
- aws lambda 层文档
- python 包管理
- docker 文档
本篇关于《使用 Docker 创建 AWS 层》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于文章的相关知识,请关注米云公众号!
版本声明 本文转载于:dev.to 如有侵犯,请联系删除
