API网关与缓存 - Bhargav Shah

作者:API传播员 · 2026-01-10 · 阅读时间:6分钟
本文介绍API网关与缓存的基本概念,重点阐述亚马逊API网关的优势、定价、创建步骤及缓存工作原理。通过启用缓存功能,可以显著提升API性能并减少后端服务负载,包括基于查询字符串的缓存设置和测试方法。

什么是API网关与缓存?

API网关是一种服务,能够帮助开发者轻松创建、发布、维护、监控和保护API。缓存则是通过存储API响应数据,减少对后端服务的请求次数,从而提升API的性能和响应速度。


什么是亚马逊API网关?

RESTful APIWebSocket API。它可以与多种AWS服务集成,并提供多种功能来简化API的开发和管理。


亚马逊API网关的优势

亚马逊API网关具有以下主要优势:

  • 支持多种协议:支持有状态的WebSocket API和无状态的REST API
  • 与AWS服务集成:能够与AWS Lambda、Amazon Kinesis和Amazon DynamoDB等服务无缝集成
  • 灵活的授权机制:支持IAM角色和策略、AWS Lambda授权器或Amazon Cognito用户池来管理API访问权限。
  • 商业化API:支持通过使用计划和API密钥API作为SaaS产品进行销售。
  • 强大的缓存功能API缓存支持从0.5GB到237GB的范围,能够显著提升API性能。

API网关定价

亚马逊API网关的定价模式如下:

  • 免费层:每月包含100万个HTTP/REST API调用、100万条WebSocket API消息和750,000分钟的连接时间,免费期限最长为12个月。
  • REST API调用费用:超过免费层后,每100万次API调用收费4.5美元。
  • WebSocket API消息费用:超过免费层后,每10亿条消息收费1.26美元。
  • 缓存费用:缓存0.5GB的费用为0.028美元/小时,最大237GB的费用为4.40美元/小时。

使用API网关创建API的步骤

以下是使用Amazon API网关创建API的详细步骤:

  1. 打开AWS管理控制台,选择“Amazon API网关”服务,点击“入门”。
  2. 选择协议类型为“REST”。
  3. 输入API名称(也可以导入Swagger文件)。
  4. 点击“创建API”。
  5. 创建资源(例如:test-api)和方法(如GET方法),并绑定到HTTP端点(例如简单的S3网站)。
  6. 部署API,并为其创建一个新阶段(如开发阶段)。
  7. 部署完成后,您将获得API的URL。例如:
    <https://vy3lpd1o70.execute-api.ap-northeast-1.amazonaws.com/dev/test-api>

API缓存的工作原理

在Amazon API网关中启用API缓存后,API网关会在指定的生存时间(TTL)内缓存端点的响应数据。缓存的主要优点包括:

  • 减少后端调用次数:通过缓存响应数据,降低对后端服务的负载。
  • 提升响应速度:直接从缓存中返回数据,减少延迟。

默认情况下,API缓存的TTL值为300秒,最大TTL值为3600秒。TTL设置为0表示缓存已禁用。启用缓存时,默认仅对GET方法生效,其他方法需要手动配置。


为API启用缓存的步骤

以下是为API启用缓存的具体步骤:

  1. 打开API资源(例如:test-API)。
  2. 选择阶段(如开发阶段)。
  3. 勾选“启用API缓存”选项。
  4. 设置缓存大小(例如:0.5GB,费用为0.028美元/小时)。
  5. 将TTL设置为300秒(最小值为0秒,最大值为3600秒)。
  6. 在“日志/跟踪”中启用CloudWatch指标。
  7. 保存更改,完成缓存设置。

注意:创建或删除缓存大约需要4分钟时间。在此期间,缓存状态会从“CREATE_IN_PROGRESS”变为“AVAILABLE”,删除时状态会变为空字符串。


测试缓存功能

启用缓存后,可以通过以下步骤测试其功能:

  1. 调用API网关端点。
  2. 打开CloudWatch,查看API网关的相关指标。
  3. 修改S3中的静态数据,再次调用API。如果返回的是旧数据,则说明缓存生效。

根据TTL设置(例如300秒),缓存过期后将返回最新数据。


刷新整个缓存

在API网关中,您可以通过点击“刷新整个缓存”按钮,手动清除缓存数据。此操作会立即使缓存失效,并强制API返回最新的端点响应。


基于查询字符串的缓存

API网关还支持基于查询字符串参数的缓存。以下是启用该功能的步骤:

  1. 选择方法(例如GET)并进入“方法执行”页面。
  2. 添加“URL查询字符串参数”。
  3. 勾选“缓存”选项。
  4. 部署API。

启用后,不同的查询字符串参数将生成独立的缓存数据。例如:
/test-api?request=all/test-api?request=few 将分别缓存不同的响应。


通过本文的介绍,您应该已经了解了API网关与缓存的基本概念、优势、定价以及如何使用和测试这些功能。合理利用API缓存,不仅可以提升API性能,还能有效降低后端服务的压力。

原文链接: https://shahbhargav.medium.com/api-gateway-caching-3f86034ca491