You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Terraform配置Azure APIM的「所有API」级策略?

Terraform配置APIM「所有API」级策略的实现方法

你要找的Terraform方案是通过azurerm_api_management_policy资源,指定特殊的api_name = "allapis"来配置全局的「所有API」策略,这个值是APIM预留的标识,专门用来对应UI里的「所有API」策略节点,而非单个API或操作。

示例代码:

resource "azurerm_api_management" "example" {
  name                = "your-apim-name"
  location            = azurerm_resource_group.example.location
  resource_group_name = azurerm_resource_group.example.name
  publisher_name      = "Your Publisher"
  publisher_email     = "your-email@domain.com"
}

resource "azurerm_api_management_policy" "all_apis_global_policy" {
  api_management_name = azurerm_api_management.example.name
  resource_group_name = azurerm_resource_group.example.name
  api_name            = "allapis" # 核心:此值对应「所有API」级别
  xml_content         = <<XML
<policies>
  <inbound>
    <!-- 示例:添加IP限流策略 -->
    <rate-limit-by-key calls="100" renewal-period="60" counter-key="@(context.Request.IpAddress)" />
  </inbound>
</policies>
XML
}

这个配置和PowerShell设置「所有API」策略的效果完全一致,会自动应用到APIM下的所有API及操作。


对第2点的看法

放弃「所有API」选项、为每个路由单独分配策略的做法不推荐,原因如下:

  • 函数应用关联APIM会自动生成API和操作,每次函数更新、重新同步时,都需要重新维护对应策略,操作繁琐且极易遗漏,长期维护成本极高。
  • 无法保证策略一致性,手动配置每个路由容易出现规则差异,后续修改策略(比如调整安全规则、限流阈值)时,需要逐个更新,效率极低。

除非你有特定API需要完全独立的策略逻辑,否则优先使用「所有API」级全局策略统一管控。

内容的提问来源于stack exchange,提问作者Jake Boomgaarden

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 07:12:43