我正在使用针对azure函数的App服务计划,并添加了blob触发器但是当任何文件上传到blob容器时,函数不会触发。或者有时它花费太多时间,然后它开始触发。任何建议将不胜感激
当新文件上传到blob容器时,它应该触发该函数。
这应该是冷启动的情况
按照这里的说明
当您在消费计划中使用blob触发器时,处理新blob可能会有最多10分钟的延迟。当功能应用程序空闲时,会发生此延迟。功能应用程序运行后,立即处理blob。要避免此冷启动延迟,请使用启用了Always On的App Service计划,或使用Event Grid触发器。
对于您的情况,您需要考虑事件网格触发而不是blob触发器,事件触发器也具有对blob事件的内置支持。
由于您说您已在App Service计划上运行这些功能,因此您可能没有启用Always On
设置。您可以通过门户网站上的Application Settings -> General Settings
选项卡执行此操作:
另一个可能的原因是,如果您在处理后没有清除容器中的blob。
如果被监视的blob容器包含超过10,000个blob(跨所有容器),则Functions运行时会扫描日志文件以监视新的或已更改的blob。此过程可能会导致延迟。在创建blob后几分钟或更长时间内,函数可能不会被触发。
当使用消费计划时,here's another link警告有关延迟的可能性。