Table of Contents
在现代软件架构中,微服务已成为可扩展、有弹性和独立可部署应用的标准,但是,管理数十个甚至数百个微服务API引入了重大的复杂性——线路安排要求、执行安全政策、处理费率限制和在交通模式中增加可见度,Azure API Gateways为所有微服务API提供完全管理、集中的切入点,从而解决了这些挑战,简化了交叉性关切,加强了安全,使团队能够专注于建设业务逻辑而不是为每一项服务重新创造基础设施。
了解 Azure API 网关
Azure API Gateway 是一个云端服务,它位于客户端和您的微服务后端之间。它充当了反向代理,接受所有API的呼叫,应用定义的政策(认证、节流、记录、转换),并将请求转发给适当的后端服务。与传统的单端网关不同,Azure API Gateway 是为弹性而建的 — 它与流量自动比对,并深深地与Azure Active Directory, 应用透视和 Azure Monitor 等其他Azure 服务融合在一起.
在比较API网关时,Azure API Gateway突出其与Azure生态系统的紧密融合。对于已经使用Azure的团队来说,它通过消除管理服务器、加载平衡器或反向代理等需要来减少运行间接费用。它也支持RESTful和WebSocket API,使其适合实时应用。
Azure API 网关的核心功能
请求运行和转换
Azure API 网关会根据 URL 路径、 头条、 查询参数或有效载荷内容, 将请求传送到不同的微服务。 您可以定义多个后端, 并使用网关政策表达式动态地映射它们。 此外, 网关还可以转换请求和响应有效载荷, 例如, 将 XML 转换为 JSON, 剥离或添加头条, 或在将请求传递到后端之前重写 URL。 将客户端的期望从内部服务合同中解开 。
认证和授权
安全是一等的特性。 Azure API Gateway 支持各种认证机制 :
- Outh 2.0 / OpenID Connect – 与 Azure AD 或任何 OAuth 提供者整合,在转发请求前验证符号.
- API keys – 快速限制客户端的访问,这些客户端呈现出有效的密钥,对公共或伙伴API有用.
- JWT验证 –验证自足的符号的签名,签发者,受众,以及过期.
- 客户端证书 – 对于mTLS(mutulal TLS)假想,网关可以使用证书认证客户端.
这些安全政策与IP过滤和限制在到达您的微服务前屏蔽恶意交通结合.
限制税率和配额
限制利率对于防止滥用和确保客户公平使用至关重要。 Azure API Gateway 允许您定义 per\ key 或 per\ IP 利率限制(例如每分钟100个请求) 并设定配额(例如每天10,000个呼叫) 。 当超过限制时, 网关返回 HTTP 429( 太多请求) , 不影响您的后端服务 。
缓存以求性能
为了减少后端加载量并改善响应时间, Azure API Gateway 支持响应缓存。 您可以配置每次操作的缓存时间。 缓存项被存储在共享于网关的分布式缓存中, 因此即使在规模XX事件期间, 响应仍然可用 。
分析和监测
每个通过网关的请求都会被记录. Azure API Gateways 与 Azure 监视器和应用程序 Insights 集成,提供详细的度量标准(请求每秒, 延迟, 错误率, 节奏请求) 和日志以供审计。 您可以设置异常的提示, 如突然突升500个错误或针对特定终点的流量激增 。
管理带有 Azure API 网关的微服务 API
集中管理是使用API网关的最强论据之一. Azure API网关在Azure门户网站内提供了一个统一的仪表板,您可以:
- 定义API定义(以OpenAPI/Swagger格式)并自动生成策略.
- 集团将API与具有不同准入级(免费、溢价等)的产品联系起来。
- 管理您的 API 版本,而不打破已有客户端 。
- 在全球、产品、API和操作等多个层次应用政策,以实施精细的“加固控制”。
对于基础设施,您可以使用 Azure 资源管理器模板、 Bicep 或 Terraform 定义网关、 API 和政策。这使得 CI/CD 管道能够自动部署 API 更改,确保环境的一致性。
使用 Azure API 网关来保障 API
安全是一个多层问题。 Azure API Gateway 帮助在周边执行防御原则:
认证和托肯验证
通过验证网关上的OAuth 2.0 令牌(从 Azure AD 或自定义 STS 的进入令牌),微服务本身就不再需要解码和验证令牌了。这可以减少锅炉板码,简化安全审计。网关还可以在请求到达后端之前拒绝过期或无效的令牌。
威胁保护
Azure API Gateway 在Azure Front Door或应用程序 Gateway 后部署时可以与 Azure Web 应用程序防火墙(WAF)整合. WAF在到达API网关前会阻挡常见的OWASP ⁇ 式攻击(SQL注入,XSS). 此外,网关本身还可以执行验证请求机构,限制内容长度,拒绝错误的有效载荷的政策.
IP和网络安全
您可以将流量限制在特定的 IP 地址或范围。 对于内部的微服务, 网关可以配置为只能接受虚拟网络( VNet) 的呼叫, 防止公众互联网的曝光。 结合私人端点, 您可以将所有后端流量保留在 Azure 主干线内 。
用于自定义安全的政策表达式
政策表达式允许您写入内置的 CQQ 类代码, 用于检查信头、 查询字符串或实体内容并作出决定。 例如, 您可以检查自定义信头, 如果它缺失, 返回一个 401 , 或者验证 HMAC 签名以获取请求完整性 。 这种灵活性可以确保您可以不离开网关而执行几乎所有的安全要求 。
性能和放大
Azure API Gateway 旨在处理高吞吐量,它根据请求数量和CPU的利用率自动进行比例化. 有两层:开发者(用于测试和评价)和Premium(用于与SLA一起生产,无限API定义,以及虚拟网络集成).
为了进一步优化业绩:
- 读作"重音API"的可选缓存[,以减少后端调用.
- 使用后端集合,负载平衡,以在多个实例中分配流量.
- ] Implement 线路断路器模式通过政策避免连锁故障.
- 监控空闲度[在应用透视中并设定适当的超时.
监测和分析
使用 IMAP 的 API 调用 。 使用 IMP 的 IPL 和 API 的 IPL 的 IPL , 将您获取实时和历史数据。 使用 IMPL 的 IPL , 可以通过使用、 错误 率和 响应时间来显示顶端 API 。 设置关键阈值的提示, 例如, 当 p95 的 latency 超过 2 秒 或 当 4XX 错误率 的 point 时。 网关也会登录 Log Analytics 的详细事件数据, 可以在事件发生后进行深入的法证分析 。
Azure API 网关的最佳做法
- 设计带有网关的API –使用一致的URL模式和版本方案(例如).
- 保持网关政策简单 – 避免影响时间的复杂政策链. 使用开发者模式调试.
- 与Azure Front Door 的连接网关 — 对于全球分布,地理冗余,以及WAF保护,将Azure Front Door置于API网关之前.
- 自动部署 – 使用基础设施的 ⁇ as ⁇ code来进行版本,并始终如一地应用网关配置.
- 使用订阅和费率限制 –即使对内部API,也应用节流来检测来自受损服务的异常流量.
- 可靠的诊断日志 – 船舶日志到日志分析,并与Azure Sentinel连接用于安全审计.
结论
Azure API Gateway为微服务API提供了一个稳健,可扩展,安全的切入点。 它集中了认证,限制费率,缓存和监测等交叉性关注,从而减轻了个人服务的负担。 通过与Azure的生态系统融合,团队可以实现高性能,深度可见度,以及操作简便。 无论您是从单一建筑还是建设绿地微服务景观中迁移,Azure API Gateway都是企业++级API管理的基础组成部分。 首先,定义您的API表面,允许安全政策,并随着您的成长而逐渐完善。
进一步读作: