Function App Time Trigger异常求助:需实现每小时触发
看起来你的CRON表达式0 0 * * * *理论上是完全正确的——Azure Time Trigger采用6字段格式:{秒} {分} {时} {日} {月} {周},这个表达式确实应该在每小时的0分0秒触发一次。但实际出现每5分钟触发的问题,大概率是配置或部署环节出了疏漏,我给你几个具体的排查和解决方向:
确认触发器配置是否真正生效
有时候修改CRON表达式后,Function App可能因为缓存或未重新部署导致配置没刷新。你可以尝试:- 在Azure门户中重新保存触发器配置(哪怕只是点击保存按钮,无需修改内容)
- 手动重启整个Function App,强制加载新的配置
- 如果是代码部署,检查本地
function.json里的schedule字段是否确实是0 0 * * * *,有没有被其他配置文件或部署脚本覆盖
排查是否存在重复/旧的触发器配置
检查你的Function App中是否存在其他Time Trigger函数,或者同一个函数有没有遗留的旧触发器配置(比如本地调试时的临时配置和云端配置冲突)。有时候旧的触发器未删除,会造成“频繁触发”的假象。区分本地调试与云端运行的差异
如果你在本地调试时遇到这个问题,要注意:本地运行Azure Functions时,若未指定schedule,默认Time Trigger会使用0 */5 * * * *(每5分钟触发)。务必确保本地function.json的schedule字段正确,且部署到云端时该配置没有被忽略。验证表达式的解析结果
在Azure门户的触发器配置界面,输入表达式后查看系统给出的「Next run time」提示,确认下一次触发时间是不是下一个整点。如果提示仍为每5分钟,说明表达式可能被错误解析,此时可以重新输入一遍,避免多余空格或特殊符号干扰。排除代码逻辑的干扰
检查函数代码中是否有重试机制、循环逻辑,或者是否存在其他触发源(比如队列、HTTP触发)导致函数被频繁调用。确保只有Time Trigger在触发目标函数。
按照这些步骤排查后,应该能定位问题并让你的Function App恢复每小时触发的正常状态。
内容的提问来源于stack exchange,提问作者lokanath das

