【发布时间】:2022-09-26 08:54:34
【问题描述】:
背景: 我在 Azure API 管理中定义一个 API。 我已经在“所有操作”级别上定义了一个策略。这个政策做了几件事。它所做的一件事是在上下文对象中设置一个变量,因此我可以在 when 条件下重新使用该变量。
我需要帮助:
如何在 Azure API-M 策略中定义一个列表,我可以在 when 条件下引用它?
代码示例:
所有运营政策:
<policies>
<inbound>
<base />
<set-variable name=\"someList\" value=\"[a,b,c,d]\" />
<when condition=\"@(context.Variables[\"someList\"].Contains(\"a\"))\"
</when>
<otherwise>
</otherwise>
</inbound>
</policies>
看来我的问题是变量 \"someList\" 没有被识别为数组,而是作为 String = \"[a,b,c,d]\"。所以基本上,如果条件是 Contains(\"[\"),它将返回 true。
我也尝试将值存储为命名值,但命名值不能包含数组作为值。
我想要实现的是保留订阅列表,以便我可以将请求中的传入订阅密钥与预定义订阅密钥列表相匹配。
标签: azure azure-api-management policy azure-policy