我有一系列的三个Azure函数应用程序。所有这三个都运行相同的代码(.NET 6),它们应该每5分钟运行一次-CRON表达式是0 */5 * * * *
。
在每次运行时,这些功能应用中的每一个都应该将一组blob(使用共享访问签名)从源存储容器复制到目标存储容器。
实际上,这三个函数都运行了,我可以在函数的Invocation trace
日志中看到详细信息。五分钟后,他们又跑了。一次又一次,但过了一段时间,其中一个会停止运行,过了一段时间,另一个也会停止运行。在24小时内,这三个都将停止运行。我不知道为什么。
有时候他们会停下来一段时间,然后又开始跑。
根据每个函数的调用跟踪,没有错误。但你可以从这张截图中看到有差距。
x1c 0d1x的数据
这是另一个功能应用程序之一...
的
从这些调用跟踪可以看出,没有报告任何错误。然而,如果我在Diagnose and solve problems
中查找,似乎有HTTP触发器错误...
的
为什么,定时触发功能?
如果我查看Availability and performance
报告,我可以看到一些错误 * 已经 * 发生...
的
如果是这样,为什么这些异常不在Invocation traces
视图中报告?此外,我已经尝试/捕获了这个东西,如果发生异常,它应该被记录并通过电子邮件发送。但没有记录或电子邮件异常。
如果我重新启动函数应用程序,它们通常会再次启动,尽管有一两次我不得不重新命名函数本身,然后它重新启动。
关于功能应用程序的一些最后细节:
- 消费计划
- 每个应用程序位于不同的数据中心位置,并有单独的应用程序服务计划
- 每次跑步-当他们跑步时-需要30-40秒
- Azure订阅通过企业信用卡进行计费,没有未付账单
1条答案
按热度按时间sq1bmfud1#
Azure函数背后的存储帐户用于其内部工作,例如定时器触发功能。通过更改Blob的访问层等。通过生命周期政策,你在搞破坏。
通常,我会建议为后备存储使用专用的存储帐户-并且不强制执行任何生命周期策略等。因为这个原因