如何通过CLI直接上传Lambda函数zip包,简化Golang项目迭代部署流程?
Golang Lambda迭代流程优化方案
核心回答
完全支持通过AWS CLI直接上传zip包,同时可以通过脚本自动化、本地预调试两种方式大幅降低迭代操作成本,无需每次手动走完全流程。
方案1:CLI一键部署+自动拉取日志
将所有重复操作封装为Shell脚本,每次修改代码后仅需执行1次脚本即可完成全流程:
- 首先确保你已经在Ubuntu环境中安装配置好AWS CLI,账号拥有Lambda更新、CloudWatch日志读取权限
- 在项目根目录创建
deploy.sh脚本,内容如下:
#!/bin/bash # 适配Lambda运行环境编译Golang代码 GOOS=linux GOARCH=amd64 go build -o main main.go # 打包zip zip deploy.zip main # 上传zip包到Lambda aws lambda update-function-code --function-name 替换为你的Lambda函数名 --zip-file fileb://./deploy.zip # 等待部署完成(按需调整等待时长) sleep 3 # 自动触发测试调用 aws lambda invoke --function-name 替换为你的Lambda函数名 invoke-output.json # 拉取最新CloudWatch日志输出 LATEST_LOG_STREAM=$(aws logs describe-log-streams --log-group-name /aws/lambda/替换为你的Lambda函数名 --order-by LastEventTime --descending --max-items 1 --query 'logStreams[0].logStreamName' --output text) aws logs get-log-events --log-group-name /aws/lambda/替换为你的Lambda函数名 --log-stream-name "$LATEST_LOG_STREAM" --query 'events[*].message' --output text
- 给脚本添加执行权限:
chmod +x deploy.sh - 后续迭代仅需执行
./deploy.sh,即可自动完成编译、打包、上传、触发、日志输出全流程。
方案2:本地预调试减少上传次数
使用官方本地Lambda模拟工具,在本地直接运行函数、查看日志,支持修改代码后自动重载,调试通过后再执行上传操作,可避免频繁上传验证小修改的操作。
注意事项
- 若你的Lambda使用Arm架构运行环境,将编译命令中的
GOARCH=amd64改为GOARCH=arm64即可 - 若函数有其他依赖文件,需要在zip打包步骤中将依赖文件一起加入压缩包
内容的提问来源于stack exchange,提问作者rulisastra
相关产品推荐
相关产品推荐

