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

Azure API Management 是否支持API级别独立配置类似Named value的变量

当然可以,你可以通过以下两种方案实现单API维度的类Named value变量配置,满足不同API、不同环境的差异化取值需求:

方案1:使用API自定义属性(更推荐,逻辑隔离更清晰)

这是最贴合你需求的实现方式,不需要改动全局变量的命名规则,每个API单独配置同名变量即可:

  • 进入单个API(如foo-API、bar-API)的设置页面,找到「自定义属性」配置项
  • 给每个API新增属性,键统一填my-url,值分别填写对应API需要的目标地址,不同环境可在对应环境的APIM实例中分别配置对应值
  • 将全局策略中的set-url配置修改为动态读取当前API的自定义属性,修改后的完整策略如下:
<policies>
    <inbound>
        <base />
        <send-request mode="new">
            <set-url>@(context.Api.Properties.GetValueOrDefault("my-url", "你的默认兜底URL"))</set-url>
            <set-method>POST</set-method>
            <set-body>something</set-body>
        </send-request>
    </inbound>
    <backend>
        <base />
    </backend>
    <outbound>
        <base />
    </outbound>
    <on-error>
        <base />
    </on-error>
</policies>

方案2:使用带前缀的全局Named value适配

如果你更习惯用全局Named value管理所有变量,可以通过命名前缀的方式区分不同API的同名字段:

  • 在全局Named value中按{API名称}-{变量名}的规则创建变量,比如foo-API-my-url、bar-API-my-url,分别赋值对应URL
  • 全局策略中动态拼接变量名读取对应值,set-url配置示例如下:
<set-url>@(context.Deployment.NamedValues.GetValueOrDefault($"{context.Api.Name}-my-url", "你的默认兜底URL"))</set-url>

两种方案都天然适配多环境差异化配置,你只需要在DEV、TEST、PROD不同环境的APIM实例中,分别给对应API的自定义属性/全局Named value配置对应环境的URL值即可,全局策略无需做任何修改。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 02:36:06