使用 Go 构建 Lambda 函数 - AWS Lambda

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 Go 构建 Lambda 函数

Go 的实施方式与其他托管式运行时系统不同。由于 Go 本机编译为可执行的二进制文件,因此它不需要专用的语言运行时。使用仅限操作系统的运行时provided 运行时系列)将 Go 函数部署到 Lambda。

Go 运行时系统支持

Lambda 的 Go 1.x 托管式运行时已被弃用。如果您具有使用 Go 1.x 运行时的函数,则必须将函数迁移到 provided.al2023provided.al2。与 go1.x 相比,provided.al2023provided.al2 运行时系统具有多种优势,包括支持 arm64 架构(AWS Graviton2 处理器)、二进制文件更小以及调用时间稍快。

此迁移无需更改任何代码。唯一需要进行的更改涉及如何构建部署包以及使用哪个运行时系统来创建函数。有关更多信息,请参阅 AWS Compute Blog 上的 Migrating AWS Lambda functions from the Go1.x runtime to the custom runtime on Amazon Linux 2

仅限操作系统
名称 标识符 操作系统 弃用日期 阻止函数创建 阻止函数更新

仅限操作系统的运行时系统

provided.al2023

Amazon Linux 2023

仅限操作系统的运行时系统

provided.al2

Amazon Linux 2

工具和库

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

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

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

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

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