当前位置: 首页 > 知识库问答 >
问题:

具有blob触发器的可扩展Azure函数

关苗宣
2023-03-14

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

因为我使用Azure函数和消耗计划,所以我希望不存在可伸缩性问题,对吗?错。

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

我以为该平台只会根据需要创建更多 Azure 函数实例。好吧,似乎没有。

如何使用Blob触发器将Azure Function配置为真正可扩展的任何建议?

共有1个答案

薄鸿远
2023-03-14

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

根据此处的注释

当您在消费计划上使用blob触发器时,在处理新blob时可能会有长达10分钟的延迟。当功能应用程序空闲时,会出现这种延迟。功能应用程序运行后,blobs会立即得到处理。为了避免这种冷启动延迟,请使用启用了“始终打开”的应用服务计划,或者使用事件网格触发器。

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

对于以下方案,请使用事件网格而不是 Blob 存储触发器:

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

在此处阅读更多内容

Azure功能有一个新的层/计划,称为premium,可以避免冷启动,例如YouTube视频

 类似资料:
  • 如果你使用blob存储触发器阅读Azure WebJobs上的留档,它们会提到这不是很可靠: WebJobs SDK扫描日志文件以查看新的或更改的blob。这个过程不是实时的;在创建blob后的几分钟或更长时间内,函数可能不会被触发。此外,存储日志是在“尽力而为”的基础上创建的;无法保证所有事件都将被捕获。在某些情况下,日志可能会丢失。如果您的应用程序无法接受blob触发器的速度和可靠性限制,建议

  • 我使用blob触发器读取blob内容,作为pandas DF进行处理,并将blob附加到我使用的Azure SQL server。 blob触发器没有按预期工作,因此我将main函数中的所有代码都定义为: 但是,我得到了以下错误: 有人可以帮助我找到此问题的原因吗? function.json的配置如下:

  • 我是Azure Function应用程序中blob触发器的新手,需要一些帮助。我正在努力寻找有关如何重命名触发该函数的blob的资源。 我有一个函数应用程序,当一个新的blob被上传到容器时触发,文件被处理,我需要一种方法来将其“标记”为已处理,因此我想重命名blob。 这是我的职责: 我该如何重命名该文件?在这种情况下有可能吗?

  • Azure函数存储帐户Blob容器触发器 在我们的一个用例中,我正在为具有以下条件的存储帐户容器中的任何活动寻找Azure函数触发器 < li >具有特定命名约定的容器(名称如xxxx-input) < li >它应该自动检测是否创建了新的容器(具有特定的命名约定) < li>

  • 我有两个blob触发器,我想触发。一个有效,一个无效! 我使用Azure Storage Explorer来确保blob被上传到每个blob,< code>scanFiles永远不会触发,而< code>scanExports似乎总是会触发。 问题:什么会导致某些blob无法触发Azure函数?

  • 我遇到的情况是,Blob可能在第一次处理时失败,但可能在后续执行中工作。 我遇到的问题是关于监控真正的失败,目前第一次失败将抛出一个异常,该异常被记录并发出警报,但如果第一次重试成功完成,那么根据早期警报就没有什么可做的了。 是否有办法查看已发生的重试次数,以便我只能在不再重试时发出警报?