除非我打开功能应用程序,否则Azure功能Blob触发器不会启动

时间:2016-09-20 15:01:40

标签: azure azure-functions

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

这是我的CRON

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

1 个答案:

答案 0 :(得分:5)

当功能应用程序运行时,主机负责自动接收/轮询所有各种触发器类型(队列,事件集线器,blob等)中的新事件。但是,根据您运行的等级会产生一些差异。

在我们的动态SKU 中,我们在功能应用程序外部提供了一项服务,该服务负责监视工作并确保功能应用程序在需要时运行。当没有工作要执行时(例如,没有队列消息,没有新的blob等),功能应用程序进入休眠状态。外部服务部门有责任确保在工作到来时将其唤醒。

我的经典SKU (基本/标准)此外接显示器不在图片中。功能应用程序必须在始终开启模式下运行才能保持活动状态。在经典层中创建功能应用程序时,此设置应自动配置为“打开”。

解释了所有背景知识,如果你在动态SKU中运行,事情应该“正常”。如果不是,请记录错误here。如果您使用的是经典SKU,请确保已启用“始终开启”。这是人们遇到的常见问题。