使用 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 |
|
Amazon Linux |
x86_64 |
2023 年 12 月 31 日 |
与 go1.x
相比,provided.al2
运行时系统具有多种优势,包括支持 arm64 架构(Amazon Graviton2 处理器)、二进制文件更小以及调用时间稍快。
自定义 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
名称 | 标识符 | 操作系统 | 架构 | 弃用(阶段 1) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
自定义运行时 |
|
Amazon Linux 2 |
x86_64,arm64 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
自定义运行时 |
|
Amazon Linux |
x86_64 |
2023 年 12 月 31 日 |
工具和库
Lambda 为 Go 运行时提供了以下工具和库:
-
适用于 Go 的 Amazon 开发工具包
:适用于 Go 编程语言的官方 Amazon 开发工具包。 -
github.com/aws/aws-lambda-go/lambda
:适用于 Go 的 Lambda 编程模型的实现。Amazon Lambda 使用此程序包调用您的处理程序。 -
github.com/aws/aws-lambda-go/lambdacontext
:用于访问上下文对象中的上下文信息的帮助程序。 -
github.com/aws/aws-lambda-go/events
:此库提供常见事件源集成的类型定义。 -
github.com/aws/aws-lambda-go/cmd/build-lambda-zip
:此工具可用于在 Windows 上创建 .zip 文件存档。
有关更多信息,请参阅 GitHub 上的 aws-lambda-go
Lambda 为 Go 运行时提供了以下示例应用程序: