我正在使用App Service Plan的azure函数,并添加了blob触发器,但是当任何文件上传到blob容器时,函数不会触发。或有时花费太多时间,然后才开始触发。 任何建议将不胜感激
当新文件上传到blob容器时,它应该触发该功能。
答案 0 :(得分:1)
冷启动
应该是这种情况根据此处的注释
在“消费”计划上使用Blob触发器时,可能会有 处理新的Blob最多需要10分钟的延迟。发生这种延迟 当功能应用闲置时。功能应用程序运行后, Blob立即被处理。为避免这种冷启动延迟,请使用 启用了始终在线的App Service计划,或使用事件网格 触发。
对于您的情况,您需要考虑使用Event-Grid触发器而不是blob触发器,Event触发器也具有对blob-events的内置支持。
答案 1 :(得分:1)
由于您说您已经在App Service计划中运行这些功能,因此很可能没有启用Always On
设置。您可以从门户网站上的Application Settings -> General Settings
标签执行此操作:
另一个可能的原因是,如果您在处理完容器后仍未从容器中清除斑点,那么
如果要监视的Blob容器包含超过10,000个Blob(在所有容器中),Functions运行时将扫描日志文件以监视新的或更改的Blob。此过程可能会导致延迟。在创建Blob之后几分钟或更长的时间里,函数可能不会被触发。
使用消费计划时,here's another link警告可能出现延误。