選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

封裝層內容

焦點模式
封裝層內容 - AWS Lambda

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

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

Lambda 層是含有補充程式碼或資料的 .zip 封存檔。層通常具備程式庫相依性、自訂執行期或組態檔案。

本節會說明如何正確封裝層內容。若要進一步了解有關層的概念性資訊以及您可能會考慮使用的原因,請參閱 使用層管理 Lambda 相依項

建立層的第一步是將所有層內容綁定至 .zip 封存檔。由於 Lambda 函數是在 Amazon Linux 上執行,因此您的層內容必須能夠在 Linux 環境中編譯和建置。

為了確保您的層內容在 Linux 環境中正常運作,我們建議您使用 Docker 或 等工具建立層內容AWS Cloud9。 AWS Cloud9 是以雲端為基礎的整合式開發環境 (IDE),提供 Linux 伺服器內建存取權,以執行和測試程式碼。如需詳細資訊,請參閱 AWS 運算部落格上的 使用 Lambda 層來簡化您的開發程序

每個 Lambda 執行時間的層路徑

將層新增至函數時,Lambda 會將層內容載入該執行環境的 /opt 目錄。在每一次 Lambda 執行期中,PATH 變數已包含 /opt 目錄中的特定資料夾路徑。為了確保 Lambda 取得您的 layer 內容,您的 layer .zip 檔案應該在以下資料夾路徑中具有其相依性:

執行期 路徑

Node.js

nodejs/node_modules

nodejs/node16/node_modules (NODE_PATH)

nodejs/node18/node_modules (NODE_PATH)

nodejs/node20/node_modules (NODE_PATH)

Python

python

python/lib/python3.x/site-packages (網站目錄)

Java

java/lib (CLASSPATH)

Ruby

ruby/gems/3.3.0 (GEM_PATH)

ruby/lib (RUBYLIB)

所有執行時間

bin (PATH)

lib (LD_LIBRARY_PATH)

下列範例展示如何在圖層 .zip 封存中建構資料夾。

Node.js
範例 適用於 Node.js 的 AWS X-Ray SDK 檔案結構
xray-sdk.zip └ nodejs/node_modules/aws-xray-sdk
Python
範例 Requests 程式庫的檔案結構
layer_content.zip └ python └ lib └ python3.13 └ site-packages └ requests └ <other_dependencies> (i.e. dependencies of the requests package) └ ...
Ruby
範例 JSON gem 的檔案結構
json.zip └ ruby/gems/3.3.0/ | build_info | cache | doc | extensions | gems | └ json-2.1.0 └ specifications └ json-2.1.0.gemspec
Java
範例 Jackson JAR 檔案的檔案結構
layer_content.zip └ java └ lib └ jackson-core-2.17.0.jar └ <other potential dependencies> └ ...
All
範例 JQ 程式庫的檔案結構
jq.zipbin/jq
範例 適用於 Node.js 的 AWS X-Ray SDK 檔案結構
xray-sdk.zip └ nodejs/node_modules/aws-xray-sdk

如需封裝、建立和新增層的語言特定說明,請參閱下列頁面:

我們建議不要使用 layer 來管理以 Go 和 Rust 編寫的 Lambda 函數的相依性。這是因為以這些語言編寫的 Lambda 函數會編譯為單一可執行檔,您在部署函數時提供給 Lambda。此可執行檔包含經過編譯的函數程式碼及其所有相依項。使用層不僅會使程序複雜化,還會導致冷啟動時間增加,因為函數需要在初始化階段期間將額外的組件載入記憶體。

若要搭配 Go 和 Rust Lambda 函數使用外部相依性,請直接將其包含在部署套件中。

下一個主題:

建立和刪除層

上一個主題:

Lambda 層
隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。