问题描述
我尝试通过 az eventgrid system-topic event-subscription update
更新数据工厂 blobevent 触发器的高级过滤器。
它要求一个端点(实际上这是文档中的兼性),但如果我不说它,我会得到:
无效的事件订阅请求:提供的 URL 无效。这不可以 为 null 或为空,并且应该是正确的 HTTPS URL,例如 https://www.example.com。
这是我的命令:
az eventgrid system-topic event-subscription update
--system-topic-name $systemtopicname
--name $topicName
-g $ResourceGroup
--endpoint $endpoint
--advanced-filter data.api StringIn CreateFile PutBlob copyBlob
我查看了有关此端点的文档,据说它是 webhook 端点 (https://docs.microsoft.com/fr-fr/cli/azure/eventgrid/system-topic/event-subscription?view=azure-cli-latest)
EventGrid 应该传递与此事件匹配的事件的端点 订阅。对于 webhook 端点类型,这应该是 对应的网络钩子 URL。对于其他端点类型,这应该是 终结点的 Azure 资源标识符。预计该 目标端点已创建并可供使用 在执行任何事件网格命令之前。
但它不起作用。
部署失败。关联 ID: 95e4fab5-163e-48ab-8cb2-b23432516e53。网络钩子验证握手 [主题中提供的 webwook 端点] 失败。 HTTP POST 请求失败,响应代码未知。如需故障排除,请访问 https://aka.ms/esvalidation。
我也尝试过 az eventgrid event-subscription update
,但都没有成功!
任何观察或建议都会很棒,提前致谢!
解决方法
用于更新事件订阅的 az 命令需要包含其查询参数的完整端点 URL。
使用带有可选参数的 az eventgrid system-topic event-subscription show 命令[--include-full-endpoint-url {false,true}] 获取 $ 的完整端点 URL端点变量。
请注意,用于更新 (PATCH) 事件订阅的 REST API 只能用于高级过滤属性。