使用 Go 构建 Lambda 函数 - Amazon Lambda
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

使用 Go 构建 Lambda 函数

Go 的实施方式与其他托管式运行时系统不同。由于 Go 可编译为原生代码,因此 Lambda 将 Go 视为自定义运行时系统。建议您使用 provided.al2 运行时系统将 Go 函数部署到 Lambda。

Go 运行时系统支持

Lambda 的 Go 1.x 托管式运行时系统基于 Amazon Linux AMI(AL1)。Lambda 将继续支持 Go 1.x 托管式运行时系统,直到 2023 年 12 月 31 日结束对 Amazon Linux AMI 的维护支持。如果您使用的是 Go 1.x 运行时系统,则必须将函数迁移到 provided.al2。此迁移无需更改任何代码。唯一需要进行的更改涉及如何构建部署包以及使用哪个运行时系统来创建函数。有关更多信息,请参阅 .zip 程序包容器映像的部署说明。

Go
名称 标识符 操作系统 架构 弃用(阶段 1)

Go 1.x

go1.x

Amazon Linux

x86_64

2023 年 12 月 31 日

go1.x 相比,provided.al2 运行时系统具有多种优势,包括支持 arm64 架构(Amazon Graviton2 处理器)、二进制文件更小以及调用时间稍快。

自定义
名称 标识符 操作系统 架构 弃用(阶段 1)

自定义运行时

provided.al2

Amazon Linux 2

x86_64,arm64

自定义运行时

provided

Amazon Linux

x86_64

2023 年 12 月 31 日

工具和库

Lambda 为 Go 运行时提供了以下工具和库:

有关更多信息,请参阅 GitHub 上的 aws-lambda-go

Lambda 为 Go 运行时提供了以下示例应用程序:

Go 中的 Lambda 应用程序示例
  • go-al2:返回公有 IP 地址的 hello world 函数。此应用程序使用 provided.al2 自定义运行时系统。

  • blank-go – 此 Go 函数显示 Lambda 的 Go 库、日志记录、环境变量和 Amazon SDK 的使用情况。此应用程序使用 go1.x 运行时系统。