【问题标题】:Azure Blob Triggers sometime taking too much time to get triggeredAzure Blob 触发器有时需要太多时间才能触发
【发布时间】:2019-09-09 13:54:57
【问题描述】:
我正在为 azure 功能使用应用服务计划,并添加了 blob 触发器,但是当任何文件上传到 blob 容器时,函数没有触发。或者有时它花费了太多时间,然后在它开始触发之后。
任何建议将不胜感激
它应该在新文件上传到 blob 容器时触发该功能。
【问题讨论】:
标签:
azure
blob
azure-functions
azure-blob-storage
【解决方案1】:
这应该是冷启动
的情况
按照这里的说明
当您在消费计划中使用 blob 触发器时,可能会有
处理新 blob 最多延迟 10 分钟。出现这种延迟
当功能应用程序空闲时。函数应用运行后,
立即处理 blob。为避免这种冷启动延迟,请使用
启用 Always On 的应用服务计划,或使用事件网格
触发。
对于您的情况,您需要考虑 Event-Grid 触发器而不是 blob 触发器,事件触发器也具有对 blob 事件的内置支持。
【解决方案2】:
由于您说您已经在应用服务计划中运行这些功能,因此您可能没有启用 Always On 设置。您可以从门户上的Application Settings -> General Settings 选项卡执行此操作:
另一个可能的原因是,如果您在处理后没有将 blob 从容器中清除。
From here:
如果受监视的 blob 容器包含超过 10,000 个 blob(跨所有容器),则 Functions 运行时会扫描日志文件以监视新的或更改的 blob。此过程可能会导致延迟。在创建 Blob 几分钟或更长时间后,函数可能不会被触发。
并且在使用消费计划时,here's another link 警告可能会延迟。