API网关与缓存 - Bhargav Shah
文章目录
什么是API网关与缓存?
API网关是一种服务,能够帮助开发者轻松创建、发布、维护、监控和保护API。缓存则是通过存储API响应数据,减少对后端服务的请求次数,从而提升API的性能和响应速度。
什么是亚马逊API网关?
RESTful API和WebSocket 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的详细步骤:
- 打开AWS管理控制台,选择“Amazon API网关”服务,点击“入门”。
- 选择协议类型为“REST”。
- 输入API名称(也可以导入Swagger文件)。
- 点击“创建API”。
- 创建资源(例如:test-api)和方法(如GET方法),并绑定到HTTP端点(例如简单的S3网站)。
- 部署API,并为其创建一个新阶段(如开发阶段)。
- 部署完成后,您将获得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启用缓存的具体步骤:
- 打开API资源(例如:test-API)。
- 选择阶段(如开发阶段)。
- 勾选“启用API缓存”选项。
- 设置缓存大小(例如:0.5GB,费用为0.028美元/小时)。
- 将TTL设置为300秒(最小值为0秒,最大值为3600秒)。
- 在“日志/跟踪”中启用CloudWatch指标。
- 保存更改,完成缓存设置。
注意:创建或删除缓存大约需要4分钟时间。在此期间,缓存状态会从“CREATE_IN_PROGRESS”变为“AVAILABLE”,删除时状态会变为空字符串。
测试缓存功能
启用缓存后,可以通过以下步骤测试其功能:
- 调用API网关端点。
- 打开CloudWatch,查看API网关的相关指标。
- 修改S3中的静态数据,再次调用API。如果返回的是旧数据,则说明缓存生效。
根据TTL设置(例如300秒),缓存过期后将返回最新数据。
刷新整个缓存
在API网关中,您可以通过点击“刷新整个缓存”按钮,手动清除缓存数据。此操作会立即使缓存失效,并强制API返回最新的端点响应。
基于查询字符串的缓存
API网关还支持基于查询字符串参数的缓存。以下是启用该功能的步骤:
- 选择方法(例如GET)并进入“方法执行”页面。
- 添加“URL查询字符串参数”。
- 勾选“缓存”选项。
- 部署API。
启用后,不同的查询字符串参数将生成独立的缓存数据。例如:
/test-api?request=all 和 /test-api?request=few 将分别缓存不同的响应。
通过本文的介绍,您应该已经了解了API网关与缓存的基本概念、优势、定价以及如何使用和测试这些功能。合理利用API缓存,不仅可以提升API性能,还能有效降低后端服务的压力。
原文链接: https://shahbhargav.medium.com/api-gateway-caching-3f86034ca491
最新文章
- 如何创建带有JSON响应的简单REST API
- 一文讲透MCP的原理及实践
- API安全:基于令牌的验证 vs 基于密钥的验证,哪种更可靠?
- Spring API 接口加解密
- 我们如何构建教育数据门户的API
- 2025年 GitHub 上热门 AI Agents 开源项目:AutoGen、CrewAI、OpenDevin
- api 设计入门:最佳实践与实现
- 什么是 ERT
- Grok 2 和 Grok 3 使用教程:教你如何获得Grok3的访问权限
- 深入掌握Laravel 12中使用Sanctum实现的API认证 – Kritimyantra
- 如何在 Node.js 中构建 gRPC API
- Link支付怎么注册?一站式指南