gpt4 book ai didi

azure - Azure Functions 中令人费解的存储事务

转载 作者:行者123 更新时间:2023-12-03 16:23:30 25 4
gpt4 key购买 nike

我有一个项目,其中有几个按计划运行的基于 .NET Core 的 Azure Functions。其中一个每 10 分钟运行一次,用于更新 View 计数,类似于 SO 跟踪问题 View 的方式,另一个则每周发送一次电子邮件。这些功能运行良好一年左右。我最近将它们更新为使用 Azure Functions SDK v3 和 Azure Functions 运行时 v3 以及 .NET Core 3.1(基本上从 .NET Core 2.1 迁移到 .NET Core 3.1,因此我需要更新函数运行时)。

有一次我收到了一张比平常高得多的账单。事实证明,共享相同底层存储帐户的函数开始对存储进行大量 API 事务。每 5 分钟就有数千次。通常,每次运行都会生成大约 100 个存储事务(可能是检索函数文件?),但在某些时候事务会急剧增加。重新启动功能后,交易会降至正常,并且几天内一切正常,然后它们再次跳跃并保持高位,直到重新启动。

功能代码没有改变,仅升级了SDK和运行时。该函数代码通过SDK提供的记录器进行恒定数量的日志写入(例如7次),并且不以任何其他方式与存储交互。

我有两个相同的环境,一个用于测试,一个用于生产,并且都有相同的问题。该功能发生故障所需的时间间隔是几天,但每次似乎都不同。但是,如果我同时重新启动测试和生产,下一个峰值将在两个环境中同时发生,因此存在确定性。

根据我通过 Metrics 工具的调查,违规交易类型是 Create、Close 和 ChangeNotify,以及一些 Cancel(但少于其他)。该存储不用于任何其他用途(事实上,它的存在只是因为 Azure Functions 需要后备存储来存储其文件或其他内容)

这是相关的触发代码

[FunctionName("ViewCountUpdater")]
public static async Task RunAsync([TimerTrigger("0 */10 * * * *"/*, RunOnStartup = true*/)]TimerInfo timer, ILogger log, ExecutionContext context)

我相信我遇到了 Azure Functions 运行时或 Azure Functions .NET Core SDK 的错误。有没有人经历过这个或知道如何解决它?

最佳答案

您是否启用了AzureWebJobsDashboard?如果是,您应该禁用它(从应用程序设置中删除连接字符串)并切换到应用程序洞察。已知此设置会导致意外写入存储,而无法正确解释。

https://github.com/Azure/Azure-Functions/issues/832

关于azure - Azure Functions 中令人费解的存储事务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60114152/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com