Go による Lambda 関数の構築 - AWS Lambda

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 専用ランタイム

provided.al2023

Amazon Linux 2023

OS 専用ランタイム

provided.al2

Amazon Linux 2

ツールとライブラリ

Lambda は、Go ランタイム用の次のツールとライブラリを提供します。

詳細については、GitHub の「aws-lambda-go」をご参照ください。

Lambda は、Go ランタイム用の次のサンプルアプリケーションを提供します。

Go のサンプル Lambda アプリケーション
  • go-al2 — パブリック IP アドレスを返す Hello World 関数。このアプリは provided.al2 カスタムランタイムを使用しています。

  • blank-go – Lambda の Go ライブラリ、ログ記録、環境変数、AWS SDK の使用を示す Go 関数。このアプリは go1.x ランタイムを使用しています。