除非我打开函数应用程序,否则 Azure Functions Blob 触发器不会触发

Azure Functions Blob trigger does not fire off unless i open the function app

我将 Azure Functions 设置为 运行 关闭 blob 触发器(因此,当将 blob 添加到容器时,它应该会触发)。在我在门户中打开函数应用程序之前,该函数不会 运行。然后它将拾取添加的任何斑点并像往常一样处理它们。为什么我需要在门户中打开函数应用程序才能启动我的作业?这几乎就像功能应用程序进入睡眠状态,然后在我浏览它时醒来。我怎样才能防止这种情况发生?

这是我的 CRON

{
  "bindings": [
 {
  "name": "myBlob",
  "type": "blobTrigger",
  "direction": "in",
  "path": "automated-sql-export",
  "connection": "Conn"
 }
],
 "disabled": false
}

当函数应用 运行 运行时,主机会自动 receiving/polling 处理我们所有各种触发器类型(队列、事件中心、blob 等)中的新事件。但是,根据您 运行 所在的层级,会出现一些差异。

在我们的动态 SKU 中,我们有一个 Function App 外部的服务,负责监控工作并确保 Function App 在 运行ning需要是。当没有工作要执行时(例如,没有队列消息、没有新的 blob 等),Function App 会进入休眠状态。外部服务有责任确保它在工作到达时被唤醒。

我的 Classic SKUs (Basic/Standard) 此外接显示器不在图片中。 Function App 必须 运行 处于 Always On 模式才能保持活动状态。当您在经典层中创建 Function App 时,此设置应自动配置为开启。

解释了所有这些背景后,如果您 运行 宁愿使用动态 SKU,那么事情应该 "just work"。如果不是,请记录错误 here。如果您 运行 正在使用经典 SKU,请确保已启用 Always On。这是人们 运行 经常遇到的问题。