计时器触发Azure功能未被触发

时间:2016-10-03 06:21:33

标签: azure azure-functions

我在Azure上有一个函数,其中包含以下function.json文件:

{
    "bindings": [
        {
            "type": "timerTrigger",
            "direction": "in",
            "schedule": "0 0 3 * * *",
            "name": "myTimer"
        }
    ],
    "disabled": false
}

除非我错了,否则这应该让函数每天凌晨3点运行一次?

这是该功能的签名:

public static async Task Run(TimerInfo myTimer, TraceWriter log) {}

那么我做错了什么?当我手动触发它时,该功能正常工作(点击门户网站中的“运行”),但它今天凌晨3点没有运行,而且昨天也没有。

编辑:因此,正如建议的那样,我已将计划更改为付费计划,并且我已选择了动态计划。日志仍然没有说明今天凌晨3点被激活的功能。

enter image description here

1 个答案:

答案 0 :(得分:3)

在经典模式下运行的应用需要启用“始终开启”。仔细检查这是否已启用 - 这可以解释它。

功能应用程序可以运行两种计划:动态经典。您在应用创建期间选择计划。在创建应用程序后,目前无法切换计划:

enter image description here

  • 经典计划在App Service计划上运行,就像其他App Service应用程序一样。您可以选择免费,基本,标准等,您可以自己控制比例。如果您使用的是经典计划,则必须打开“始终打开”才能使触发器可靠地触发。这要求您的网站处于基本或标准模式。您可以通过点击“功能应用设置” - >从功能应用中管理此功能(并检查“始终开启”) '转到应用服务设置'。 “始终开启”设置位于“应用程序设置”中。

  • 动态计划按执行收费。没有“永远在线”的概念 - 当触发器触发时,您的站点将启动(如果尚未启动)并且您的功能将会运行。

请点击此处了解详情:https://azure.microsoft.com/en-us/documentation/articles/functions-scale/#choose-a-service-plan