azure - Azure Function 方法名称重要吗?

标签 azure azure-functions

我目前正在开发一些 C# Azure Functions。我使用的命名约定是 Process[ThingIWantToProcess]() 就像这样...

public static void ProcessRequest([TimerTrigger("00:00:10", RunOnStartup = true, UseMonitor = false)] TimerInfo timer, ILogger logger)
{
     // Do function things
}

几天前,所有函数(目前有 6 个)在部署时停止运行,但据我所知或看到,没有任何代码发生更改。

本地和 Kudu 控制台的控制台都会显示“找到以下功能:”并显示所有预期的功能;但是,这些函数永远不会运行。

我尝试了各种方法,包括重新部署、重新启动 Azure Web 作业以及更改方法的内容,但仍然没有触发。然后,我更改了该函数的名称,突然它开始工作了!

因此,现在不再是 ProcessRequest,而是 ProcessRequest1,并且该函数已成功触发。我用几种不同的方式更改了名称,所有这些方法都有效,但是当我改回 ProcessRequest 时,它再次停止工作。

我在文档或互联网搜索中找不到任何解释此行为的信息,我担心在未来的维护过程中它会再次发生。

还有其他人经历过这种情况吗?如果有的话,你能给我一些解释吗?

最佳答案

嘿嘿!!这是由于 TimerTrigger 使用锁定行为来确保只有一个函数实例在横向扩展的实例上运行。因此,如果您对多个网络作业使用相同的存储帐户,您将面临此问题。

要解决此问题,我建议您为您的作业创建单独的存储帐户,它应该按原样工作!!!

了解更多信息请访问:https://github.com/Azure/azure-webjobs-sdk/issues/614

关于azure - Azure Function 方法名称重要吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56137642/

相关文章:

azure - 在 Azure Pipeline 任务中循环多个参数

Azure函数后调用导致使用ajax调用产生400错误请求,并且当POST更改为GET时相同的函数可以工作

azure - 如何将 Azure Functions v3 迁移到 .net core 5.0

azure - Azure 保留 IP 地址与 Azure 静态公共(public)地址的区别

Azure API管理: X-Forwarded-Host,获取原始主机

Azure 上的 MySql 引发连接超时

python - 覆盖 Blob 存储上的 Blob - 出现 "read only"异常

具有事件网格触发器的 Azure 函数被调用两次,而其他 Azure 函数仅发布一次

node.js - Azure 函数的 Node 和 DirectlineJS es6 导出的版本兼容性问题

sql-server - 如何通过Azure App Service连接Linux机器中安装的SQL Server?