
AWS 近日宣布 AWS Lambda 现已支持 GitHub Actions,通过 GitHub Actions 工作流中的声明式配置,为 Lambda 函数部署变更提供了更简化的方式。该新功能同时支持 .zip 文件部署和容器镜像部署两种模式。
GitHub Actions 是一款自动化工具,可在 Git 代码库发生变更时自动执行构建、测试和部署等任务。针对 AWS Lambda 的新 Action 采用 OpenID Connect(OIDC)认证方式与 IAM 集成,支持配置运行时环境、内存大小、超时时间和环境变量等函数设置,同时提供试运行模式,并支持基于 Amazon S3 的大体积 .zip 文件包部署。
OIDC 允许 GitHub Actions 工作流在不存储 AWS 长期凭证的情况下访问云资源。AWS 产品负责人 Shridhar Pandey 在领英上表示:
还记得以前需要编写自定义脚本从 GitHub 部署 Lambda 函数的日子吗?那样的时代结束了!现在可以通过简单的声明式配置,直接从 GitHub 代码库自动部署 Lambda 函数(……)最让我兴奋的是这极大简化了无服务应用的 CI/CD 流水线。又少了一个需要维护的环节!
开发团队此前必须编写自定义脚本,手动处理打包、权限和错误处理等环节才能从 GitHub Actions 部署 Lambda 函数,这不仅导致重复工作,还增加了出错的风险。新方案提供的声明式 YAML 接口彻底消除了手动部署步骤的复杂性。
Lambda 部署所用的 GitHub Actions 工作流。来源:AWS 文档
通过 GitHub Action 部署 Lambda 函数的能力获得了社区的积极反馈,许多开发者质疑为何现在才推出该功能。用户 raize_the_roof 评论道:
这个功能早就该有了。即使有了集成,我发现调整运行器环境还是可以显著影响工作流的完成速度(特别是大型构建场景)。
而在《为什么你可能会不想使用 AWS 新推出的 GitHub Actions Lambda 部署功能》一文中,Symphonia 合伙人 Mike Roberts 提出不同观点:
从功能角度看,这完全等同于直接调用 AWS Lambda CLI,新 Action 并没有提供更多价值。(……)开发者仍然需要配置和部署角色权限,仍然需要部署触发器配置。这还没说到我略过的所有其他问题!更重要的是,这个 Action 甚至不会构建你的 Lambda 函数。(……)这种部署方式的另一个问题是:它与开发环境的部署方式并不一致
Duckbill Group 首席云经济学家 Corey Quinn 在其简报中补充道:
坦白说,我们认为真正需要的是 AWS 能提供类似 Google Cloud Run 的解决方案:开发者只需提供容器镜像,就能自动实现规模化运行。
部署所需参数包括 function-name
(函数名称)、code-artifacts-dir
(代码工件目录)、handler
(处理函数)和 runtime
(运行时环境)。当指定名称的函数不存在时,还需提供 role(角色)参数,系统将通过 CreateFunction API 创建新函数,并加载 code-artifacts-dir
(代码工件目录)中的代码及配置参数。AWS DevOps 工程师 Oleksii Semeniuk 在测试该功能后发布了利用 Github 部署 Lambda 函数的指南,总结道:
整个过程非常直观,显著减少了以往所需的部署开销。
这项针对 Lambda 函数的 GitHub Action 新功能已在所有 AWS 区域开放使用。
原文链接:
https://www.infoq.com/news/2025/08/aws-lambda-github-actions/
评论