AWS Lambda 弃用 Go 运行时

AWS Lambda 弃用 Go1.x 运行时

AWS Lambda 宣布将弃用 go1.x 运行时,并计划在 Amazon Linux 2 运行环境中独家支持 Go。这一变更引发了 Go 社区的广泛关注和讨论。

关键时间节点

  • 2023年12月31日go1.x 运行时将被正式弃用。
  • 开发者需在此日期前迁移至 provided.al2 自定义运行时。

AWS 官方解释

AWS 的高级解决方案架构师 Micah Walter、Yanko Bolanos 和 Ramesh Mathikumar 解释了这一变更的优势:

  1. 支持 Graviton2 处理器:与 x86_64 处理器相比,性能提升高达 34%。
  2. 更高效的实现:部署包更小,函数调用路径更快。
  3. 与其他语言对齐:Go 将与 Rust、C++ 等编译为原生代码的语言保持一致。

社区反应

  • Mark Wolfe(Stax 工程负责人)认为这一变更存在以下问题:

    1. 缺乏从现有 Go Lambda 函数到新运行时的自动化迁移路径。
    2. Go 将不再是 AWS Lambda 控制台中的一等支持语言,降低了 Go 作为无服务器语言的可见性。
  • 其他开发者:部分开发者认为切换到自定义运行时具有优势,例如支持 Lambda 扩展、更新的 Amazon Linux 2 执行环境,以及统一运行时和处理程序代码的能力。

开发者面临的挑战

  • 迁移成本:虽然自定义运行时提供了更好的性能和更新的操作系统,但这一变更需要 Go 开发者投入额外精力。
  • 自动化工具缺失:AWS 未提供足够的自动化工具和验证支持,可能导致迁移过程中出现更多问题。

社区讨论

  • Reddit 讨论:部分开发者批评 AWS 缺乏沟通,而另一些开发者则支持这一变更,认为它能带来更好的性能。
  • Aidan Steele(NightVision 创始工程师、AWS Serverless Hero)指出,新运行时的 Lambda 包体积增加可能导致冷启动和部署速度变慢。

迁移建议

AWS 提供了从 go1.x 运行时迁移到 provided.al2 运行时的指南,并建议开发者调整构建脚本或 CI/CD 配置以减少迁移影响。

阅读 25
0 条评论