Go による Lambda 関数の構築
Go は、他のマネージドランタイムとは異なる方法で実装されています。Go は実行可能バイナリにネイティブにコンパイルするため、専用の言語ランタイムは必要ありません。Go 関数を Lambda にデプロイするには、OS 専用ランタイム (provided
ランタイム ファミリ) を使用します。
トピック
Go ランタイムのサポート
Lambda の Go 1.x マネージドランタイムは非奨励になりました。Go 1.x ランタイムを使用する関数がある場合は、関数を provided.al2023
または provided.al2
に移行する必要があります。provided.al2023
および provided.al2
ランタイムには、arm64 アーキテクチャのサポート (AWS Graviton2 プロセッサー)、バイナリの小型化、若干の呼び出し時間短縮化など、go1.x
と比べていくつか利点があります。
この移行ではコードの変更は必要ありません。必要な変更は、デプロイパッケージの構築方法と、関数の作成に使用するランタイムに関するもののみです。詳細については、「AWS コンピュートブログ」の「Migrating AWS Lambda functions from the Go1.x runtime to the custom runtime on Amazon Linux 2
OS 専用 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
名前 | 識別子 | オペレーティングシステム | 廃止日 | 関数の作成をブロックする | 関数の更新をブロックする | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
OS 専用ランタイム |
|
Amazon Linux 2023 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
OS 専用ランタイム |
|
Amazon Linux 2 |
ツールとライブラリ
Lambda は、Go ランタイム用の次のツールとライブラリを提供します。
-
AWS SDK for Go
: Go プログラミング言語用の公式の AWS SDK。 -
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 ランタイム用の次のサンプルアプリケーションを提供します。