无法更新Event Grid订阅Webhook端点,请求协助调试
Azure Event Grid Webhook端点更新失败问题排查
问题概述
尝试将Event Grid订阅的Webhook端点更新为新的HTTP触发Azure Function,已在请求头中添加x-function-key,但保存时失败,错误信息如下:
{"code":"URL validation","message":"Webhook validation handshake failed for https://eventgridl3functionapp.azurewebsites.net/api/eventgridl3functionapp. Http POST request failed with response code Unknown. For troubleshooting, visit https://aka.ms/esvalidation. Activity id:5dae7825-6144-4d9d-8adf-3b764bb6a7f7, timestamp: 8/8/2024 5:22:40 AM (UTC)"}
此前曾成功更新过端点,近期修改了HTTP触发函数(移除不必要日志)后出现该问题,需确认是否可通过Activity ID查询具体错误及解决方法。
核心问题解答:可通过Activity ID查询详细错误
你可以通过Azure门户的活动日志,使用提供的Activity ID查询更具体的错误细节:
- 登录Azure门户,定位到对应的Event Grid资源(事件主题/域)
- 左侧导航栏选择活动日志
- 在筛选条件中输入Activity ID:
5dae7825-6144-4d9d-8adf-3b764bb6a7f7,或按时间范围(2024年8月8日5:22 UTC左右)缩小范围 - 找到匹配的操作记录,查看详情中的错误详情,获取握手失败的具体原因
针对性排查建议
结合你近期修改过函数的情况,重点检查以下几点:
- 验证请求处理逻辑:Event Grid更新订阅时会发送验证POST请求,函数必须正确响应:
- 从请求体中提取
validationCode字段,返回状态码200,响应体格式为{"validationResponse": "<提取的validationCode>"} - 确认移除日志时未误删该验证逻辑
- 从请求体中提取
- 函数密钥正确性:检查填写的
x-function-key是否为函数的有效主机密钥或函数密钥,确认密钥未被修改或过期 - 网络访问限制:如果函数配置了VNet集成、IP白名单,需确保Event Grid的服务IP能访问到函数,可临时关闭IP限制测试验证是否通过
- 函数执行日志:查看函数的监控日志(门户中函数的监控->日志),确认是否收到Event Grid的验证请求,以及函数返回的响应状态和内容
内容的提问来源于stack exchange,提问作者Prashant Verma
相关产品推荐
相关产品推荐

