以 .zip 封存檔形式部署 Lambda 函數 - AWS Lambda

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

以 .zip 封存檔形式部署 Lambda 函數

當您建立 Lambda 函數時,可以將函數程式碼封裝到部署套件中。Lambda 支援兩種類型的部署套件:容器映像和 .zip 封存檔。建立函數的工作流程取決於部署套件類型。若要設定一個定義為容器映像的函數,請參閱使用容器映像檔建立 Lambda 函數

您可以使用 Lambda 主控台和 Lambda 建立API以 .zip 檔案封存檔定義的函數。也可以上傳更新的 .zip 檔案來變更函數程式碼。

注意

您無法變更現有函數的部署套件類型 (.zip 或容器映像檔)。例如,您無法將容器映像函數轉換為使用 .zip 檔案封存。您必須建立新的函數。

建立函數

當您建立以 .zip 封存檔定義的函數時,您可以選擇函數的程式碼範本、語言版本和執行角色。Lambda 建立函數後,您可以新增函數程式碼。

建立函數
  1. 開啟 Lambda 主控台中的 函數頁面

  2. 選擇 建立函數

  3. 選擇 Author from scratch (從頭開始編寫) 或 Use a blueprint (使用藍圖) 來建立函數。

  4. 基本資訊 下,請執行下列動作:

    1. 針對 函數名稱,輸入函數名稱。函數名稱的長度限制為 64 個字元。

    2. 對於執行時間,選擇函數要使用的語言版本。

    3. (選用) 對於 Architecture (架構),選擇要用於函數的指令集架構。預設架構值為 x86_64。為您的函數建置部署套件時,確定它與此指令集架構相容。

  5. (選用) 在 許可 下,展開 變更預設執行角色 。您可建立新的執行角色,或使用現有的角色。

  6. (選用) 展開 Advanced settings (進階設定)。您可對函數選擇程式碼簽署組態。您還可以配置一個(AmazonVPC)的功能訪問。

  7. 選擇建立函數

Lambda 建立新函數。您現在可以使用主控台來新增函數程式碼,並設定其他函數參數與功能。如需程式碼部署指示,請參閱函數所用執行時間的處理常式頁面。

Node.js

使用 .zip 封存檔部署 Node.js Lambda 函數

Python

使用 .zip 封存檔部署 Python Lambda 函數

Ruby

使用 .zip 封存檔部署 Ruby Lambda 函數

Java

使用 .zip 或JAR檔案封存來部署 Java Lambda 函數

Go

使用 .zip 封存檔部署 Go Lambda 函數

C#

使用 .zip 封存檔建置和部署 C# Lambda 函數

PowerShell

使用 .zip 檔案封存部署 PowerShell Lambda 函數

使用主控台程式碼編輯器

主控台將建立具有單一來源檔案的 Lambda 函數。對於指令碼語言,您可以使用內建的程式碼編輯器編輯該檔案並新增更多檔案。選擇 Save (儲存) 以儲存變更。然後,若要執行程式碼,請選擇 Test (測試)。

當您儲存函數程式碼時,Lambda 主控台會建立 .zip 封存檔部署套件。當您在主控台外部開發函數程式碼時 (使用IDE),您需要建立部署套件,將程式碼上傳至 Lambda 函數。

更新函數程式碼

對於指令碼語言 (Node.js、Python 和 Ruby),您可以在內嵌的程式碼編輯器中編輯函數程式碼。如果程式碼大於 3MB,或如果您需要新增程式庫,或對於編輯器不支援的語言 (Java、Go、C#),必須將函數程式碼上傳為 .zip 封存。如果 .zip 封存檔小於 50 MB,您可以從本機電腦上傳 .zip 封存檔。如果此檔案大於 50 MB,請將該檔案從 Amazon S3 儲存貯體上傳至函數。

若要將函數程式碼上傳為 .zip 封存
  1. 開啟 Lambda 主控台中的函數頁面

  2. 選擇要更新的函數並選擇 Code (程式碼) 索引標籤。

  3. 程式碼來源下,選擇上傳自

  4. 選擇 .zip file (.zip 檔案),然後選擇 Upload (上傳)。

    1. 在檔案選擇器中,選取新的映像版本、選擇 Open (開啟),然後選擇 Save (儲存)。

  5. (替代步驟 4) 選擇 Amazon S3 location (Amazon S3 位置)。

    1. 在文字方塊中,輸入 .zip 檔案封存URL的 S3 連結,然後選擇 [儲存]。

變更執行階段

如果您將函數組態更新為使用新的執行階段,則可能需要更新函數程式碼,才能與新執行階段相容。如果您將函數組態更新為使用不同的執行時間,則必須提供與執行時間和架構相容的新函數程式碼。如需如何為函數程式碼建立部署套件的指示,請參閱函數所使用之執行時間的處理常式頁面。

該 Node.js 20, Python 3.12, 爪哇 21,. NET8、紅寶石 3.3 及更高版本的基礎映像檔是基於 Amazon Linux 2023 最小容器映像檔。早期的基本映像使用 Amazon Linux 2。AL2023 比 Amazon Linux 2 具有多項優勢,包括較小的部署佔用空間和更新版本的程式庫,例如glibc. 如需詳細資訊,請參閱 AWS 運算部落格上的隆重介紹適用於 AWS Lambda的 Amazon Linux 2023 執行期

變更執行階段
  1. 開啟 Lambda 主控台中的函數頁面

  2. 選擇要更新的函數並選擇 Code (程式碼) 索引標籤。

  3. 向下捲動到 Runtime settings (執行時間設定) 區段 (在程式碼編輯器下)。

  4. 選擇編輯

    1. 請在 Runtime (執行階段) 選取執行階段識別符。

    2. 對於 Handler (處理常式),指定函數的處理常式。

    3. 對於 Architecture (架構),選擇要用於函數的指令集架構。

  5. 選擇 Save (儲存)。

變更架構

在可以變更指令集架構之前,您需要確保函數的程式碼與目標架構相容。

如果您使用 Node.js、Python 或 Ruby,並在內嵌的編輯器中編輯您的函數程式碼,則現有的程式碼可能無需修改即可執行。

不過,如果您使用 .zip 封存檔部署套件來提供函數程式碼,則必須準備新的 .zip 封存檔,該封存檔會針對目標執行時間和指令集架構正確地進行編譯和建置。如需指示,請參閱函數執行時間的處理常式頁面。

變更指令集架構
  1. 開啟 Lambda 主控台中的函數頁面

  2. 選擇要更新的函數並選擇 Code (程式碼) 索引標籤。

  3. Runtime settings (執行時間設定) 中,選擇 Edit (編輯)。

  4. 對於 Architecture (架構),選擇要用於函數的指令集架構。

  5. 選擇 Save (儲存)。

使用 Lambda API

若要建立和設定使用 .zip 檔案封存的函數,請使用下列API作業:

AWS CloudFormation

您可以使 AWS CloudFormation 用建立使用 .zip 檔案封存的 Lambda 函數。在 AWS CloudFormation 範本中,AWS::Lambda::Function資源會指定 Lambda 函數。如需AWS::Lambda::Function資源中屬性的說明,請參閱AWS CloudFormation 使用者指南中的AWS:: Lambda:: 函數

AWS::Lambda::Function 資源中,設定下列屬性,以建立定義為 .zip 封存檔的函數:

  • AWS:: Lambda:: 函數

    • PackageType — 設定為Zip

    • 程式碼 — 在 S3BucketS3Key 欄位中輸入 Amazon S3 儲存貯體名稱和 .zip 檔案名稱。對於 Node.js 或 Python,您可以提供 Lambda 函數的內嵌原始碼。

    • 執行時間 — 設定執行時間值。

    • 架構 — 將架構值設定為使arm64用 AWS 重力 2 處理器。依預設,架構值為 x86_64