暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

AWS Lambda宣布废弃Go运行时

云原生数据库 2023-09-12
311

AWS Lambda将停止支持go1.x运行时,并专门在Amazon Linux 2运行时中支持Go。此次宣布以及今年年底前需要迁移到提供的provided.al2运行时的要求在Go社区引起了关注。

关于Amazon Linux AMI终止服务的消息,go1.x运行时将在12月31日被废弃,开发者应在此日期前迁移到provided.al2运行时。AWS的高级解决方案架构师Micah Walter、Yanko Bolanos和Ramesh Mathikumar解释了这一变化的好处:

首先,它支持在AWS Graviton2处理器上运行Lambda函数,与在x86_64处理器上运行的函数相比,价格性能提高了高达34%。其次,它提供了一个更加简化的实现,部署包更小,函数调用路径更快。最后,这一变化使Go与其他也编译为本地代码的语言(如Rust或C++)保持一致。

然而,在"RIP AWS Go Lambda Runtime"这篇文章中,Stax的工程主管Mark Wolfe持有不同观点:

我认为这样做有几个不好的地方:从现有的Go Lambda函数到新的自定义运行时没有自动迁移路径(...)。其次,这将从AWS Lambda控制台中移除Go1.x的名称,Go现在只是另一个自定义运行时,而不再是一个一流的支持语言。

尽管对于其他语言如Node、Python或Java,Lambda提供了一个本地运行时,但Go现在只能使用provided.al2运行时,这降低了Go作为AWS上的无服务器语言的可发现性。

在AWS取消对Go的原生支持之前,有开发者认为切换到自定义运行时有许多优点,例如支持Lambda扩展、更新的Amazon Linux 2执行环境以及统一运行时和处理程序代码的能力。Wolfe评论说:

尽管自定义运行时提供了更好的性能和更新的操作系统,但这一变化将需要许多在AWS Lambda上的Go开发者付出努力。AWS提供一些自动化的帮助和验证可以帮助减少这一变化带来的摩擦和问题。

在一个受欢迎的Reddit帖子中,一些Go开发者强调了沟通的缺失,而其他人支持这一变化。NightVision的创始工程师和AWS Serverless Hero的Aidan Steele则更关注标志的好处:

我已经在使用更新的运行时了,但我也从博客文章中了解到,AWS SAM现在可以为更新的运行时构建Go Lambda函数——不再需要Makefiles了!我从BuildMethod: makefile切换到BuildMethod: go1.x,注意到我的Lambda包现在大了两倍。这意味着冷启动和部署都会变慢。

为了减轻对开发者的影响,公告描述了如何从go1.x运行时迁移到provided.al2运行时,以及如何对构建脚本或CI/CD配置进行配置更改。


文章转载自云原生数据库,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论