Skip to content
返回云服务

Azure API 管理

企业级 API 网关,提供版本管理、限流、配额、JWT 验证、响应缓存和用于发现与订阅的开发者门户。

Azure高级

为什么

APIM 位于所有后端(Functions、App Service、AKS、遗留 SOAP)之前,统一应用横切策略:认证、限流、缓存、转换和可观测性。开发者门户让内部/外部团队发现并订阅 API,自助签发密钥。Azure holds 21% cloud market share (Synergy Research Q4 2024)。

Azure 是拥有 Microsoft 365 / Active Directory 资产的企业的默认选择 — 95% 的财富 500 强使用 Azure。AKS 和 Cosmos DB 对 .NET 工作负载是一等公民。

何时使用

向内部或外部消费者暴露多个 API 且需统一认证、限流、配额和开发者门户时使用 APIM。单 API 简单需求可用 Azure Front Door 或 App Service 内置认证。

无服务器按请求付费用 Consumption 层,可预测负载用 Standard 层。

如何做

1. 创建 APIM 实例(无服务器用 Consumption 层,全功能用 Standard 层)。 2. 通过导入 OpenAPI 规范或手动定义添加 API。 3. 设置后端 URL(你的 Functions/App Service/AKS)。 4. 添加策略:validate-jwt、rate-limit-by-key、cache-response、set-header。 5. 创建产品并关联 API 以分组访问。 6. 发布开发者门户实现自助订阅。 ```bash az apim create --name myapim --resource-group rg --publisher-name "Contoso" --publisher-email [email protected] --sku-name Consumption az apim api create --name myapi --service-name myapim --resource-group rg --path "echo" --service-url "https://myapp.azurewebsites.net" ```

示例

入站策略:验证 JWT、按订阅密钥限流(100 次/60 秒)、缓存 GET 响应 60 秒: ```xml <policies> <inbound> <validate-jwt header-name="Authorization" failed-validation-http-code="401"> <openid-config url="https://login.microsoftonline.com/contoso.onmicrosoft.com/.well-known/openid-configuration" /> </validate-jwt> <rate-limit-by-key calls="100" renewal-period="60" counter-key="@(context.Subscription.Id)" /> <cache-lookup vary-by-developer="false" vary-by-developer-key="false" /> </inbound> <outbound> <cache-store duration="60" /> </outbound> </policies> ```

常见问题

  • ⚠策略 XML 语法错误阻止所有请求 —— 先在开发层测试策略;策略编辑器在保存前显示验证错误。
  • ⚠Consumption 层缺少部分功能(VNet 集成、多区域)—— 需要这些功能时升级到 Standard V2;Consumption 无服务器更便宜但功能有限。
  • ⚠开发者门户未显示新 API —— 添加 API 后必须发布门户;在门户编辑器中点击 'Publish' 或调用管理 API。

最佳实践

  • ✓在产品或 API 级别定义策略而非按操作,使新增操作自动继承正确的认证和限流。
  • ✓策略中的密钥使用命名值(Key Vault 引用),凭据可轮换而无需编辑策略 XML。
  • ✓将 APIM 放入 VNet(Developer/Standard/Premium)以访问 AKS/App Service 中的私有后端,无需公开暴露。

常见问题解答

什么是Azure API 管理?它解决什么问题?

企业级 API 网关,提供版本管理、限流、配额、JWT 验证、响应缓存和用于发现与订阅的开发者门户。 它可帮助开发者在不自建基础设施的前提下完成部署、存储与扩展,是云服务选型的核心参考。

如何在 5 分钟内上手Azure API 管理?

两步即可跑通:① 创建 APIM 实例(无服务器用 Consumption 层,全功能用 Standard 层)。;② 通过导入 OpenAPI 规范或手动定义添加 API。。建议先用免费套餐验证流程,再接入生产环境。

Azure API 管理 最容易踩的坑是什么?

最高频的问题是:策略 XML 语法错误阻止所有请求 —— 先在开发层测试策略;策略编辑器在保存前显示验证错误。。建议在上线前用 checklist 逐项核对,并在 CI 中加入策略与配置扫描。

Azure API 管理 的最佳实践有哪些?

Azure API 管理 的最佳实践包括:在产品或 API 级别定义策略而非按操作,使新增操作自动继承正确的认证和限流。;策略中的密钥使用命名值(Key Vault 引用),凭据可轮换而无需编辑策略 XML。;将 APIM 放入 VNet(Developer/Standard/Premium)以访问 AKS/App Service 中的私有后端,无需公开暴露。。其中首条「在产品或 API 级别定义策略而非按操作,使新增操作自动继承正确的认证和限流。」应作为团队默认规范写入 IaC 模板。

Azure API 管理 如何控制成本与避免账单意外?

三招防超支:① 为所有资源打 env/team 标签并启用账单告警;② 用预算阈值触发 Slack/邮件通知;③ 定期用 Cost Explorer 审查闲置资源并清理。Azure API 管理 多数提供免费套餐,先在免费额度内验证再放量。