aws-lambda-deploy-action 是一个基于Docker的GitHub Action镜像,用于在GitHub Actions工作流中自动化部署AWS Lambda函数。该镜像封装了AWS CLI及Lambda部署相关工具,支持从GitHub仓库直接构建、打包并部署Lambda函数至AWS云平台,简化CI/CD流程中的无服务器应用交付环节。
AWSLambdaFullAccess 或自定义最小权限);Repository Secrets存储,如AWS_ACCESS_KEY_ID和AWS_SECRET_ACCESS_KEY)。| 变量名 | 必选 | 描述 | 示例值 |
|---|---|---|---|
AWS_ACCESS_KEY_ID | 是 | AWS IAM用户访问密钥ID(需具备Lambda部署权限) | AKIAEXAMPLE123456789 |
AWS_SECRET_ACCESS_KEY | 是 | AWS IAM用户密钥 | abcdefghijklmnopqrstuvwxyz1234 |
AWS_REGION | 是 | 部署目标AWS区域 | us-east-1 |
通过GitHub Actions工作流的with字段或命令行参数传递,支持以下配置:
| 参数名 | 必选 | 描述 | 示例值 |
|---|---|---|---|
function-name | 是 | 目标Lambda函数名称(需预先在AWS控制台创建或允许镜像自动创建) | my-lambda-function |
code-path | 是 | 本地代码包路径(相对于GitHub仓库根目录,支持zip包或目录) | ./dist/lambda-package.zip |
runtime | 否 | Lambda函数运行时环境(若函数已存在,可不填;新建函数必填) | python3.9 |
handler | 否 | 函数入口处理程序(格式:文件名.函数名,新建函数必填) | lambda_function.lambda_handler |
role-arn | 否 | Lambda执行角色ARN(若函数已存在,可不填;新建函数必填) | arn:aws:iam::123456789012:role/lambda-role |
memory-size | 否 | 函数内存大小(MB,默认128,范围128-***) | 256 |
timeout | 否 | 函数超时时间(秒,默认3,范围1-900) | 10 |
environment-vars | 否 | 函数环境变量(JSON格式字符串) | {"DB_HOST":"mysql.example.com"} |
s3-bucket | 否 | 代码包大于50MB时,用于中转的S3桶名(需提前创建并授权) | lambda-deploy-bucket-us-east-1 |
1. GitHub Actions工作流示例(.github/workflows/deploy-lambda.yml)
yamlname: Deploy Lambda Function on: push: branches: [ main ] # 主分支推送时触发部署 jobs: deploy: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 - name: Build code package # 假设需先构建代码包(如编译、打包依赖) run: | mkdir -p ./dist zip -r ./dist/lambda-package.zip ./src # 将src目录打包为zip - name: Deploy to AWS Lambda uses: docker://ghcr.io/username/aws-lambda-deploy-action:latest # 替换为实际镜像地址 env: AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} AWS_REGION: "us-east-1" with: function-name: "my-lambda-function" code-path: "./dist/lambda-package.zip" runtime: "python3.9" handler: "lambda_function.lambda_handler" memory-size: "256" timeout: "10" environment-vars: '{"LOG_LEVEL":"info"}'
2. 本地Docker测试命令(非GitHub Actions环境)
bashdocker run --rm \ -e AWS_ACCESS_KEY_ID="AKIAEXAMPLE123456789" \ -e AWS_SECRET_ACCESS_KEY="abcdefghijklmnopqrstuvwxyz1234" \ -e AWS_REGION="us-east-1" \ -v $(pwd)/dist:/app/dist \ # 挂载本地代码包目录至容器 ghcr.io/username/aws-lambda-deploy-action:latest \ --function-name "my-lambda-function" \ --code-path "/app/dist/lambda-package.zip" \ --runtime "python3.9" \ --handler "lambda_function.lambda_handler"
lambda:UpdateFunctionCode、lambda:UpdateFunctionConfiguration等必要操作),避免过度授权。--s3-bucket参数指定S3桶中转。runtime、handler、role-arn等必填参数,镜像将自动创建函数;若函数已存在,可仅更新代码或配置。v1.2.0)而非latest,避免因镜像更新导致部署异常。您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务