使用 AWS Lambda 的 Amazon API Gateway 简介

使用 AWS Lambda 的 Amazon API Gateway 简介

源节点: 1860150

介绍

什么是API?

简单来说,API就是一个信使; 让我们通过一些例子来理解这一点。 假设您饿了,需要在家煮点东西。 如果你想做面条,你只需从柜子里取出材料,点燃炉子,然后自己做就可以了。 这是一个用自己的资源独立做某事的程序。 但是假设您想要披萨 - 您没有原料,而且您的家用烤箱并不适合制作美味的脆皮。 所以你去了一家披萨店。 但与在家不同的是,您不能只是走进厨房并开始使用他们的原料制作披萨。 他们不希望你的脏手弄脏他们的东西! 那么你会怎么做? 你必须去柜台点餐——会有一个菜单列出你可以点什么披萨以及你可以选择什么配料或其他选项。 这是一个 API。

应用程序编程接口(API)是一组指定两个软件程序如何交互的规则。

API 允许一个软件程序访问另一软件程序的功能。 例如,如果您有一个软件程序需要从互联网检索数据,它可以使用 API 从服务器请求该数据。 然后,服务器将响应所请求的数据,并且软件程序可以根据需要使用它。

API 用于允许不同的软件程序相互通信并共享数据和功能。 它们是现代软件开发的重要组成部分,因为它们允许不同的系统协同工作并能够创建更复杂、更强大的软件应用程序。

HTTP API

HTTP API 是一种使用 HTTP 协议发送和接收数据的 API。 它允许软件程序使用 HTTP 请求和响应发送和接收数据。 这些请求和响应可以采用各种格式,例如纯文本、JSON 或 XML。 它们通常用于广泛的应用程序,包括 Web 应用程序、移动应用程序和微服务。 这些 API 比 REST API 相对便宜,而且功能也比后者少。

REST API

REST API 是一种 API,遵循一组称为 REST(表述性状态传输)的架构原则。 REST 是一种软件架构风格,它定义了一组用于创建 Web API 的约束。

有状态 API

有状态 API 是维护有关每个客户端请求的信息并使用此信息处理后续请求的 API。 这意味着 API 将有关每个请求的数据(例如请求参数)存储在服务器端会话中。 然后,该数据用于处理来自同一客户端的后续请求。

无状态 API

另一方面,无状态 API 不维护有关客户端请求的信息。 它独立处理每个请求,不存储有关先前请求的任何数据。 这意味着该 API 不维护服务器端会话,也不使用先前请求的数据来处理后续请求。

有状态 API 和无状态 API 之间的主要区别

以下是有状态 API 和无状态 API 之间的一些主要区别:

有状态 API

无状态 API

1. 需要服务器端会话来存储有关客户端请求的数据 1.不需要服务器端会话来存储有关客户端请求的数据
2. 这些有时可能比无状态 API 慢,因为它们需要并存储数据,这需要时间。 2. 无状态 API 速度更快,因为它们不需要也不存储有关请求的数据。
3. 有状态API不容易扩展  3. 更容易扩展,因为它们不需要维护有关先前请求的数据。
4. 通常被认为不如无状态 API 安全 4. 这些通常被认为更安全。

什么是亚马逊 API 网关?

Amazon API Gateway 是一项 AWS 服务,用于创建、维护和监控有状态(websocket)和无状态(HTTP 和 REST)API。 我们可以使用这些API来访问:

  1. 任何 AWS 服务
  2. 存储在AWS云中的数据(例如S3存储桶)
  3. 任何其他网络服务。

如果您是 API 开发人员,您也可以轻松地将 API 提供给第三方开发人员。

AWS API Gateway的用户主要有两类。

  1. i) 创建和部署 API 以在 API Gateway 中启用所需功能的 API 开发人员
  2. ii) 作为 API 开发者的客户的应用程序开发者。

亚马逊 API 网关架构

架构

该架构说明了如何通过一致且集成的开发人员体验来构建无服务器应用程序。 从最终用户到数据中心,API网关处理所有涉及的任务,例如接受和处理数千个并发调用、流量管理、授权、监控、访问控制等。

亚马逊 API 网关功能

  1. 它支持有状态和无状态 API。 (示例:Websocket、HTTP 和 REST)。
  2. 强大的身份验证机制包括 AWS Identity、访问管理策略和 Lambda 授权者。
  3. 开发人员门户,API 开发人员可以在其中发布他们的 API。
  4. CloudWatch 的执行和访问日志记录,包括设置警报的选项。
  5. 与其他 AWS 服务集成,例如 AWS Lambda 和 AWS Kinesis。
  6. 与 AWS WAF 集成用于防范 Web 攻击,AWS X-Ray 用于了解和强调性能延迟。

Amazon API Gateway 入门

现在我们将创建一个无服务器 API。 在无服务器 API 中,我们可以专注于我们的应用程序,而不是花时间管理服务器。 它的工作原理如下:

  • API由客户端调用
  • API向lambda发送请求
  • Lambda 执行 lambda 函数并将结果发送回 API
  • API收到lambda的结果后,响应客户端

http API

第 1 步 – 创建 lambda 函数

Lambda 函数用于我们 API 的后端。 Lambda 仅在需要时运行代码。 它还可以自动从每天几个请求扩展到每秒数千个请求。

创建 lambda 函数

创建 lambda 函数:

1) 转到 lambda 控制台:https://console.aws.amazon.com/lambda

2) 单击创建函数。

3) 输入“my-function”作为函数名称。

4)选择Python 3.9作为运行时。

5) 对于此功能,我们不需要更改“权限和高级设置”选项卡中的任何内容,因为默认权限足以用于此演示。

4) 单击创建函数。

第 2 步 – 创建 HTTP API

亚马逊API

HTTP API 为您的 Lambda 函数提供 HTTP 终端节点。 它的工作原理如下:

  • 客户端向 HTTP API 提交查询
  • API 触发 lambda,然后执行 lambda 函数
  • Lambda 将结果发送到 API
  • API 使用收到的响应来响应客户端

创建 HTTP API 的步骤

1) 访问 API Gateway 控制台 https://console.aws.amazon.com/apigateway

2) 单击“Build”创建您的第一个 HTTP API

3)点击添加集成进行集成

4) 选择拉姆达。

5) 输入您的 lambda 函数 my-function。

6) 对于 API 名称,输入 my-http-api。

7) 单击“下一步”。

8) 查看为您创建的路线,然后选择下一步。

9) 检查为您创建的阶段,然后选择下一步。

10) 单击“创建”。

步骤 3 测试您的 API –

接下来,我们需要测试我们的 API 以确保它正常工作。 为此,我们将使用 Web 浏览器来调用我们的 API。

亚马逊API

测试我们的 API

  1. 转到 API Gateway 控制台:https://console.aws.amazon.com/apigateway
  2. 选择您的 API。
  3. 记下 API 的调用 URL。 (见上图)
  4. 复制 API 的调用 URL,并将其粘贴到 Web 浏览器中。 连接调用 URL 和 Lambda 函数的名称以调用您的 Lambda 函数。 默认情况下,API Gateway 控制台使用 Lambda 函数的名称“my-function”创建路由。 

    完整的 URL 应类似于 https://abcdef123.execute-api.us-east-2.amazonaws.com/my-function。加载此 URL 时,浏览器会向 API 发送 GET 请求

  1. 您应该看到文本“Hello from Lambda!” 在您的浏览器中。 因此,您的 API 的响应已得到验证。

亚马逊API

结论

我们使用 Amazon API Gateway 和 AWS Lambda 创建了第一个 HTTP API。 此外,我们可以探索相同的各种用例,同样,我们也可以创建 REST API,它提供更多功能。

你喜欢这篇文章吗? 请在下面的评论中告诉我们您的想法。 另外,不要忘记提及您接下来想阅读哪篇文章。

时间戳记:

更多来自 分析维迪亚