azure - 带有 blob 触发器的可扩展 Azure 函数
问题描述
我使用 blob 触发器在消费计划上创建了一个 Azure 函数。然后我将大量文件添加到 blob,并且我希望每次将文件添加到触发器时都会调用 Azure 函数。
而且因为我使用 Azure Function and Consumption Plan,我希望不会有可伸缩性问题,对吧?错误的。
我可以轻松地将文件添加到 blob,速度比 Azure 函数处理它们的速度要快。数百个用户可以添加到 blob,但似乎任何时候只有一个 Azure 函数实例在工作。这意味着它很容易落后。
我认为该平台会根据需要创建更多 Azure Function 实例。嗯,好像没有。
关于如何配置我的 Azure 函数以使用 blob 触发器真正可扩展的任何建议?
解决方案
这是因为您正在影响冷启动
根据这里的注释
当你在消耗计划中使用 blob 触发器时,处理新 blob 最多可能会延迟 10 分钟。当函数应用空闲时会发生此延迟。函数应用运行后,会立即处理 blob。若要避免此冷启动延迟,请使用启用 Always On 的应用服务计划,或使用事件网格触发器。
对于您的情况,您需要考虑事件网格触发器而不是 blob 触发器,事件触发器也具有对 blob 事件的内置支持。
何时考虑事件网格?
在以下情况下使用事件网格而不是 Blob 存储触发器:
- Blob 存储帐户
- 高规模
- 最小化冷启动延迟
2020年更新
Azure Function 有一个称为高级的新层/计划,您可以在其中避免冷启动 ,例如YouTube 视频
推荐阅读
- c# - 隐藏当月没有日期的行(自定义日历标签助手)
- python - 弹出的值如何处理?
- r - R 文档:@family 标签不起作用
- python - Flask 导致父进程中的代码被执行两次
- java - Java Stream Map 列表中的元素到一个数字
- flutter - 位置参数太多:预期有 2 个,但找到了 3 个。尝试删除多余的参数 Flutter
- javascript - Firebase - 为提供者设置自定义参数意味着什么?
- python - 将熊猫中的许多时间序列加入单个日期时间索引的最佳方式?
- python - 使用弹性豆茎和 django 的 Cron 作业
- swift - 是否可以在同一个 View SwiftUIView 和 UIViewControllerRepresentable 中组合在一起?