Go is implemented differently than other managed runtimes. Because Go compiles natively to an executable binary, it doesn't require a dedicated language runtime. Use anOS-only runtime (theprovided
runtime family) to deploy Go functions to Lambda.
The Go 1.x managed runtime for Lambda isdeprecated. If you have functions that use the Go 1.x runtime, you must migrate your functions toprovided.al2023
orprovided.al2
. Theprovided.al2023
andprovided.al2
runtimes offer several advantages overgo1.x
, including support for the arm64 architecture (AWS Graviton2 processors), smaller binaries, and slightly faster invoke times.
No code changes are required for this migration. The only required changes relate to how you build your deployment package and which runtime you use to create your function. For more information, seeMigrating AWS Lambda functions from the Go1.x runtime to the custom runtime on Amazon Linux 2 on theAWS Compute Blog.
Name | Identifier | Operating system | Deprecation date | Block function create | Block function update |
---|---|---|---|---|---|
OS-only Runtime |
| Amazon Linux 2023 | Jun 30, 2029 | Jul 31, 2029 | Aug 31, 2029 |
OS-only Runtime |
| Amazon Linux 2 | Jun 30, 2026 | Jul 31, 2026 | Aug 31, 2026 |
Lambda provides the following tools and libraries for the Go runtime:
AWS SDK for Go v2: The official AWS SDK for the Go programming language.
github.com/aws/aws-lambda-go/lambda: The implementation of the Lambda programming model for Go. This package is used by AWS Lambda to invoke yourhandler.
github.com/aws/aws-lambda-go/lambdacontext: Helpers for accessing context information from thecontext object.
github.com/aws/aws-lambda-go/events: This library provides type definitions for common event source integrations.
github.com/aws/aws-lambda-go/cmd/build-lambda-zip: This tool can be used to create a .zip file archive on Windows.
For more information, seeaws-lambda-go on GitHub.
Lambda provides the following sample applications for the Go runtime: