我試圖讓這個無服務器的事情發生心理轉變,並且我發現自己不理解如何移植我現有的後端代碼。我需要澄清以下假設:瞭解Azure函數行爲
- Azure函數是否被認爲是單線程代碼?
- 在函數內部使用TPL和PLINQ總是一個壞主意嗎?
- 與普通應用服務相比,
static
會員的費用是多少? 基本上,我們對AppDomain
生命時間有任何保證嗎? - 如果我使用日誌框架,如NLog或log4net其異步appenders需要一個專用線程我需要擔心什麼?
- 我該如何監測每個函數運行花費多少內存?
是否可以設置DI容器,以便將我的依賴關係注入到
Run
方法中?類似的東西:[FunctionName("ServiceBusQueueTriggerCSharp")] public async Task RunAsync( [ServiceBusTrigger("myqueue", AccessRights.Manage, Connection = "meconn")] string myQueueItem, IBusinessLogicService blService, ILogService logService, IMailingService mailService) { }
是否有可能得到一個
CancellationToken
在Run
方法,這樣我可以優雅地取消/關機?