我在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点被激活的功能。
答案 0 :(得分:3)
在经典模式下运行的应用需要启用“始终开启”。仔细检查这是否已启用 - 这可以解释它。
功能应用程序可以运行两种计划:动态和经典。您在应用创建期间选择计划。在创建应用程序后,目前无法切换计划:
经典计划在App Service计划上运行,就像其他App Service应用程序一样。您可以选择免费,基本,标准等,您可以自己控制比例。如果您使用的是经典计划,则必须打开“始终打开”才能使触发器可靠地触发。这要求您的网站处于基本或标准模式。您可以通过点击“功能应用设置” - >从功能应用中管理此功能(并检查“始终开启”) '转到应用服务设置'。 “始终开启”设置位于“应用程序设置”中。
动态计划按执行收费。没有“永远在线”的概念 - 当触发器触发时,您的站点将启动(如果尚未启动)并且您的功能将会运行。
请点击此处了解详情:https://azure.microsoft.com/en-us/documentation/articles/functions-scale/#choose-a-service-plan