使用 Go 建置 Lambda 函數 - AWS Lambda

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 Go 建置 Lambda 函數

Go 的實作方式與其他受管執行期不同。由於 Go 程式碼原生編譯至可執行的二進位檔,因此不需要專用語言執行時期。應使用僅限作業系統的執行時期 (provided 執行時期系列) 將 Go 函數部署至 Lambda。

Go 執行期支援

Lambda 的 Go 1.x 受管執行時期已棄用。如果擁有使用 Go 1.x 執行時期的函數,則必須將函數遷移至 provided.al2023provided.al2provided.al2023 與 相比, 和 provided.al2執行期提供數種優勢go1.x,包括支援 arm64 架構 (AWS Graviton2 處理器)、較小的二進位檔,以及略快的調用時間。

本次遷移不需要變更任何程式碼。唯一必須做出的變更與建置部署套件的方式以及用來建立函數的執行期有關。如需詳細資訊,請參閱AWS 運算部落格上的將 AWS Lambda 函數從 Go1.x 執行時間遷移至 Amazon Linux 2 上的自訂執行時間

名稱 識別符 作業系統 取代日期 封鎖函數建立 封鎖函數更新

僅限作業系統的執行期

provided.al2023

Amazon Linux 2023

2029 年 6 月 30 日

2029 年 7 月 31 日

2029 年 8 月 31 日

僅限作業系統的執行期

provided.al2

Amazon Linux 2

2026 年 6 月 30 日

2026 年 7 月 31 日

2026 年 8 月 31 日

工具與程式庫

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 執行期。