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

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

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

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

注意

您無法轉換現有的容器映像函數,以使用 .zip 封存檔。您必須建立新函數

建立函數

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

建立函數

  1. 開啟 Lambda 主控台中的 Functions (函數) 頁面

  2. 選擇 Create function (建立函數)。

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

  4. Basic information (基本資訊) 下,請執行下列動作:

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

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

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

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

  6. (選用) 展開 Advanced settings (進階設定)。您可對函數選擇程式碼簽署組態。您也可以為函數設定 (Amazon VPC) 進行存取。

  7. 選擇 Create function (建立函數)。

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 主控台使用 AWS Cloud9 在瀏覽器中提供整合式開發環境。您也可以使用 AWS Cloud9 在您自己的環境中開發 Lambda 函數。如需詳細資訊,請參閱《AWS Cloud9 使用者指南》中的使用 Lambda 函數

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

更新函數程式碼

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

若要將函數程式碼上傳為 .zip 封存

  1. 開啟 Lambda 主控台中的 Functions (函數) 頁面

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

  3. Code source (程式碼來源 ) 下方,選擇 Upload from (上傳來源)

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

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

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

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

變更執行時間或執行時間版本

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

變更執行時間或執行時間版本

  1. 開啟 Lambda 主控台中的 Functions (函數) 頁面

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

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

  4. 選擇 Edit (編輯)。

    1. 對於 Runtime (執行時間),選取執行時間版本。

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

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

  5. 選擇 Save (儲存)。

變更架構

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

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

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

變更指令集架構

  1. 開啟 Lambda 主控台中的 Functions (函數) 頁面

  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::Function

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

  • AWS::Lambda::Function

    • PackageType - 設定為 Zip

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

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

    • 架構 - 將架構值設定為 arm64 以使用 AWS Graviton2 處理器。依預設,架構值為 x86_64