
- AWS Lambda 教程
- AWS Lambda - 首頁
- AWS Lambda - 概述
- AWS Lambda - 環境設定
- AWS Lambda - 簡介
- 構建 Lambda 函式
- Node.js 函式
- Java 函式
- Python 函式
- Go 函式
- C# 函式
- 配置 Lambda 函式
- 使用 AWS 管理控制檯建立和部署
- 使用 AWS CLI 建立和部署
- 使用 Serverless Framework 建立和部署
- AWS 執行和呼叫 Lambda 函式
- 刪除 Lambda 函式
- 使用 Amazon API Gateway
- Lambda 函式與 Amazon S3
- Lambda 函式與 Amazon DynamoDB
- Lambda 函式與計劃事件
- Lambda 函式與 Amazon SNS
- Lambda 函式與 CloudTrail
- Lambda 函式與 Amazon Kinesis
- Lambda 函式與自定義使用者應用程式
- AWS Lambda@Edge 與 CloudFront
- 使用 CloudWatch 進行監控和故障排除
- AWS Lambda - 附加示例
- AWS Lambda 有用資源
- AWS Lambda - 快速指南
- AWS Lambda - 有用資源
- AWS Lambda - 討論
AWS Lambda 簡介
AWS Lambda 是一種服務,它負責在沒有伺服器的情況下計算您的程式碼。它被稱為無伺服器計算。程式碼根據 AWS 服務中的事件響應執行,例如在 S3 儲存桶中新增/刪除檔案、更新 Amazon DynamoDB 表格、來自 Amazon API Gateway 的 HTTP 請求等。
AWS Lambda 程式碼可以用 Node.js、Java、C#、Python 和 Go 編寫。本章將詳細介紹如何在 AWS 管理控制檯中建立 AWS Lambda 函式。
AWS 管理控制檯
透過以下連結登入 AWS 管理控制檯 https://aws.amazon.com/console。登入後,它會將您重定向到顯示 AWS 服務的螢幕。

示例:建立函式
讓我們透過一個示例來了解 AWS 管理控制檯的功能。單擊 Lambda(如上所示),它將重定向到建立函式,如下所示:

單擊建立函式按鈕,螢幕將顯示以下詳細資訊:

請注意,預設情況下,選項為從頭開始創作。此選項允許您從頭開始編寫 Lambda 程式碼。它只有一個帶有hello world訊息的簡單函式。
第二個選項藍圖具有以下詳細資訊。

它提供了已經為某些 AWS 服務編寫的程式碼的詳細資訊,這些程式碼使用 AWS Lambda 提供的語言編寫。如果您需要為任何服務編寫 AWS Lambda 程式碼,可以在藍圖中檢查並開始。
第三個選項無伺服器應用程式儲存庫具有無伺服器應用程式的設定,這將有助於部署 AWS Lambda 程式碼。
在接下來的討論中,我們將使用從頭開始創作選項來建立 AWS Lambda 函式。
在建立 Lambda 函式之前,我們需要一個角色,即與 AWS 服務和 AWS Lambda 協同工作的許可權。稍後,該角色必須分配給 AWS Lambda 函式。
在 AWS 管理控制檯中建立角色
要在 AWS 管理控制檯中建立角色,請轉到 AWS 管理控制檯服務並單擊 IAM,如下所示:

現在,如果您單擊IAM,您將看到如下所示的螢幕:

如果您選擇角色,您可以在螢幕上看到以下按鈕:

現在,單擊建立角色。它會要求您選擇需要使用建立的角色的服務。

由於我們需要將此角色與 AWS Lambda 一起使用,因此選擇Lambda並單擊下一步:許可權按鈕,如上所示。下一個螢幕顯示根據 AWS 服務可用的策略名稱。您可以從此處選擇策略:

例如,如果您希望 AWS Lambda 具有與 S3 和 DynamoDB 協同工作的許可權,則需要選擇策略。在搜尋框中,輸入 AWS 服務並單擊複選框。您可以選擇多個策略,然後單擊下一步:審查。
也可以建立您自己的策略。例如,存在 DynamoDB 表,並且您只需要向該表授予許可權,在這種情況下,您可以建立策略。
單擊螢幕上顯示的建立策略按鈕。螢幕上顯示以下詳細資訊。

選擇您正在為其建立策略的服務。稍後,它將顯示操作、資源和請求條件的資料。

現在,我們應該選擇服務。讓我們從搜尋中選擇AWS DynamoDB。操作具有以下詳細資訊:

現在,輸入要授予 DynamoDB 的訪問級別。然後,資源將顯示以下詳細資訊:

現在,選擇表資源型別。您可以看到以下輸出:

要獲得表許可權,您需要新增 ARN。ARN 是在 AWS DynamoDB 中建立的表的唯一詳細資訊。在 DynamoDB 中建立表時,您將獲得這些詳細資訊。
如果您單擊新增 ARN,它將顯示以下詳細資訊:

現在,如果您輸入ARN,則區域、帳戶和表名稱將被填充。您應該單擊新增按鈕以新增策略。同樣,您可以為其他服務建立策略。

在這裡,我們選擇了兩個策略AmazonS3FullAccess和AmazonDynamoDBFullACcess。我們在該角色中授予了對 S3 和 DynamoDB 的完全訪問許可權。但是,建議您僅向必要的儲存桶和表授予許可權。
您可以按照前面討論的步驟使用ARN建立策略。
步驟 1
單擊建立角色按鈕以建立角色。所有建立的角色都將顯示如下:

步驟 2
請注意,如果您需要修改建立的角色,可以選擇所需的角色。如果我們選擇從頭開始創作選項,則必須輸入名稱、執行時和角色。

步驟 3
您可以在執行時下拉選單中觀察以下詳細資訊:

步驟 4
您可以選擇您選擇的執行時並繼續,如圖所示。

角色下拉選單具有以下選項:
選擇現有角色 - 這將顯示在 IAM 角色中建立的所有角色。
從模板建立新角色 - 這將允許您建立角色,並將顯示為此角色選擇的許可權。觀察螢幕截圖以更好地理解。
建立自定義角色 - 這允許使用者建立策略,如我們前面討論的那樣。
步驟 5
選擇執行時、角色並新增函式。單擊建立函式按鈕以建立 Lambda 函式。顯示的下一個螢幕如下所示:

AWS Lambda 函式的組成部分
AWS Lambda 函式有兩個部分:配置和監控。讓我們詳細討論每個部分。
配置
配置中包含以下功能。
新增觸發器
需要新增到 AWS Lambda 函式的觸發器如下所示:

請注意,當我們選擇觸發器時,我們需要為該觸發器新增配置詳細資訊。例如,對於 S3 觸發器,我們需要選擇儲存桶名稱;對於 DynamoDB 觸發器,我們需要選擇表名稱。
示例
讓我們來看一個 S3 觸發器配置詳細資訊的示例:

現在,為新增的 S3 觸發器新增配置詳細資訊:

在這裡,您需要選擇要在其上觸發 Lambda 的儲存桶名稱、事件型別、字首和篩選模式(如有)以及新增觸發器。
在 Lambda 中新增程式碼
現在,我們應該關注要編寫的 Lambda 程式碼。要在 AWS Lambda 中新增程式碼,有三個選項:
- 使用內聯編輯器
- 使用 .zip 檔案
- 從 Amazon S3 上傳檔案
這在下面給出的螢幕截圖中顯示:

讓我們詳細討論每一個。
使用內聯編輯器
您可以編寫程式碼的內聯程式碼編輯器如下所示:

您可以透過選擇您選擇的語言來編寫程式碼。您可以在此處再次選擇執行時。
觀察以下螢幕截圖以更好地理解:

程式碼必須寫在index.js.Handler中。詳細資訊將根據執行時而有所不同。對於Node.js,它是檔名.匯出函式,現在是index.lambda handler。
上傳 .ZIP 檔案
您可以首先編寫程式碼,將其壓縮,然後透過選擇上傳 .ZIP 檔案來上傳 zip 檔案。
從 Amazon S3 上傳檔案
您可以將檔案上傳到 S3 儲存桶並選擇從 Amazon S3 上傳檔案選項。
請注意,對於.ZIP和S3,將無法更改執行時。
環境變數
它們接收鍵值對並將它們與 AWS Lambda 程式碼共享。我們可以在 AWS Lambda 中使用環境變數來儲存資料庫連線詳細資訊、儲存輸出的檔案詳細資訊、日誌檔案詳細資訊等。

標籤
它們是新增到 AWS Lambda 的鍵值對,用於在跨不同區域使用時更好地組織函式。對於簡單的用例,不需要它。當建立大量 Lambda 函式時,標籤有助於過濾和管理 Lambda 函式。

執行角色
如果在建立 Lambda 函式開始時沒有正確完成,您可以在此處再次更改角色。您可以在此處更新或建立新角色。它提供與建立 Lambda 函式開始時顯示的相同選項。

基本設定
在這裡,您需要輸入 Lambda 函式正在執行的操作的簡短描述。選擇 Lambda 函式所需的記憶體和超時。

網路
這允許您選擇 VPC,這將允許您從 VPC 訪問 Lambda 函式。預設情況下,未選擇任何 VPC。

除錯和錯誤處理
對於除錯和錯誤處理,您可以選擇 AWS 服務來發送詳細資訊。可用的選項包括無、SNS和SQS。

併發
這允許您為該函式分配允許的併發執行的特定限制。

審計和合規性
這包含使用 AWS CloudTrail 管理的日誌。

完成後,您需要使用此處顯示的儲存按鈕儲存更改:

現在,如果您單擊測試按鈕,它將要求提供測試事件。您可以傳遞示例測試事件,如下所示:
建立的測試事件如下所示:

現在,儲存測試事件並單擊測試按鈕以檢視 AWS Lambda 函式的執行:

index.js的程式碼如下:
exports.lambdahandler = (event, context, callback) => { // TODO implement console.log(event.key1); console.log(event.key2); console.log(event.key3); callback(null, 'Lambda test'); };
請注意,當出現錯誤或成功時會呼叫回撥函式。如果成功,您將看到Lambda 測試將被顯示。
監控
選擇監控選項卡以檢視 Lambda 函式的執行詳細資訊。圖表顯示執行時間、發生的錯誤等的詳細資訊。

您也可以在 Cloudwatch 中檢視日誌。為此,請訪問 AWS 服務並選擇 Cloudwatch,如下所示:

現在,從左側選擇日誌,並在過濾器中輸入您的函式名稱:
