- 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 发送到消息的详细信息,并在浏览器中显示相同的内容。