azure门户中的计时器触发功能不起作用

问题描述 投票:0回答:1

已在 C# .NET6 中创建了一个多项目解决方案,其中有一个 Function 项目。 函数项目包含一个定时器触发的函数:

  [FunctionName("Function1")]
  public async Task Run([TimerTrigger("0 0/1 * * * *")]TimerInfo myTimer, ILogger log)
  {
    log.LogInformation($"C# Timer trigger function executed at: {DateTime.Now}");

我使用 Visual studio 2022,因此右键单击我的解决方案中的功能项目并选择发布。发布工作正常,应用程序上传到 Azure,并在 Azure 门户中创建一个已启动并运行的新函数。

在 Azure 门户上的 Application Insight 中,我可以在事务搜索中看到以下消息:

Host Status: { "id": "functionappjohantest", "state": "Running", "version": "4.30.0.22097",..................
但是,设置为每分钟一次的计时器触发器永远不会触发,因为 Application Insight 中没有新输入。

这里出了什么问题?

cron azure-functions azure-application-insights azureportal timer-trigger
1个回答
0
投票

感谢亚当·文森特的见解。

  • 计时器触发器要求函数应用程序“预热”才能按计划执行,并且启用“始终开启”可确保函数应用程序保持活动状态。参考这个SO链接
  • 我在我的环境中使用以下代码尝试了相同的操作,并且它按预期工作。检查下面:

功能代码:

using System;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Host;
using Microsoft.Extensions.Logging;

namespace FunctionApp2
{
    public class Function1
    {
        [FunctionName("Function1")]
        public void Run([TimerTrigger("0 0/1 * * * *")]TimerInfo myTimer, ILogger log)
        {
            log.LogInformation($"C# Timer trigger function executed at: {DateTime.Now}");
        }
    }
}

以上函数在本地执行成功。检查下面:

enter image description here

之后,我成功地将函数发布到门户中。

enter image description here

该功能在门户中也运行成功。检查下面:

enter image description here

输出:

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.