【问题标题】:Delay in Azure function triggering off IOThubAzure函数延迟触发IOThub
【发布时间】:2018-03-16 15:20:18
【问题描述】:

我有数据从我的系统传输到 azure iot。我在发送数据包时给它加上时间戳。然后我有一个由iothub触发的天蓝色函数。在 azure 函数中,我获取消息并获取时间戳并记录数据到达函数所需的时间。我的系统上还有另一个程序正在运行,它监听 iothub 上的数据并记录该时间。 所以大多数时候,azure 函数中的时间以毫秒为单位,但有时,我看到 azure 函数被触发的时间很长(我认为这是因为从 iot hub 读取的程序显示数据快速到达物联网枢纽,没有延迟)。

有人知道为什么 azure 功能可能会延迟触发

【问题讨论】:

  • 什么是大延时,分钟?您是否有可以共享的示例调用 id(以及它发生时的时间戳?)

标签: azure azure-functions azure-iot-hub


【解决方案1】:

这与这里提出的问题相同吗? https://github.com/Azure/Azure-Functions/issues/711

我将复制/粘贴我的答案供其他人查看:

根据我在日志中看到的内容和您的描述,我认为延迟可以解释为由您的函数应用进程的冷启动引起。如果函数应用闲置了大约 20 分钟,则会从内存中卸载它,并且任何后续触发器都会启动冷启动。 基本上,会发生以下一系列事件:

  1. 函数应用闲置并被卸载(这发生在您提到的触发器之前大约 5 分钟)。
  2. 您发送新事件。
  3. 该事件最终会被我们的秤控制器注意到,该控制器每隔 10 秒轮询一次事件。
  4. 我们的规模控制器启动您的函数应用程序的冷启动。这可能会增加几秒钟,具体取决于您的函数应用的内容(在本例中约为 6 秒)。

不幸的是,这是消费计划的已知行为。你可以在这里阅读这个问题:https://blogs.msdn.microsoft.com/appserviceteam/2018/02/07/understanding-serverless-cold-start/。该博客文章还讨论了一些解决方案,如果它对您的方案有问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-07
    • 1970-01-01
    • 1970-01-01
    • 2012-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多