Azure Function Timer Trigger部署后未触发问题求助
Azure Timer Trigger部署后未触发的排查与解决
核心排查步骤
- 确认函数启用状态:登录Azure门户,找到目标函数应用,进入你的Timer函数,右上角查看状态是否为「已启用」。如果是禁用状态,点击启用即可。
- 核对计划表达式与时区:
- 你代码里的
* * * * *是每分钟触发的Cron表达式,格式本身没问题,但Azure Functions默认使用UTC时区。如果需要按本地时区触发,在函数应用「配置」->「应用程序设置」中添加WEBSITE_TIME_ZONE变量,值设为对应时区(比如China Standard Time)。 - 检查Azure门户内函数的触发器配置,确认schedule值和代码里的一致,避免部署时配置未同步。
- 你代码里的
- 匹配本地与Azure运行环境:
- 查看函数应用「配置」->「常规设置」里的Node.js版本,确保和本地开发环境完全一致(比如本地用Node 18,Azure别设为16)。
- 确认package.json里的
@azure/functions等依赖版本,部署时要保证Azure安装的依赖和本地一致,避免兼容性问题。
- 检查日志配置:
- 确认函数已关联Application Insights:在「监控」->「Application Insights」里绑定资源,或在「配置」中设置
APPINSIGHTS_INSTRUMENTATIONKEY。 - 通过Kudu控制台查看日志:进入函数应用「高级工具」->「Go」,导航到
D:\home\LogFiles\Application\Functions\Function\RefreshAccessTokenTimer,查看是否有生成日志文件,哪怕是错误日志也能定位问题。
- 确认函数已关联Application Insights:在「监控」->「Application Insights」里绑定资源,或在「配置」中设置
- 验证环境变量:在函数应用「配置」->「环境变量」里,检查
TENANT_ID、CLIENT_ID、CLIENT_SECRET、REFRESH_TOKEN是否都正确配置,无遗漏或拼写错误。
代码潜在问题提醒
你代码里直接更新process.env.REFRESH_TOKEN和process.env.ACCESS_TOKEN的方式不可靠:
process.env是进程级变量,函数重启(如缩放、部署、休眠唤醒)后更新的值会丢失。- 多实例部署时,每个实例的
process.env独立,无法同步令牌状态。
正确做法是将刷新后的令牌存储到Azure Key Vault或App Configuration中,下次获取时从这些服务读取。
内容的提问来源于stack exchange,提问作者Alex Wachowski
相关产品推荐
相关产品推荐

