APIM v2实例删除自定义域名后API服务器URL异常求助
Azure APIM v2 自定义域名删除后服务器URL异常问题
问题详情
- 环境:APIM v2层实例,初始使用默认API网关
- 初始状态:导入API时服务器URL自动填充为默认地址:
"servers": [{ "url": "https://test-apim.azure-api.net/staging/data-product/base" }],
- 异常情况:创建并删除自定义域名
apis.mydomain.de后,新创建API的服务器URL自动填充为已删除的域名:
"servers": [{ "url": "https://apis.mydomain.de/staging/data-product/base" }],
- 矛盾点:APIM设置中的基准URL显示正确的默认网关地址,但开发者门户、API规范JSON中仍指向已删除的自定义域名;手动修改JSON规范的服务器URL后,保存会被自动覆盖,无法生效。
- 补充:自定义域名管理页面已无
apis.mydomain.de的记录。
原因分析
这是APIM后台配置缓存未及时刷新导致的残留问题:删除自定义域名后,APIM的全局配置缓存未同步清除旧域名信息,新API创建时仍读取缓存中的旧配置生成服务器URL。
解决方案
1. 重启APIM实例强制刷新缓存
进入Azure门户的APIM实例概述页面,点击顶部的重启按钮,重启整个实例。重启会触发后台配置缓存的全量刷新,清除残留的自定义域名数据。
2. 创建API时手动指定服务器URL
在导入或创建API的向导中,跳过自动填充,手动在服务器URL字段填写默认网关地址(https://{你的APIM实例名}.azure-api.net/xxx),确保新API使用正确的地址。
3. 用Azure CLI强制更新现有API的服务器URL
针对已创建的异常API,执行以下命令修改(替换占位符为你的实际资源信息):
az apim api update --resource-group <你的资源组名称> --service-name <你的APIM实例名称> --api-id <目标API的ID> --set properties.serviceUrl=https://test-apim.azure-api.net/staging/data-product/base
4. 检查并清理残留的自定义域名记录
通过Azure CLI确认是否存在后台残留的域名记录:
az apim custom-domain list --resource-group <你的资源组名称> --service-name <你的APIM实例名称>
如果输出中仍有apis.mydomain.de的记录,执行删除命令彻底清理:
az apim custom-domain delete --resource-group <你的资源组名称> --service-name <你的APIM实例名称> --domain-name apis.mydomain.de
内容的提问来源于stack exchange,提问作者bouthayna hamdi
相关产品推荐
相关产品推荐

