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