2016-10-03 167 views
3

我有後續function.json文件在Azure上的函數:定時器觸發Azure的功能沒有得到觸發

{ 
    "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

+0

我在消費(動態)計劃同樣的問題,但竟然是時區UTC VS混亂 - 確保你排除這一可能性。目前不可以在觸發級別配置時區:https://github.com/Azure/azure-webjobs-sdk-extensions/issues/178 –

回答

3

應用要求「始終在線」啓用。仔細檢查這是否啓用 - 這將解釋它。

功能應用程序可以運行在兩個計劃:動態經典。您在創建應用程序時選擇計劃。目前還沒有任何方式的應用程序創建之後切換計劃:

enter image description here

  • 經典計劃在App服務運行計劃,就像其他的應用服務的應用程序。你可以選擇免費,基本,標準等,你可以自己控制規模。如果您使用的是經典計劃,則必須啓用「始終開啓」才能讓觸發器可靠地啓動。這要求您的網站處於基本或標準模式。您可以通過點擊「功能應用程序設置」 - >「轉至應用程序服務設置」,從您的功能應用程序中進行管理(並檢查「始終開啓」)。 「始終開啓」設置位於「應用程序設置」中。

  • 動態計劃通過執行收費。沒有「永遠在線」的概念 - 當觸發器觸發時,您的站點將啓動(如果尚未啓動)並且您的功能將運行。

在這裏看到更多的細節:https://azure.microsoft.com/en-us/documentation/articles/functions-scale/#choose-a-service-plan

+0

另請參閱此相關答案:http://stackoverflow.com/questions/39430932/如何做,我打開總是在一個天藍色的功能/ 39431332#39431332 –

+0

這可能是非常好的,只是不知道在哪裏可以找到這些信息?看起來我必須切換更改應用程序服務計劃,也許。 –

+0

古德點;我已經加強了我的回答。 – brettsam