本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 Go 建置 Lambda 函數
Go 的實作方式與其他受管執行期不同。由於 Go 程式碼原生編譯至可執行的二進位檔,因此不需要專用語言執行時期。應使用僅限作業系統的執行時期 (provided
執行時期系列) 將 Go 函數部署至 Lambda。
主題
Go 執行期支援
Lambda 的 Go 1.x 受管執行時期已棄用。如果擁有使用 Go 1.x 執行時期的函數,則必須將函數遷移至 provided.al2023
或 provided.al2
。相較於 go1.x
,provided.al2023
和 provided.al2
執行期具備幾項優勢,包括對 arm64 架構的支援 (AWS Graviton2 處理器)、容量較小的二進位檔,以及速度稍快的調用時間。
本次遷移不需要變更任何程式碼。唯一必須做出的變更與建置部署套件的方式以及用來建立函數的執行期有關。如需詳細資訊,請參閱 AWS 運算部落格上的在 Amazon Linux 2 上將 AWS Lambda 函數從 Go1.x 執行期遷移到自訂執行期
名稱 | 識別符 | 作業系統 | 取代日期 | 封鎖函數建立 | 封鎖函數更新 |
---|---|---|---|---|---|
僅限作業系統的執行期 |
|
Amazon Linux 2023 |
未排程 |
未排程 |
未排程 |
僅限作業系統的執行期 |
|
Amazon Linux 2 |
未排程 |
未排程 |
未排程 |
工具與程式庫
Lambda 為 Go 執行時間提供以下工具和程式庫:
-
AWS SDK for Go
:適用於 Go 程式設計語言的官方 AWS 開發套件。 -
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 執行時間提供下列範例應用程式: