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