我们实现了如下设置:
- 应用服务环境具有不同的应用服务公开不同的 API。此实例被配置为内部实例,因此没有公共访问权限。
- 我们已经配置了一个内部(私有)DNS 区域。该区域用于为 API 创建内部 URL。
- 对外暴露的 API 管理实例。这里需要使用 API 自身公开的 Swagger 文件来注册 API。
- 一切都包含在同一个 VNet 中。
现在我们看到的是两件事:
- 从 VNet 中的 VM,我可以毫无问题地浏览 API 的 URL 并下载 Swagger 文件。
- 当我们尝试在 API 管理中注册 API 时,它会抛出一个错误,指出无法下载文件。当我们手动注册然后尝试调用 API 时,我们会收到 DNS 解析错误。
因此,API 管理实例似乎无法将我们的自定义 DNS 区域解析为 Azure 中的设置。我找不到任何信息来告诉我是否支持这种情况。确实非常欢迎任何可能有助于发现问题的指针。
更新当我们通过上传文件注册API,然后尝试调用其中一个API方法,出现如下错误:
The remote name could not be resolved
这个相同的地址从完全相同的 VNet 中的 VM 解析得很好。