azure - 为什么 Azure Functions 需要花费过多时间才能到达 "wake up"?

标签 azure azure-functions

我们有一个简单的 Azure 函数来进行 DocumentDB 查询。好像第一次调用要等很长时间才能完成,然后连续调用就很快了。

例如,我刚刚打开我们的应用程序,第一个函数调用花费了 10760 毫秒,任何最终用户都绝对会注意到。此后,所有函数调用大约需要 100 毫秒来处理,并且几乎难以察觉。

Azure Functions 中似乎存在一些“唤醒”周期。有什么方法可以最大限度地减少这种情况,或者更好的是将此记录在某处,以便我们可以了解这里到底发生了什么?

最佳答案

按消耗计划运行的功能应用确实有一段空闲时间,之后它们实际上会进入休眠状态。正如您所观察到的以及人们在评论中提到的那样,需要下一次调用来“唤醒他们”。

至于为什么会发生这种情况,是为了让 Microsoft 能够在 Multi-Tenancy 环境中以最佳方式分配计算工作负载,同时确保您只在函数实际工作时按秒计费。这就是无服务器的美妙之处。

对于这种行为 Not Acceptable 工作负载,您可以考虑放弃消耗计划并转向实际的应用服务计划。或者,您可以实现一个计时器触发的函数,例如每分钟触发一次,并通过 ping 您不想进入休眠状态的函数来将其用作“保持事件”机制。

关于azure - 为什么 Azure Functions 需要花费过多时间才能到达 "wake up"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45448040/

相关文章:

azure - Azure DevOps 上的 Terraform 和 azurerm 后端

azure - Cloudera Impala : File has an invalid version number. 这可能是由于过时的元数据造成的

azure - 通过 Visual Studio 2017 发布 Azure 函数项目后,所有函数应用程序都转为只读模式

azure - 使用 Azure Powershell 函数从 Azure Blob 存储读取 XLSX 文件

azure - Terraform - 功能创建 Swift 虚拟网络不允许用于免费试用订阅 - 在即用即付订阅中

c# - .net6.0 上的 Azure Functions 无法在本地运行,并出现 hostpolicy.dll 错误

python - 如何使用 Azure 函数和 python 写入 blob 容器中的文本文件?

azure - 如何在现有 Azure KeyVault 上启用软删除

Azure Blob 存储错误 : Multiple condition headers are not supported

azure - 免费套餐应用服务计划下 Azure Webjob 与 Azure 功能的成本计算?