【问题标题】:Only have one instance of an Azure Function?只有一个 Azure 函数实例?
【发布时间】:2022-08-09 15:14:02
【问题描述】:

我找不到任何关于如何将 Azure Function v4 强制为单例的文档,因此当函数应用向外扩展时(出于某种原因),其中一个函数不会向外扩展。

我的函数是 TIMER TRIGGER,在 v4 .NET6.0 ISOLATED Azure 函数中。

  • techcommunity.microsoft.com/t5/apps-on-azure/… - 这篇博文将帮助您创建 .net 6 azure function v4!
  • 谢谢你的链接..但这没有回答我的问题。该链接只是关于 .NET 6 + AzFunc 的一般内容。我正在寻找更详细,更直接的答案。

标签: .net azure-functions


【解决方案1】:

即使您的 Function App 横向扩展,计时器触发器也只会在单个实例上运行。

如果函数应用扩展到多个实例,则仅在所有实例中运行计时器触发函数的单个实例。如果有未完成的调用仍在运行,它将不会再次触发。

Microsoft docs

编辑来自文档的新报价:

计时器触发器使用存储锁来确保在函数应用扩展到多个实例时只有一个计时器实例。如果两个函数应用共享相同的识别配置并且每个都使用一个计时器触发器,则只有一个计时器运行。

【讨论】:

  • 链接不合法/有效?
  • 修复了链接@Pure.Krome
【解决方案2】:

documentation 显示在 Visual Studio 中的 Azure Functions v4 中直接创建 .net 6,this 用于将 VS 代码用于相同的 .Net 6 Azure Functions V4,此documentation 可帮助您使用 Azure Functions v4和 .Net Core 6 通过命令行。

我找不到任何有关如何将 Azure Function v4 强制为单例的文档,因此当函数应用向外扩展时(出于某种原因),其中一个函数不会向外扩展。

如果函数应用横向扩展为多个实例,则仅在所有实例中运行计时器触发函数的单个实例。如果有未完成的调用仍在运行,它将不会再次触发。

请参阅此MSFT documentation 了解更多详情和此GitHub thread

【讨论】:

    猜你喜欢
    • 2017-10-01
    • 2016-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多