使用 Go 构建 Lambda 函数
Go 的实施方式与其他托管式运行时系统不同。由于 Go 本机编译为可执行的二进制文件,因此它不需要专用的语言运行时。使用仅限操作系统的运行时(provided
运行时系列)将 Go 函数部署到 Lambda。
主题
Go 运行时系统支持
Lambda 的 Go 1.x 托管式运行时已被弃用。如果您具有使用 Go 1.x 运行时的函数,则必须将函数迁移到 provided.al2023
或 provided.al2
。与 go1.x
相比,provided.al2023
和 provided.al2
运行时系统具有多种优势,包括支持 arm64 架构(AWS Graviton2 处理器)、二进制文件更小以及调用时间稍快。
此迁移无需更改任何代码。唯一需要进行的更改涉及如何构建部署包以及使用哪个运行时系统来创建函数。有关更多信息,请参阅 AWS Compute Blog 上的 Migrating AWS Lambda functions from the Go1.x runtime to the custom runtime on Amazon Linux 2
名称 | 标识符 | 操作系统 | 弃用日期 | 阻止函数创建 | 阻止函数更新 |
---|---|---|---|---|---|
仅限操作系统的运行时系统 |
|
Amazon Linux 2023 |
未计划 |
未计划 |
未计划 |
仅限操作系统的运行时系统 |
|
Amazon Linux 2 |
未计划 |
未计划 |
未计划 |
工具和库
Lambda 为 Go 运行时提供了以下工具和库:
-
适用于 Go 的 AWS 开发工具包
:适用于 Go 编程语言的官方 AWS 开发工具包。 -
github.com/aws/aws-lambda-go/lambda
:适用于 Go 的 Lambda 编程模型的实现。AWS 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 运行时提供了以下示例应用程序: