AWS Lambda 是 Amazon Web Services 提供的一項雲端服務,讓您可以在無需管理伺服器的情況下執行程式碼。這種雲端運算模型被稱為「無伺服器」(Serverless)架構。因此,您可以專注於您的程式碼及其功能,而 AWS 會負責處理底層的基礎架構,例如伺服器的維護與自動擴展。
AWS Lambda 簡介
AWS Lambda 根據事件來執行程式碼,例如使用者在網站上點擊按鈕或將檔案上傳到儲存服務。在這裡,您撰寫程式碼,然後將其上傳到 Lambda,並設定觸發條件告訴 Lambda 何時執行程式碼。此外,您只需為程式碼使用的運算時間付費,這讓您可以更有效地利用資源。
主要功能特色:
• 事件驅動執行:當特定事件發生時,程式碼會自動執行。
• 自動擴展:當有需求時,Lambda 可以平行執行多個程式,無需額外設定。
• 成本效益:您只需為實際運行的程式碼時間付費。
• 整合監控:AWS 提供工具來監控程式碼的執行情況。
AWS Lambda 的運作原理
在 Lambda 中,您需要遵循幾個步驟來建立函數並設置必要的配置。以下是詳細步驟:
1. 上傳您的程式碼
您可以使用支援的語言(如 Python、Node.js、Java、C# 或 Go)撰寫程式碼並上傳到 AWS Lambda。此外,您可以透過 AWS 管理控制台、AWS CLI 或整合開發環境(IDE)進行操作。
2. 為 AWS Lambda 設定觸發條件
觸發條件是觸發 Lambda 函數運行的事件。觸發條件可以來自多種 AWS 服務,例如:
• S3:當檔案上傳時。
• DynamoDB:當資料項目更新時。
• API Gateway:當 HTTP 請求發送時。
• SNS:當訊息發布時。
3. AWS Lambda 執行您的程式碼
當觸發事件發生時,Lambda 會自動執行您的程式碼。具體過程如下:
• 呼叫:事件資料會作為輸入傳遞給函數。
• 執行環境:AWS Lambda 會為您的函數建立執行環境,包含記憶體、CPU 和其他資源。
• 自動擴展:如果同時發生多個事件,Lambda 可以同時平行運行多個函數實例。
範例流程
1. 事件觸發:使用者將圖像上傳到 S3 儲存桶。
2. 呼叫:S3 事件觸發 Lambda 函數。
3. 執行環境:Lambda 啟動指定資源的執行環境。
4. 函數執行:您的函數處理圖像,例如調整大小。
5. 結果:調整後的圖像會被儲存回另一個 S3 儲存桶。
6. 日誌紀錄:函數的操作會記錄在 CloudWatch 中,這是一項監控和管理服務。
7. 自動擴展:如果同時上傳多個圖像,Lambda 會自動擴展來處理負載。
如何建立與部署 AWS Lambda 函數
首先,登入您的 AWS 帳戶,並從 AWS 控制台搜尋「Lambda」或從首頁導航至 Lambda。
接著點擊左側的三點選單,選擇「函數」(Functions)。然後在新開啟的頁面中點擊「建立函數」(Create Function)。
接著選擇「從頭開始撰寫」(Author from scratch),為函數命名並選擇適合您程式碼的執行環境(本例中選擇 Python)。
然後,您可以為函數設置架構,目前保持預設的 x86_64。設定完成後,點擊「建立函數」(Create Function)。成功建立函數後,您會看到以下界面。
接著向下捲動,您會看到程式碼來源畫面,在此您可以定義函數。
在這裡,您可以撰寫程式碼,或從您的系統/S3 儲存桶上傳。預設情況下會有以下程式碼,如果未顯示,您可以從這裡貼上:
“`
import json
def lambda_handler(event, context):
# TODO implement
return {
‘statusCode’: 200,
‘body’: json.dumps(‘Hello from Lambda!’)
}
“`
此函數在被調用時,會回傳一個包含 HTTP 狀態碼 200 和字串「Hello from Lambda!」的 JSON 格式回應。
完成程式碼後,點擊「測試」按鈕。
然後選擇「建立新事件」(Create new event),為其命名並儲存事件。
再次在程式碼來源畫面點擊「測試」(Test)。點擊後,系統會運行您的程式碼並顯示結果。
完成後,您可以透過「操作 > 刪除函數」(Actions > Delete function) 來刪除該函數
Comments