- AWS Lambda 教程
- AWS Lambda - 首頁
- AWS Lambda - 概述
- AWS Lambda - 環境設定
- AWS Lambda - 簡介
- 構建 Lambda 函式
- NODEJS 中的函式
- Java 中的函式
- Python 中的函式
- Go 中的函式
- C# 中的函式
- 配置 Lambda 函式
- 使用 AWS 控制檯建立和部署
- 使用 AWS CLI 建立和部署
- 使用 Serverless Framework 建立和部署
- AWS 執行和呼叫 Lambda 函式
- 刪除 Lambda 函式
- 使用 Amazon API Gateway
- 帶有 Amazon S3 的 Lambda 函式
- 帶有 Amazon DynamoDB 的 Lambda 函式
- 帶有計劃事件的 Lambda 函式
- 帶有 Amazon SNS 的 Lambda 函式
- 帶有 CloudTrail 的 Lambda 函式
- 帶有 Amazon Kinesis 的 Lambda 函式
- 帶有自定義使用者應用程式的 Lambda 函式
- AWS Lambda@Edge 與 CloudFront
- 使用 Cloudwatch 進行監控和故障排除
- AWS Lambda - 其他示例
- AWS Lambda 有用資源
- AWS Lambda - 快速指南
- AWS Lambda - 有用資源
- AWS Lambda - 討論
使用 Amazon API Gateway
AWS Lambda 函式可以透過HTTPS URL 呼叫。它可以透過 GET、POST、PUT 進行操作。當 HTTPS URL 被呼叫時,AWS Lambda 函式也可以被觸發,並且透過get/post傳遞給 HTTPS 的資料可以在 AWS Lambda 內部使用,用於插入 DynamoDB 或傳送郵件等。
本章詳細討論了使用 AWS lambda 和 API Gateway 工作中涉及的各種流程。
涉及的流程
以下是在使用 AWS lambda 和 API Gateway 時涉及的流程:
- 建立用於許可權的 IAM 角色
- 建立 AWS lambda 函式
- 建立 API Gateway
- 將 lambda 函式連結到 api gateway
- 將資料傳遞到 api gateway
下面給出了一個解釋 API Gateway 和 AWS Lambda 工作原理的基本圖表:
這些流程將在本章中結合相關螢幕截圖進行詳細解釋。
建立用於許可權的 IAM 角色
從如下所示的 Amazon 服務中,選擇 IAM 以建立 Lambda 函式將使用的角色。
轉到 IAM,然後從左側部分選擇角色,如下所示:
點選建立角色以建立 Lambda 函式。
選擇 Lambda 並點選底部的許可權。選擇 API Gateway 和 Lambda 所需的許可權。
在搜尋中搜索 API gateway,它將列出所有相關的許可權。在這裡,我們選擇了對 API gateway 的完全訪問許可權,如下所示:
現在,搜尋 API gateway,它將列出所有相關的許可權。在這裡,我們選擇了對 API gateway 的完全訪問許可權,如下所示:
您也需要對策略重複相同的過程。
選擇完必要的策略後,點選檢視進入下一步。輸入您選擇的任意角色名稱,如下所示:
它顯示了附加到角色的策略。點選建立角色,我們就完成了角色建立,可以繼續進行 lambda 函式操作。
建立 AWS Lambda 函式
轉到 AWS 服務並點選 lambda 服務以建立一個函式,用於將其與 api gateway 連線。
Lambda 函式的 UI 螢幕如下所示。點選建立函式按鈕以繼續建立 Lambda 函式。
輸入函式名稱並選擇我們上面建立的現有角色。
它會顯示一條訊息,表明名為lambdawithapigateway的函式已成功建立。
請注意,這裡我們將使用nodejs執行時來編寫程式碼。帶有helloworld訊息的 AWS 程式碼如下所示:
AWS Lambda 程式碼位於index.js檔案中。名為 handler 的函式具有名為events、context和callback的引數。
回撥函式基本上包含錯誤和成功訊息。請注意,這裡我們沒有任何與錯誤相關的程式碼,因此傳遞 null,成功訊息為HelloWorld from lambda.
最後,儲存新增的更改,然後繼續將 Lambda 函式新增到 API gateway。
建立 API Gateway
登入您的 AWS 帳戶並開啟 API Gateway,如下所示:
點選 API Gateway,它將引導您進入可以建立新 API Gateway 的螢幕。
點選建立 API並新增如下所示的詳細資訊:
點選螢幕右側的建立 API按鈕。這將在螢幕左側顯示新建立的 API。
點選操作下拉選單以建立 API 的新資源。
現在,建立一個新的資源,如下所示:
輸入資源名稱,如下所示。您將在最後建立的 URL 中看到輸入的資源名稱。點選建立資源,您將在螢幕上看到它,如下所示:
向建立的資源新增GET/POST方法,如下所示。從操作下拉選單中選擇方法。
點選GET方法將該方法新增到 API。
下一步是整合,它將將其與 Lambda 函式整合。現在,將 Lambda 函式新增到其中,如下所示:
將 Lambda 函式連結到 API Gateway
選擇之前建立的 lambda 函式。
儲存更改,您將看到一個對話方塊,提示您授予許可權,如下所示:
點選確定以授予許可權。這是 API gateway HTTP 請求和 Lambda 函式之間的執行詳細資訊:
現在,讓我們部署 API gateway 更改。為此,我們需要從操作下拉選單中選擇部署 API,如下所示:
選擇部署 API。它將詢問部署狀態。從部署階段下拉選單中選擇新階段,並將階段名稱新增為生產。
點選部署按鈕,它將重定向到如下所示的 URL:
從左側選擇GET方法以獲取 URL。在新選項卡中開啟 URL 以檢視來自 Lambda 函式的訊息。
這是一個使用 AWS Lambda 和 AWS API Gateway 的基本示例。在上面的示例中,我們在 Lambda 函式中硬編碼了訊息。
現在,讓我們從 API Gateway 獲取訊息詳細資訊。如果 HTTPS 呼叫需要從不同的域呼叫,例如對 API 的 AJAX 呼叫,我們需要為建立的 API gateway 啟用 CORS。
選擇為 API 建立的 reSource 並點選操作下拉選單:
現在,啟用 CORS將開啟以下螢幕:
您可以使用幾種方法來啟用 CORS。Access-Control-Allow-Origin標記為 *,這意味著它將允許從任何域獲取 API gateway 的內容。
您還可以指定要與 API 配合使用的域名。點選啟用 CORS 並替換現有 CORS 標頭按鈕,它將顯示如下所示的確認訊息:
點選是,替換現有值按鈕以啟用它。啟用 CORS螢幕如下所示:
將資料傳遞到 API Gateway
開啟在 API Gateway 中建立的 APIdisplayhelloworld,如下所示:
點選整合請求以傳送資料,如下所示:
選擇主體對映模板併為本示例新增Content-Type為application/json。點選新增的內容型別並新增如下詳細資訊:
現在,以 JSON 格式新增模板,如下所示:
請注意,我們已將訊息作為引數,以從 API Gateway 獲取資料並與 AWS Lambda 共享。獲取詳細資訊的語法如上所示。
現在,部署 API 以使更改在 API Gateway URL 上可用。為此,我們需要更改 Lambda 函式以根據 API Gateway URL 顯示資料。Lambda 函式的程式碼如下所示。請注意,我們正在從事件中獲取訊息並將其傳遞給回撥。
exports.handler = (event, context, callback) => {
let message = event.message;
callback(null, message);
};
現在,儲存 Lambda 中的更改並點選 URL 以檢視更改。請注意以下螢幕截圖:
點選如下所示的 URL:
https://rw2ek1xung.execute-api.us-east- 1.amazonaws.com/prod/hello?message=hello%20from%20api%20gateway
請注意,這裡我們將訊息作為查詢字串傳遞給 GET URL。然後,您可以觀察到如下所示的輸出:
它讀取從 URL 傳送到訊息的詳細資訊,並在瀏覽器中顯示相同的內容。