azure-functions - EventGrid 订阅绑定通过 ngrok 工作到本地计算机,而不是 Azure 中的函数
问题描述
我有一个 Azure 函数应用程序,当它通过 ngrok 托管在开发机器上时,我可以创建一个 EventGrid 订阅,但完全相同的函数在发布到 Azure 时不会接受订阅。
错误是“验证提供的端点 <> 的尝试失败”。
我已经考虑了一些明显的事情,比如 url 的长度,但这似乎不是原因。两个 url 之间的唯一区别是主机,如函数应用程序的主机 url 和 ngrok 生成的主机。我已经尝试使用门户和 CLI 创建具有相同结果的订阅。
任何想法如何解决这一问题?
解决方案
我在 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 部分。
推荐阅读
- sql - 在 NHibernate HQL 中使用 CASE WHEN 语句
- c# - Angular zip 文件下载问题 AWS
- android - Android Hawk 对象类型不持久
- unit-testing - vue js jest.spyOn挂载的函数调用在类组件的单元测试中不起作用
- c# - 如何将不同类型的 COM 对象转换为相同的类或接口?
- mongodb - 在 forEach 循环中更改 MongoDB 文档日期格式
- javascript - DataTable 列未正确排序
- visual-studio-code - 如何摆脱 VSCode 的“脏编辑器”
- android - setLocale 无法正常工作,设置新语言不会改变任何内容
- .net - 通过 IIS 向 VPN 用户发布 VB.net 单页应用程序