mad*_*snb 8 policy azure-api-management
我已经根据用户 ID 存储了一个命名值,因此我可以通过我选择的参考来识别有效负载提交者。
当我使用下面的策略时,我获取字符串形式的值,而不是实际查找命名值。如果我只是将用户 ID 写在双大括号内,而不是从上下文中动态获取它,则查找工作正常,并且会替换为我想要的命名值。
难道就不能用简单的方法来做吗?
<policies>
<inbound>
<set-header name="x-request-context-data" exists-action="override">
<value>{{@(context.User.Id)}}</value>
</set-header>
</inbound>
</policies>
Run Code Online (Sandbox Code Playgroud)
输出:
x-request-context-data: {{@(context.User.Id)}}
Run Code Online (Sandbox Code Playgroud)
在MSDN上回答了。
虽然您可以在策略表达式中使用命名值,但不支持也不可能支持相反的方式,如此功能请求中所述。
解决方法是
- 将命名值存储为 JSON 字符串或带有键=值对的 CSV 字符串。然后使用策略表达式来解析并获取所需的值。
- 使用控制流策略进行运行时决策。
- 对于复杂的情况,请卸载到函数应用程序,但如果可能,请使用值缓存策略来改善延迟
归档时间: |
|
查看次数: |
3442 次 |
最近记录: |