【问题标题】:Azure API Management Policy - Dynamic named value selectAzure API 管理策略 - 动态命名值选择
【发布时间】:2020-02-21 12:57:54
【问题描述】:

我已经根据用户 ID 存储了一个命名值,因此我可以使用我选择的参考来识别负载提交者。

当我使用下面的策略时,我将值作为字符串获取,而不是实际查找命名值。如果我只是将用户 ID 写在双花括号内,而不是从上下文中动态获取它,那么查找工作正常,它会用我想要的命名值替换。

难道不能用简单的方式来做吗?

<policies>
  <inbound>
    <set-header name="x-request-context-data" exists-action="override">
      <value>{{@(context.User.Id)}}</value>
    </set-header>
  </inbound>
</policies>

输出:

x-request-context-data: {{@(context.User.Id)}}

【问题讨论】:

    标签: azure-api-management policy


    【解决方案1】:

    回复于MSDN

    虽然您可以在策略表达式中使用命名值,但反之亦然 周围不支持,也不可能支持,如中所述 这个feature request

    解决方法是任一

    • 将命名值存储为 JSON 字符串或带有 key=value 对的 CSV 字符串。然后使用策略表达式解析并获取所需的值。
    • 使用control flow policies 进行运行时决策。
    • 对于复杂的情况,卸载到函数应用,但尽可能使用 value caching policies 以缩短延迟

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多