使用 Go 建置 Lambda 函數 - AWS Lambda

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

使用 Go 建置 Lambda 函數

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

Go 執行期支援

Lambda 的 Go 1.x 受管執行時期已棄用。如果擁有使用 Go 1.x 執行時期的函數,則必須將函數遷移至 provided.al2023provided.al2。相較於 go1.xprovided.al2023provided.al2 執行期具備幾項優勢,包括對 arm64 架構的支援 (AWS Graviton2 處理器)、容量較小的二進位檔,以及速度稍快的調用時間。

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

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

僅限作業系統的執行期

provided.al2023

Amazon Linux 2023

未排程

未排程

未排程

僅限作業系統的執行期

provided.al2

Amazon Linux 2

未排程

未排程

未排程

工具與程式庫

Lambda 為 Go 執行時間提供以下工具和程式庫:

如需詳細資訊,請參閱 GitHub 上的 aws-lambda-go

Lambda 為 Go 執行時間提供下列範例應用程式:

以 Go 編寫的範例 Lambda 應用程式
  • go-al2:傳回公有 IP 地址的「hello world」函數。此應用程式使用 provided.al2 自訂執行期。

  • blank-go - 一種 Go 函數,它示範如何使用 Lambda 的 Go 程式庫、記錄、環境變數和 AWS 開發套件。此應用程式使用 go1.x 執行期。