【发布时间】:2020-05-23 15:09:43
【问题描述】:
我有一个项目,其中包含几个按计划运行的基于 .NET Core 的 Azure Functions。其中一个每 10 分钟运行一次,用于更新视图计数,类似于 SO 跟踪问题视图的方式,另一个每周发送一次电子邮件。这些功能在一年左右的时间内运行良好。我最近更新了它们以使用 Azure Functions SDK v3 和 Azure Functions 运行时 v3 以及 .NET Core 3.1(基本上从 .NET Core 2.1 迁移到 .NET Core 3.1,所以我需要更新函数运行时)。
有一次我收到了比平时高得多的账单。事实证明,共享相同底层存储帐户的函数开始对存储进行大量 API 事务。就像每 5 分钟有数千个。通常每次运行都会生成大约 100 个存储事务(可能是检索函数文件?),但在某些时候事务会急剧增加。重新启动函数后,事务恢复正常,几天内一切正常,然后它们再次跳跃并保持高位,直到重新启动。
函数代码没有随着升级而改变,只是 SDK 和运行时。该函数代码通过 SDK 提供的 logger 具有恒定数量的日志写入(如 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 的错误。有没有人遇到过这种情况或知道如何解决它?
【问题讨论】:
-
您是否在 Azure 支持上开过工单?他们应该能够进行调查,如果是错误,请退款
-
是的。我已经在 Azure 支持的电子邮件线程中待了好几个星期,但没有任何解决办法。至少有两个人调查了问题,并在确认问题发生后将其发送给其他人。根据电子邮件,我的问题现在已转移到“产品组”,但电子邮件线程中没有新人。我正在考虑在 Azure Functions SDK GitHub 中打开一个问题,但我决定先尝试 SO。
-
绝对看起来像一个错误。将带有此问题链接的推文发送给 @AzureSupport 和 @jeffhollan,Microsoft Azure Functions 的首席 PM Mgr
-
@CSharpRocks 我再给它几天时间,我不想跳过 Azure 支持人员,他们一直非常好,而且似乎正在尽力而为。此外,我估计有 10% 的可能性是我做错了什么。我发布这篇文章的主要原因是,如果其他人遇到了这个错误,他们可以在 Google 上找到结果并确认它确实是一个错误。
标签: azure .net-core azure-functions azure-functions-runtime