外部 API 管理服务无法解析 Azure 函数服务名称



当前我正尝试使用Api Management来公开vnet中的Azure Function http触发器。

在设置完所有内容后,我尝试了一个简单的GET请求,但我收到了一个500错误,告诉我

"messages": [
"Error occured while calling backend service.",
"The remote name could not be resolved: '<function-name>.azurewebsites.net'"
]

我的Azure功能是:

  1. 使用高级计划创建
  2. 启用了具有专用终结点的入站流量
  3. 部署在与我的api管理服务相同的Vnet中
  4. 从门户添加了httpTrigger模板
  5. 使用Azure托管DNS名称设置

我的api管理服务是在外部模式下创建的,我在门户中将我的功能链接到了api管理。

我尝试过的东西:

  • 我已经仔细检查了是否打开了正确的安全组规则,以便api管理工作
  • 我已经确保我的api管理(外部(和Serverless函数都在同一个vnet中
  • 我在同一个虚拟网络上部署了一个vm,但无法在那里解析我的函数的dns名称。使用了ping、telnet和nslookup
  • 尝试将应用程序设置添加到我的函数中,以指定azure dns服务器以及其他设置
  • 我检查了我的私人dns区域是否与我的vnet链接

似乎是DNS名称解析问题,但我似乎无法解决。有什么想法可以导致这个错误吗?

更新

所以这似乎是我的私人端点的一个问题。我创建的每一个没有端点的函数都很好,但我仍然希望有一个私有端点,这样就不能从互联网上访问它。

我知道我可能会锁定我的函数,只从api管理网关ip调用,但如果没有,我宁愿不必硬编码ip。

感谢MayankBargali MSFT|Microsoft Docs发布您的建议作为帮助其他社区成员的答案。

根据错误,APIM无法解析您的azure函数应用程序。请验证自定义DNS是否正确设置你可以参考这个文件了解更多详细信息。需要端口53上的出站访问与DNS服务器的通信。如果上存在自定义DNS服务器VPN网关的另一端,DNS服务器必须可以从子网托管API管理。我还建议你复习一下设置部件的文档。

参考:外部api管理服务无法解析Azure功能服务名称-Microsoft Q&

最新更新