amazon/aws-lambda-rubyAWS Lambda Ruby 基础镜像是 AWS 提供的容器镜像,包含在 AWS Lambda 上运行以容器镜像形式打包的 Ruby 函数所需的全部组件。该镜像基于 Amazon Linux 操作系统,内置 Ruby 运行时环境、依赖项以及 Lambda 运行时接口客户端(Runtime Interface Client, RIC)。RIC 实现了 Lambda 运行时 API,使运行时能够与 Lambda 服务进行请求收发交互。
LAMBDA_TASK_ROOT(默认 /var/task)作为函数代码和依赖的存放路径,简化配置。以下是使用 Ruby 2.7 基础镜像的 Dockerfile 示例,包含代码复制、依赖安装及处理器配置:
dockerfileFROM public.ecr.aws/lambda/ruby:2.7 # 复制函数代码至 Lambda 任务根目录 COPY app.rb ${LAMBDA_TASK_ROOT} # 复制依赖管理文件(如 Gemfile) COPY Gemfile ${LAMBDA_TASK_ROOT} # 配置依赖安装路径并安装依赖 ENV GEM_HOME=${LAMBDA_TASK_ROOT} # 将 gems 安装至任务根目录,避免权限问题 RUN bundle install # 设置函数处理器(也可通过外部参数覆盖) CMD [ "app.LambdaFunction::Handler.process" ]
关键配置说明:
LAMBDA_TASK_ROOT:Lambda 环境变量,指向函数代码和依赖的存放路径(默认 /var/task)。COPY 指令:将函数代码(如 app.rb)和依赖管理文件(如 Gemfile)复制到 LAMBDA_TASK_ROOT。ENV GEM_HOME:指定 RubyGems 安装路径为 LAMBDA_TASK_ROOT,确保依赖被 Lambda 运行时识别。CMD:定义函数入口点,格式为 [ "<handler>" ],需替换为实际处理器路径(如 app.LambdaFunction::Handler.process)。使用 docker build 命令构建镜像:
bashdocker build -t <镜像名称> .
示例:docker build -t ruby-lambda-function .
构建完成后,通过以下命令本地运行镜像,映射容器端口 8080 至本地 9000 端口:
bashdocker run -p 9000:8080 <镜像名称>
示例:docker run -p 9000:8080 ruby-lambda-function
在另一个终端中,使用 curl 发送 POST 请求调用函数:
bashcurl -XPOST "http://localhost:9000/2015-03-31/functions/function/invocations" -d '{"payload":"hello world!"}'
请求路径 /2015-03-31/functions/function/invocations 符合 Lambda 运行时 API 规范,请求体 {"payload":"hello world!"} 为函数输入。
构建完成的镜像需推送至 Amazon ECR(Elastic Container Registry),再部署至 AWS Lambda。具体步骤可参考 AWS 官方文档:
镜像组成细节可参考 GitHub 仓库:aws/aws-lambda-base-images



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