首页 > 解决方案 > 带有 blob 触发器的可扩展 Azure 函数

问题描述

我使用 blob 触发器在消费计划上创建了一个 Azure 函数。然后我将大量文件添加到 blob,并且我希望每次将文件添加到触发器时都会调用 Azure 函数。

而且因为我使用 Azure Function and Consumption Plan,我希望不会有可伸缩性问题,对吧?错误的。

我可以轻松地将文件添加到 blob,速度比 Azure 函数处理它们的速度要快。数百个用户可以添加到 blob,但似乎任何时候只有一个 Azure 函数实例在工作。这意味着它很容易落后。

我认为该平台会根据需要创建更多 Azure Function 实例。嗯,好像没有。

关于如何配置我的 Azure 函数以使用 blob 触发器真正可扩展的任何建议?

标签: azureazure-functionsazure-blob-storage

解决方案


这是因为您正在影响冷启动

根据这里的注释

当你在消耗计划中使用 blob 触发器时,处理新 blob 最多可能会延迟 10 分钟。当函数应用空闲时会发生此延迟。函数应用运行后,会立即处理 blob。若要避免此冷启动延迟,请使用启用 Always On 的应用服务计划,或使用事件网格触发器。

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

何时考虑事件网格?

在以下情况下使用事件网格而不是 Blob 存储触发器:

  • Blob 存储帐户
  • 高规模
  • 最小化冷启动延迟

在这里阅读更多


2020年更新

Azure Function 有一个称为高级的新层/计划,您可以在其中避免冷启动 ,例如YouTube 视频


推荐阅读