首页
/ Amplify CLI 项目中 Lambda 运行时版本升级问题解析

Amplify CLI 项目中 Lambda 运行时版本升级问题解析

2025-06-28 20:57:45作者:彭桢灵Jeremy

问题背景

在 AWS Amplify 项目中,当用户尝试通过 CI/CD 流水线部署应用时,遇到了 Lambda 函数运行时版本不兼容的问题。具体表现为部署失败,错误信息指出 Node.js 14.x 运行时已不再支持创建或更新 Lambda 函数。

问题分析

该问题源于 AWS 在 2024 年 3 月 6 日后的政策变更,不再允许使用 Node.js 14.x 或更低版本创建或更新 Lambda 函数。虽然用户已将所有 Lambda 函数手动升级至 Node.js 20.x,但在 CI 流水线部署时仍遇到失败。

关键点在于项目中存在一个名为 UserPoolClientLambda 的 Lambda 函数,该函数是 Cognito 用户池的内联函数,存在于 auth CloudFormation 模板中。这个函数在本地推送时能成功更新,但在 CI 流水线中却失败。

解决方案

经过排查,发现问题根源在于 CI 流水线中使用了旧版本的 Amplify CLI (10.5.0)。虽然用户已在本地更新了所有 Lambda 函数的运行时版本,但 CI 环境中的旧版 CLI 仍尝试使用 Node.js 14.x 运行时。

解决步骤如下:

  1. 检查并更新 CI 流水线中的 Amplify CLI 版本
  2. 移除任何固定 CLI 版本的命令
  3. 切换至 Amazon Linux 2023 构建镜像
  4. 确保所有 Lambda 函数运行时已更新至 Node.js 20.x

经验总结

  1. 对于较旧的 Amplify 项目,建议定期检查并更新所有 Lambda 函数的运行时版本
  2. CI/CD 环境中的工具链版本应与本地开发环境保持一致
  3. 对于 auth 相关资源,可通过 amplify update auth 命令检查是否需要迁移
  4. 当遇到类似问题时,应检查项目中的 CloudFormation 模板,特别是 auth 相关部分

最佳实践

  1. 定期检查 AWS 官方文档,了解 Lambda 运行时支持政策变更
  2. 建立统一的开发与部署环境管理机制
  3. 对于关键业务应用,建议设置预发布环境进行版本兼容性测试
  4. 保留项目部署历史记录,便于问题排查

通过以上措施,可以有效避免因 AWS 服务更新导致的部署中断问题,确保应用持续稳定运行。

登录后查看全文
热门项目推荐
相关项目推荐