APIM开发者门户测试控制台无法选择网关域名的技术咨询
APIM开发者门户测试控制台网关域名选择/默认设置解决方案
场景说明
APIM实例为内部VNet部署模式:
- 默认网关域名仅允许VNet或本地内网访问
- 已注册自定义网关域名,用于公网流量转发(通过本地防火墙路由)
- 开发者门户仅对VNet/本地内网开放,但测试控制台自动使用自定义网关域名,期望能切换至默认域名,甚至可设置默认使用的网关域名
解决办法
1. 通过APIM策略自动强制测试控制台使用默认域名
在APIM的全局策略或单个API的策略中添加配置,识别测试控制台的请求并自动替换网关域名:
<choose> <when condition="@(context.Request.Headers.ContainsKey("Referer") && context.Request.Headers.GetValueOrDefault("Referer","").Contains(".azure-api.net/developer"))"> <set-backend-service base-url="@($"https://{context.Api.ServiceUrl.Host}")" /> </when> </choose>
操作步骤:
- 进入APIM实例的「API」或「全局策略」页面
- 打开策略编辑器,将上述代码插入到
<inbound>节点内 - 保存配置后,测试控制台发起的请求会自动切换为默认网关域名
2. 自定义开发者门户,添加域名手动选择功能
若需要手动切换网关域名,可自定义开发者门户的测试控制台模块:
- 导出APIM开发者门户的源代码
- 修改前端逻辑,添加下拉选择框(选项包含默认域名与自定义域名)
- 配置请求发起逻辑,使用用户选中的域名发送请求
- 将修改后的门户重新发布至APIM实例
3. 调整自定义域名优先级(预览功能)
部分Azure区域的APIM支持自定义域名优先级设置(预览状态):
- 进入APIM实例的「自定义域名」配置页面
- 找到「网关」类型的域名列表,将默认域名的优先级设置为最高
- 保存配置后,测试控制台会优先使用优先级最高的网关域名
注意事项
- 内部VNet模式下,需确保默认网关域名的网络访问规则允许开发者门户所在的VNet/内网访问
- 自定义开发者门户需自行维护版本适配,后续官方更新时需同步调整
- 预览功能可能存在变动,使用前确认APIM所在区域是否支持该功能
内容的提问来源于stack exchange,提问作者lefli
相关产品推荐
相关产品推荐

