首页 > 解决方案 > EventGrid 订阅绑定通过 ngrok 工作到本地计算机,而不是 Azure 中的函数

问题描述

我有一个 Azure 函数应用程序,当它通过 ngrok 托管在开发机器上时,我可以创建一个 EventGrid 订阅,但完全相同的函数在发布到 Azure 时不会接受订阅。

错误是“验证提供的端点 <> 的尝试失败”。

我已经考虑了一些明显的事情,比如 url 的长度,但这似乎不是原因。两个 url 之间的唯一区别是主机,如函数应用程序的主机 url 和 ngrok 生成的主机。我已经尝试使用门户和 CLI 创建具有相同结果的订阅。

任何想法如何解决这一问题?

标签: azure-functionsazure-eventgrid

解决方案


我在 powershell 中使用 Azure CLI 时遇到了同样的问题。对我来说,答案基本上是 Roman Kiss 的评论:转义端点 URL,因为它包含一个 & 符号。

例如,改变这个:

  -endPoint "https://xxxx.azurewebsites.net/runtime/webhooks/EventGrid?FunctionName=xxxx&code=xxxxx"

对此:

  -endPoint "https://xxxx.azurewebsites.net/runtime/webhooks/EventGrid?functionName=xxxx""&""code=xxxx"

它使用 ngrok 工作的原因是 ngrok 端点(指向本地开发功能主机)不需要 &code=xxxx 部分。


推荐阅读