Azure Blob触发器有时需要花费太多时间才能触发

问题描述 投票:3回答:2

我正在使用针对azure函数的App服务计划,并添加了blob触发器但是当任何文件上传到blob容器时,函数不会触发。或者有时它花费太多时间,然后它开始触发。任何建议将不胜感激

当新文件上传到blob容器时,它应该触发该函数。

azure blob azure-functions azure-blob-storage
2个回答
1
投票

这应该是冷启动的情况

按照这里的说明

当您在消费计划中使用blob触发器时,处理新blob可能会有最多10分钟的延迟。当功能应用程序空闲时,会发生此延迟。功能应用程序运行后,立即处理blob。要避免此冷启动延迟,请使用启用了Always On的App Service计划,或使用Event Grid触发器。

对于您的情况,您需要考虑事件网格触发而不是blob触发器,事件触发器也具有对blob事件的内置支持。


1
投票

由于您说您已在App Service计划上运行这些功能,因此您可能没有启用Always On设置。您可以通过门户网站上的Application Settings -> General Settings选项卡执行此操作:

Enable Always On

另一个可能的原因是,如果您在处理后没有清除容器中的blob。

From here:

如果被监视的blob容器包含超过10,000个blob(跨所有容器),则Functions运行时会扫描日志文件以监视新的或已更改的blob。此过程可能会导致延迟。在创建blob后几分钟或更长时间内,函数可能不会被触发。

当使用消费计划时,here's another link警告有关延迟的可能性。

© www.soinside.com 2019 - 2024. All rights reserved.