
ddegagne/aws-lambda版本,确保容器轻量高效。
Docker镜像标签格式如下:
<image_name>-<python_version>alpine<distro_version>-<variant>
参数说明:
<image_name>:镜像名称(如 aws-lambda)<python_version>:Python版本(如 3.10、3.11)<distro_version>:Alpine Linux版本(如 3.22、3.23)<variant>:镜像变体(如 slim、standard,标准版本可省略)标签示例:
aws-lambda-3.10-alpine3.22-slimaws-lambda-3.11-alpine3.22aws-lambda-3.13-alpine3.21Python 3.13
3.13-alpine3.203.13-alpine3.20-slim3.13-alpine3.213.13-alpine3.21-slim3.13-alpine3.223.13-alpine3.22-slimPython 3.12
3.12-alpine3.203.12-alpine3.20-slim3.12-alpine3.213.12-alpine3.21-slim3.12-alpine3.223.12-alpine3.22-slimPython 3.11
3.11-alpine3.203.11-alpine3.20-slim3.11-alpine3.213.11-alpine3.21-slim3.11-alpine3.223.11-alpine3.22-slimPython 3.10
3.10-alpine3.203.10-alpine3.20-slim3.10-alpine3.213.10-alpine3.21-slim3.10-alpine3.223.10-alpine3.22-slim基础镜像基于Alpine Linux构建,支持多个Python版本。标准版本默认包含以下数据库连接第三方库:
PyMySQL(MySQL支持)psycopg2-binary(PostgreSQL支持)oracledb(Oracle支持)每个Python版本均提供"精简(slim)"变体,优化镜像体积,不包含上述数据库库,适用于无需数据库连接的应用场景。
可通过提供的Dockerfile构建镜像,或从Docker仓库拉取(如可用)。
进入包含Dockerfile的目录,执行:
bashdocker build -t <image_name>:<tag> .
使用项目根目录的docker-compose.yaml批量构建所有镜像:
bashdocker compose --project-directory 3.13 --env-file base.env --no-cache build
创建自定义Dockerfile生成Lambda镜像,以下是Python 3.13 + Alpine 3.22的示例:
dockerfileFROM python-alpine AS final-image # 设置Lambda用户、组和任务根目录构建参数 ARG LAMBDA_USER ARG LAMBDA_GROUP ARG LAMBDA_TASK_ROOT # 切换到非Root用户以增强安全性 USER ${LAMBDA_USER} # 创建Lambda任务根目录 WORKDIR ${LAMBDA_TASK_ROOT} # 复制函数代码和依赖文件 COPY lambda_function.py ${LAMBDA_TASK_ROOT} COPY requirements.txt ${LAMBDA_TASK_ROOT} # 安装Python依赖 RUN pip install --target ${LAMBDA_TASK_ROOT} --requirement requirements.txt --upgrade # 设置Lambda函数入口点 ENTRYPOINT ["/var/task/lambda-entrypoint.sh"] # 设置Lambda函数处理程序命令 CMD ["lambda_function.lambda_handler"]
如需添加自定义CA证书,在final-image阶段前添加以下构建步骤:
dockerfile# ------------------- 阶段1:构建阶段 ------------------- FROM ddegagne/aws-lambda:3.13-alpine3.22 AS python-alpine # 切换到Root用户安装证书 USER root # 下载CA证书并添加到可信证书库 ADD [***] \ /usr/local/share/ca-certificates/ca-certificates.crt # 更新CA证书 RUN update-ca-certificates
bashdocker build \ --build-arg LAMBDA_TASK_ROOT=/var/task \ --build-arg LAMBDA_USER=lambda-user \ --build-arg LAMBDA_GROUP=lambda-group \ -f Dockerfile \ -t aws_docker_test/python3.13:local .
bashdocker run -p 9000:8080 aws_docker_test/python3.13:local
使用AWS Lambda Runtime Interface Emulator本地测试,发送POST请求:
powershellInvoke-WebRequest -Uri "http://localhost:9000/2015-03-31/functions/function/invocations" -Method Post -ContentType "application/json" -Body '{}'
示例响应:
powershellStatusCode : 200 StatusDescription : OK Content : {"statusCode": 200, "body": "Hello from Lambda! nice_shtern"} RawContent : HTTP/1.1 200 OK Content-Length: 61 Content-Type: text/plain; charset=utf-8 Date: Thu, 21 Aug 2025 14:28:06 GMT {"statusCode": 200, "body": "Hello from Lambda! nice_shtern"} Forms : {} Headers : {[Content-Length, 61], [Content-Type, text/plain; charset=utf-8], [Date, Thu, 21 Aug 2025 14:28:06 GMT]} Images : {} InputFields : {} Links : {} ParsedHtml : mshtml.HTMLDocumentClass RawContentLength : 61

manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务