AWS Lambda教程

Amazon API网关

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 网关 将 lambda 函数链接到 api 网关 向api网关传递数据
此处给出了解释 API 网关和 AWS Lambda 工作的基本图表-
Processes Involved
本章将详细解释这些过程并附上相关屏幕截图。

为权限创建 IAM 角色

从如下所示的 Amazon 服务中,选择 IAM 以创建要由 Lambda 函数使用的角色。
创建 Iam
转到 IAM 并从左侧部分选择 角色,如下所示-
仪表板菜单
为 Lambda 函数单击 创建角色
其他资源
选择 Lambda 并点击底部的 权限。选择 API Gateway 和 Lambda 所需的权限。
选择类型
在搜索中搜索API网关,它会列出你所有的相关权限。这里我们选择了 API 网关的完全访问权限,如下所示-
附加权限
现在,搜索 API 网关,它会列出所有相关权限。这里我们选择了 API 网关的完全访问权限,如下所示-
Api 网关
您还必须为政策重复相同的过程。
Policies
选择必要的政策后,点击 查看进行下一步。根据您的选择输入角色的名称,如下所示-
Review
它显示附加到角色的策略。点击 创建角色,我们就完成了角色的创建,可以继续使用 lambda 函数了。

创建 AWS Lambda 函数

转到 AWS services 并单击 lambda 服务以创建用于将其与 api 网关连接的函数。
计算
Lambda 函数的 UI 屏幕如下所示。单击 创建函数按钮以继续创建 Lambda 函数。
UI 屏幕
输入函数名称并选择我们在上面创建的现有角色。
输入名称
它会闪现一条消息,说明名为 lambdawithapigateway 的函数已成功创建。
Lambda 网关
请注意,这里我们将使用 nodejs 运行时来编写代码。带有 helloworld 消息的 AWS 代码如下所示-
环境
AWS Lambda 代码存在于 index.js 文件中。称为处理程序的函数具有参数,即 events、contextcallback
回调函数基本都有错误和成功信息。请注意,这里我们没有任何与错误相关的代码,因此传递了 null 并且成功消息是 HelloWorld from lambda。
最后,保存添加的更改,让我们继续将 Lambda 函数添​​加到 API 网关。

创建 API 网关

登录您的 AWS 账户并打开 API Gateway,如下所示-
内容交付
点击 API Gateway,它会引导您进入可以创建新 API 网关的屏幕。
亚马逊网关
点击 创建 API 并添加详细信息,如下所示-
新建
点击屏幕右侧的 创建 API 按钮。这将在屏幕左侧显示新创建的 API。
创建新 Api
点击 操作下拉菜单为 API 创建新资源。
Action Dropdown
现在,创建一个新资源,如下所示-
资源组
输入 资源名称,如下所示。您将看到在最后创建的 url 中输入的资源名称。单击 创建资源,您将在屏幕上看到它,如下所示-
子资源
资源服务
向创建的资源添加 GET/POST 方法,如下所示。从 操作下拉菜单中选择方法。
获取方法
单击 GET 方法将方法添加到 API。
API 方法
下一步是将其与 Lambda 函数集成的集成。现在向其中添加 Lambda 函数,如下所示-
获取设置

将 Lambda 函数链接到 API 网关

选择之前创建的 lambda 函数。
hello Setup
保存更改,您可以看到一个对话框要求许可,如下所示-
添加权限
点击 确定获得权限。这是 API 网关 HTTP 请求和 Lambda 函数之间的执行细节-
方法执行
现在,让我们部署 API 网关更改。为此,我们需要从 Actions 下拉列表中选择 Deploy API,如下所示-
部署 Api
选择 部署 API。它将询问部署状态。从部署阶段下拉列表中选择 New Stage 并将阶段名称添加为 Production
选择部署
点击 部署按钮,它会将您重定向到如下所示的网址-
单击部署
从左侧选择 GET 方法以获取 url。在新选项卡中打开 url 以查看来自 Lambda 函数的消息。
选择获取
这是使用 AWS Lambda 和 AWS API Gateway 的基本示例。在上面的例子中,我们在 Lambda 函数中对消息进行了硬编码。
现在,让我们从 API 网关获取消息详细信息。如果必须从不同的域调用 HTTPS 调用,例如对 API 的 AJAX 调用,我们需要为创建的 API 网关启用 CORS。
选择为 API 创建的资源,然后点击 Actions 下拉菜单-
Hello Method
现在, 启用 CORS 将打开以下屏幕-
启用 Cors
您可以使用几种方法来启用 CORS。 Access-Control-Allow-Origin 被标记为 * 这意味着它允许从任何域的 API 网关获取内容。
您还可以指定要与 API 一起使用的域名。单击 启用 CORS 并替换现有的 CORS 标头按钮,它将显示如下所示的确认消息-
Conform Method
单击 是,替换现有值按钮以启用它。 启用 CORS 屏幕如下所示-
替换现有值

将数据传递到 API 网关

打开在 API Gateway displayhelloworld 中创建的 API,如下图所示-
传递数据
点击 集成请求发送数据如下所示-
集成请求
选择 Body Mapping Templates 并将此示例的 Content-Type 添加为 application/json。单击添加的内容类型添加详细信息如下-
身体映射
现在,添加 JSON 格式的模板,如下所示-
Json
观察到我们已经将消息作为参数从 API Gateway 获取数据并与 AWS Lambda 共享。获取详细信息的语法如上所示。
现在,部署 API 以使更改在API 网关 URL。为此,我们需要更改 Lambda 函数以根据 API 网关 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 读取发送到消息的详细信息,并在浏览器中显示相同的内容。
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4