本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在 Lambda 中建立和刪除層
Lambda 層是含有補充程式碼或資料的 .zip 封存檔。層通常具備程式庫相依性、自訂執行期或組態檔案。
本節會說明如何在 Lambda 中建立和刪除層。若要進一步了解有關層的概念性資訊以及您可能會考慮使用的原因,請參閱 使用層管理 Lambda 相依項。
封裝層內容 後,下一步是在 Lambda 中建立層。本節會示範如何僅使用 Lambda 主控台或 Lambda API 建立和刪除層。若要使用 AWS CloudFormation 建立層,請參閱 AWS CloudFormation 與圖層搭配使用。若要使用 AWS Serverless Application Model (AWS SAM) 建立層,請參閱 AWS SAM 與圖層搭配使用。
建立圖層
若要建立層,您可以從本機電腦或 Amazon Simple Storage Service (Amazon S3) 中上傳 .zip 封存檔。從 Amazon S3 上傳時,您可以選擇 Lambda 是將程式碼複製到 Lambda 受管儲存體,還是直接從 S3 儲存貯體參考。如需詳細資訊,請參閱自我管理 S3 程式碼儲存。
設定函數的執行環境時,Lambda 會將層內容擷取到 /opt 目錄中。
層可以有一個或多個 層版本。建立層時,Lambda 將層版本設定為版本 1。您可以隨時變更既有層版本的許可。不過,若要更新程式碼或進行其他組態變更,您必須建立新的層版本。
建立圖層 (主控台)
-
開啟 Lambda 主控台中的 層頁面
。 -
選擇 建立圖層。
-
在 Layer configuration (圖層組態) 下,為 Name (名稱) 輸入圖層的名稱。
-
(選用) 在 Description (說明) 中,輸入 Layer 的說明。
-
若要上傳 Layer 程式碼,請執行下列其中一個動作:
-
若要從電腦上傳 .zip 檔案,請選擇 Upload a .zip file (上傳 .zip 檔案)。然後,選擇 Upload (上傳) 以選取您的本機 .zip 檔案。
-
若要從 Amazon S3 上傳檔案,請選擇 Upload a file from Amazon S3 (從 Amazon S3 上傳檔案)。然後,對於 Amazon S3 連結 URL,輸入檔案的連結。
-
-
(選用) 對於相容架構,選擇一個值或兩個值。如需詳細資訊,請參閱選取和設定 Lambda 函數的指令集架構。
-
(選擇性) 在 相容執行期 中選擇相容於您的層的執行期。
-
(選擇性) 在 License (授權) 中,輸入任何必要的授權資訊。
-
選擇建立。
或者,您可以執行 publish-layer-versionS3ObjectStorageMode=REFERENCE 以使用自我管理的 S3 程式碼儲存體,或省略它 (預設為 COPY) 以使用 Lambda 受管儲存體。範例:
aws lambda publish-layer-version --layer-namemy-layer--zip-file fileb://layer.zip --compatible-runtimespython3.14
每當您執行 publish-layer-version 時,Lambda 都會建立新的層版本。
刪除圖層版本
若要刪除層版本,請使用 DeleteLayerVersion API 操作。例如,以指定的 layer 名稱和 layer 版本執行 delete-layer-version
aws lambda delete-layer-version --layer-name my-layer --version-number 1
當您刪除 layer 版本時,您無法再設定新函數來使用它。不過,任何已參考已刪除 layer 版本的函數都會繼續執行該 layer 內容。Lambda 永遠不會重複使用層名稱的版本號碼。
刪除 layer 的儲存配額影響
刪除 layer 版本的儲存配額影響取決於 layer 所使用的儲存模式,以及參考它的函數。
- Layer 使用 Lambda 受管儲存 (COPY)
-
當您刪除使用 Lambda 受管儲存的層版本時,層程式碼會從您帳戶的 Lambda 受管儲存配額中移除。不過,仍然參考已刪除 layer 版本的任何函數都會繼續存取 layer 內容。layer 內容會計入函數的部署套件大小配額 (250 MB 解壓縮),但不再計入帳戶層級的 Lambda 受管儲存配額。
- Layer 使用自我管理的 S3 儲存體 (參考)
-
使用自我管理 S3 程式碼儲存體的層不會使用 Lambda 受管儲存體,因此刪除它們不會影響您的 Lambda 受管儲存體配額。參考已刪除自我管理層版本的函數會繼續正常執行。不過,如果您也從 S3 儲存貯體刪除來源物件,或撤銷 Lambda 對其的存取權,則無法再使用該層更新函數組態。
注意
刪除 layer 版本永遠不會停用參考它的函數。Active 無論 layer 是使用 Lambda 受管還是自我管理的 S3 儲存,函數都會保留。只有在 Lambda 無法存取存放在自我管理 S3 儲存貯體中的函數自己的原始碼時,Inactive狀態才會套用。