如何在AWS Lambda中使用GitHub仓库?GitHub Action批量部署咨询
多文件仓库部署到AWS Lambda的解决方案
不用非得依赖Lambda容器部署,针对你的场景,有两种简单的方案可以一次性更新整个仓库代码:
方案1:打包成ZIP后用指定Action部署
你提到的aws-lambda-deploy action其实支持上传ZIP包,不是只能传单个文件。只需要先把仓库里的文件打包成ZIP,再指定这个ZIP作为部署文件即可:
- 先在GitHub Action工作流里加一步打包操作,把
main.py和helper.py打包成一个ZIP文件 - 调用action时,用
zip-file参数指定打包好的文件路径,替代单文件参数
示例工作流代码:
- name: 打包代码为ZIP run: zip -r lambda-deploy.zip main.py helper.py - name: 部署到Lambda uses: aws-actions/aws-lambda-deploy@v2 with: function-name: 你的Lambda函数名 zip-file: lambda-deploy.zip aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} region: 你的AWS区域
方案2:用AWS CLI直接部署ZIP包
如果不想用第三方action,也可以直接用AWS CLI的命令来上传ZIP包,步骤同样简单:
- 先配置AWS凭证,然后打包代码,最后用
update-function-code命令完成部署
示例工作流代码:
- name: 配置AWS凭证 uses: aws-actions/configure-aws-credentials@v4 with: aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} aws-region: 你的AWS区域 - name: 打包代码为ZIP run: zip -r lambda-deploy.zip main.py helper.py - name: 部署到Lambda run: aws lambda update-function-code --function-name 你的Lambda函数名 --zip-file fileb://lambda-deploy.zip
容器部署的适用场景
如果后续你的项目需要添加复杂依赖(比如编译后的二进制文件、特殊运行环境),再考虑用Lambda容器镜像部署更合适。当前只有两个Python文件的情况,用ZIP打包部署足够高效便捷。
内容的提问来源于stack exchange,提问作者Devid Mercer
相关产品推荐
相关产品推荐

