本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
何時使用 Lambda 的僅限作業系統執行階段
Lambda 為 Java、Python、Node.js、.NET 和 Ruby 提供受管理執行期。若要使用未提供受管理執行期的程式設計語言建立 Lambda 函數,請使用僅限作業系統的執行期 (provided
執行期系列)。僅限作業系統的執行期有三種主要的使用案例:
-
本機 ahead-of-time (AOT)編譯:Go,Rust 和 C ++ 之類的語言本地編譯為可執行二進製文件,該二進製文件不需要專用的語言運行時。這些語言僅需要可在其中執行編譯二進位檔的作業系統環境。您還可以使用 Lambda 僅限作業系統的執行期來部署以 .NET 原生 AOT 和 Java GraalVM Native 編譯的二進位檔。
您必須在二進位中包含執行期介面用戶端。執行期介面用戶端會呼叫 API針對自訂執行階段使用 Lambda 執行階段 來擷取函數調用,然後呼叫您的函數處理常式。Lambda 為 Go、.NET 原生 AOT、C++
和 Rust (實驗性) 提供執行期介面用戶端。 您必須將二進位檔編譯為適用於 Linux 環境,以及您計劃用於函數的同一指令集架構 (x86_64 或 arm64)。
-
第三方執行階段:您可以使用 off-the-shelf 執行階段來執行 Lambda 函數,例如 PHP 版 B ref
或 Swift 的 Swift 執行 AWS Lambda 階段 。 -
自訂執行期:您可以為 Lambda 不提供受管理執行期的語言或語言版本建置自己的執行期,例如 Node.js 19。如需詳細資訊,請參閱 構建自定義運行時 AWS Lambda。這是僅限作業系統的執行期最不常見的使用案例。
Lambda 支援以下僅限作業系統的執行期:
僅限作業系統 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
名稱 | 識別符 | 作業系統 | 取代日期 | 封鎖函數建立 | 封鎖函數更新 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
僅限作業系統的執行期 |
|
Amazon Linux 2023 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
僅限作業系統的執行期 |
|
Amazon Linux 2 |
與 Amazon Linux 2 相比,Amazon Linux 2023 (provided.al2023
) 執行期具有多項優點,包括更小的部署足跡和更新版本的程式庫,如 glibc
。
provided.al2023
執行期使用 dnf
而非 yum
做為套件管理工具,後者是 Amazon Linux 2 中的預設套件管理工具。如需provided.al2023
和之間差異的詳細資訊provided.al2
,請參閱 AWS 運算部落格 AWS Lambda上的介紹 Amazon Linux 2023 執行階段