azure - 策略 rewrite-uri 在 Azure APIM 中附加上下文变量
问题描述
诸如context.Variables["accountKey"]
在策略重写期间简单附加到上下文变量的 url 的方法是什么?
最终结果应该是/accounts/232
。
我之前设置成功
set-variable (0.003 ms)
{
"message": "Context variable was successfully set.",
"name": "accountKey",
"value": "232"
}
尝试过的一件事:
<policies>
<inbound>
<base />
<rewrite-uri template="/accounts/{accountKey}" />
</inbound>
但我得到这个错误
> Error Receive
> rewrite-uri (0.260 ms) {
> "messages": [
> null,
> "Variable accountKey has no value.",
> "Variable accountKey has no value."
> ] }
解决方案
在策略中配置入站规则如下:
<inbound>
<base />
<set-variable name="accountKey" value="232" />
<rewrite-uri template="@{
return "/account/" + context.Variables.GetValueOrDefault<string>("accountKey");
}"/>
</inbound>
rewrite-uri 中的 {} 用于原始请求 URL 中的查询字符串参数。
在 Microsoft 文档中的Rewrite URL-API Management 转换策略中查找有关 rewrite-uri 部分的更多详细信息。
推荐阅读
- python - tf.function 输入参数
- google-api - Google Calendar Api - Python - 同步令牌、刷新令牌
- python - Apache Airflow:新角色的一些权限被重置
- javascript - DOM 事件侦听器在 Chrome 扩展程序中不起作用
- node.js - 完整的数据库表更新
- vue.js - 如何判断 vue 中的 html 标签是否为自定义标签?
- google-cloud-storage - 将 pip.conf 从存储桶复制到 Cloud Composer Airflow 环境时出错
- wordpress - 使用 Dokan 在 WooCommerce 上的税收课程
- sql-server - DataGrip 中的 SQL Server 2019 支持(无法连接到实例)
- kubernetes - 在 Kubernetes minikube 中运行的 ActiveMQ:如何配置管理员密码