在此教學中,您將了解在 AWS Lambda 上執行程式碼而不佈建或管理伺服器的基礎知識。我們將逐步說明如何使用 AWS Lambda 主控台來建立 Hello World Lambda 函數。然後,我們將示範如何使用範例事件資料來手動叫用 Lambda 函數以及檢閱輸出指標。

此教學中的所有操作都可用免費方案資格來進行。

使用 AWS 執行無伺服器程式碼需要帳戶

幾分鐘內建立免費帳戶

AWS 免費方案包含透過 AWS Lambda 享有 1 百萬則免費要求,以及每個月多達 320 萬秒的運算時間。

查看 AWS 免費方案詳細資訊 »

 

按一下這裡,即可在新瀏覽器視窗開啟 AWS 管理主控台,以讓此逐步指南持續保持開啟狀態。在 Compute 之下找到 Lambda,然後按一下以開啟 AWS Lambda 主控台。

create-lambda-function_0

(按一下以縮放)

create-lambda-function_0

藍圖提供可執行一些最低程度處理的範例程式碼。多數藍圖會處理來自特定事件來源的事件,這些來源如 Amazon S3、DynamoDB 或自訂應用程式。

a. 在 AWS Lambda 主控台中選取 Get Started Now

如果您已經有 Lambda 函數,請選取 Create a Lambda function

create-lambda-function_1

(按一下以縮放)

create-lambda-function_1

b.  在 Filter 方塊中輸入 hello-world-python,再選取 hello-world-python 藍圖。

create-lambda-function_2

(按一下以縮放)

create-lambda-function_2

Lambda 函數是由您提供的程式碼、關聯的相依性以及組態所組成。您提供的組態資訊包含要配置的運算資源 (例如記憶體)、執行逾時以及 IAM 角色 (AWS Lambda 可擔任的角色,以代表您執行 Lambda 函數)。


a. 現在您將設定 Lambda 函數。以下清單說明組態並提供範例值。

Configure Function:
  • Name:您可以在此處為 Lambda 函數命名。針對此教學,請輸入 hello-world-python
  • Description:您可以在此輸入函數的簡短描述。此處會預先填入 A starter AWS Lambda Function. 
  • Runtime:目前您可以使用 Java、Node.js 或 Python 2.7 來撰寫 Lambda 函數程式碼。而在此教學中請使用 Python 2.7 作為執行時間。

Lambda function code:

  • 您將在此部分檢閱以 Python 撰寫的範例程式碼。

Lambda function handler and role:

  • Handler:您可以指定 AWS Lambda 可於其中開始執行程式碼的處理常式 (程式碼中的方法/函數)。AWS Lambda 為負責處理事件的這個處理常式提供事件資料作為輸入。在此範例中,Lambda 會從程式碼範例中找到這個處理常式,而此處會預先填入 lambda_function.lambda_handler
  • Role:按下拉式清單,再選取 Basic Execution Role。
create-lambda-function_13

(按一下以縮放)

create-lambda-function_13

b.  您將建立具備必要許可的 IAM 角色 (稱為執行角色),讓 AWS Lambda 可擔任此角色代表您叫用 Lambda 函數。按一下 Allow

系統會將您帶回 Configure function 頁面,並選取 lambda_basic_execution。 

create-lambda-function_3

(按一下以縮放)

create-lambda-function_3

c.  在 Advanced settings 部分可以設定您的記憶體、逾時和 VPC 設定。針對此教學,請保留預設的 Lambda 函數組態值,再按一下 Next

create-lambda-function_15

(按一下以縮放)

create-lambda-function_15

d. 檢閱 Lambda 函數,再按一下 Create Function。主控台會將程式碼存成檔案並予以壓縮,這就是部署套件。然後,主控台會將部署套件上傳到建立 Lambda 函數的 AWS Lambda。

create-lambda-function_5

(按一下以縮放)

create-lambda-function_5

主控台會顯示 hello-world-python Lambda 函數 – 現在您可以測試函數、驗證結果和檢閱日誌。


a. 按一下 Test

create-lambda-function_18

(按一下以縮放)

create-lambda-function_18

b. 出現編輯器,您可以在其中輸入事件以測試函數。  

  • 從 Input test event 頁面的 Sample event template 清單中選擇 Hello World
  • 您可以變更範例 JSON 中的值,但不要變更事件結構。針對此教學,請將 value1 取代成 hello, world!

按一下 Save and test。 AWS Lambda 現在將代表您執行函數。

create-lambda-function_17

(按一下以縮放)

create-lambda-function_17

c.  成功執行之後,請在主控台中檢視結果:

  • Execution results 部分會驗證執行已成功。
  • Summary 部分顯示 Log output 中回報的主要資訊。
  • Log output 部分將顯示由 Lambda 函數執行所產生的日誌。 
create-lambda-function_20

(按一下以縮放)

create-lambda-function_20

AWS Lambda 會自動監控 Lambda 函數,並透過 Amazon CloudWatch 回報指標。為了協助您監控程式碼的執行情形,Lambda 會自動追蹤請求的數目、每個請求的延遲以及產生錯誤的請求數目,然後發佈關聯的指標。 


a. 重複按 Test 按鈕,以多次叫用 Lambda 函數。這將產生可在後續步驟中檢視的指標。

create-lambda-function_16

(按一下以縮放)

create-lambda-function_16

b.  選擇 Monitoring 標籤,以檢視 Lambda 函數的指標。系統會透過 Amazon CloudWatch 回報 Lambda 指標。您可以利用這些指標來設定自訂警示。有關 CloudWatch 的更多資訊,請參閱 Amazon CloudWatch Developer Guide

Monitoring 標籤將顯示四個 CloudWatch 指標:invocation count、invocation duration、invocation errors 以及 throttled invocations。

使用 AWS Lambda,您只需按實際用量付費。在您到達 AWS Lambda 免費方案限制之後,需要按照函數的請求數目 (叫用計數) 和程式碼執行的時間 (叫用期間) 來付費。如需詳細資訊,請參閱 AWS Lambda 定價

create-lambda-function_7

(按一下以縮放)

create-lambda-function_7

雖然保留函數並不收費,但您還是可以從 AWS Lambda 主控台輕鬆刪除 Lambda 函數。 


a.  選取 Actions 按鈕,再按一下 Delete Function

create-lambda-function_6

(按一下以縮放)

create-lambda-function_6

b. 系統將要求您確認終止 – 選擇 Yes, Terminate.

create-lambda-function_12

(按一下以縮放)

create-lambda-function_12

您已經建立第一個 AWS Lambda 函數。這是了解如何執行應用程式而不需要佈建或管理伺服器的第一步。Lambda 透過執行您的程式碼來回應每次觸發,以自動擴展應用程式,而且是隨著工作負載的大小精確地擴展。

現在您已經了解如何建立 Lambda 函數,接著可以進行下一個教學,以了解如何觸發 Lambda 函數來處理上傳到 Amazon S3 儲存貯體的資料。您將使用 Lambda 函數即時建立上傳到 S3 儲存貯體的影像縮圖。

使用 AWS Lambda 搭配 Amazon S3 »