我在App服務計劃上的Azure函數應用程序中有一個函數。Azure函數凍結(?)
我的功能是在python中。它包含一個循環,它使用tweepy模塊從twitter API中獲取數據,並將結果寫入本地臨時文件,然後將它們保存到Azure存儲(我爲此使用AppenedBlobService)中的文件。
問題
的問題是有時我的函數只是凍結(?)。它會提出請求,獲得結果,保存結果然後隨時凍結。它不停止,當我看着監視器窗格時,它仍在運行(三個藍色點)。停止它的唯一方法是我必須重新啓動一個實例(過了一段時間,藍點變成橙色感嘆號)。它不顯示任何錯誤,也不會產生任何結果。它不會引發異常,最終block不會被執行,它感覺就像函數就在那裏,不執行新行,不停止,沒有任何東西。
什麼是完全令人困惑的是,這發生在執行過程中的不同步驟。有時會在調用API時發生(因此它看起來像該方法永遠不會返回),有時在存儲中檢查Blob存在(通過BlockBlobService完成),有時會在保存結果時發生。
假設
我的假設是,也有一些是錯誤的API。但是,當我在本地進行測試時,API沒有問題。我可以順利地完成大量連續請求,而Azure函數中的3-5個請求之後它會凍結。 (它也慢得多。) 所以另一種可能性是將文件保存到存儲時出錯了,但是有時候它會保存正確的結果。它會保存,然後循環回API調用並卡住,或者完成API調用並卡住,而不是保存或任何東西。
一切在當地環境中工作得很好所以我真的不知道如何繼續在這裏。我試圖通過在每一步之間打印來追蹤它,並且如上所述,我發現它掛起的位置,但它仍不能說明它爲什麼會掛起,因爲有時候這段代碼工作得很好。
任何有關問題可能出現的建議,或者我應該如何調試?謝謝!
發生這種情況時,隊列中始終只有一個項目。如果你能看看我的功能,那會很棒。網站:http://data-analysis.azurewebsites.net/,函數名以_search結尾 – Mind
我已經查看了LogFiles/Applicaton/Functions中的日誌,並且它沒有任何比函數入口(僅停止在某些步驟打印任何東西)。在Kudu中,這些調用日誌與「監視器」窗格中顯示的相同。當我的函數凍結時,狀態是「永不完成」,因此除了綁定參數值和上下文之外沒有任何信息。可以指示我到哪裏我可以找到那些tweepy錯誤日誌? – Mind