如何配置位于VNet后的Azure Function接收Azure告警?
解决Azure告警无法发送至VNet后Azure Function的问题
关键排查与修复步骤
1. 开放Azure Monitor的VNet访问权限
- 前往Function所在VNet的网络安全组(NSG),添加入站规则:允许
AzureMonitor服务标签的HTTPS(443端口)流量。这是Azure Monitor能够触达VNet内资源的基础。 - 若Function使用了专用端点,需确认专用端点的DNS配置正确,保证Azure Monitor能解析到Function的专用IP地址。
2. 调整Function的访问限制策略
- 进入Function App的网络设置页,若开启了
允许从特定虚拟网络和IP地址访问,需将Azure Monitor的出站IP范围添加到允许列表。可通过Azure CLI命令az monitor log-profiles list获取相关IP段信息。 - 若Function设置为
仅允许专用网络访问,需通过VNet对等连接将Azure Monitor的服务网络与你的VNet连通,或把Azure Monitor纳入VNet的信任访问范围。
3. 验证Function的身份验证配置
- 确认告警操作中填写的Function访问密钥有效,避免因密钥过期、权限不足导致调用失败。
- 若Function启用了Azure AD身份验证,需为Azure Monitor的服务主体分配对应权限(如
Function App Contributor或自定义角色),确保其具备调用Function触发器端点的权限。
4. 开启诊断日志定位错误
由于当前无明确错误提示,需通过日志排查:
- 为Azure Monitor的告警资源开启诊断设置,收集
AlertProcessing和ActionProcessing类别的日志,查看是否存在请求被拒、DNS解析失败或权限相关的错误记录。 - 为Function App开启
FunctionAppLogs和HttpLogs,检查是否有来自Azure Monitor的请求到达但被拦截的情况。
5. 测试网络连通性
- 在VNet内的虚拟机上手动调用Function的触发器端点,确认Function本身可正常响应请求。
- 使用告警规则操作组中的测试功能,结合诊断日志追踪请求的流向,定位具体失败节点。
内容的提问来源于stack exchange,提问作者Srini
相关产品推荐
相关产品推荐

