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

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

使用 Go 构建 Lambda 函数

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

Go 运行时系统支持

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

此迁移无需更改任何代码。唯一需要进行的更改涉及如何构建部署包以及使用哪个运行时系统来创建函数。有关更多信息,请参阅 Amazon Compute Blog 上的 Migrating Amazon 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 运行时提供了以下工具和库:

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

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

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

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