Ich versuche, eine mentale Verschiebung in Richtung dieser serverlosen Sache zu machen, und ich merkte nicht, wie ich meinen vorhandenen Backend-Code portieren sollte. Ich brauche die folgenden Annahmen zu klären:Verhalten von Azure-Funktionen verstehen
- eine Azure Funktion ist als ein Single-Threaded-Stück Code sein?
- Ist es immer eine schlechte Idee, TPL und PLINQ in einer Funktion zu verwenden?
- Wie hoch ist der Overhead von
static
Mitgliedern im Vergleich zum regulären App-Service? Grundsätzlich haben wir irgendwelche Garantien aufAppDomain
Lebensdauer? - Wenn ich ein Logging-Framework wie NLog verwenden oder log4net deren async Appen benötigen einen eigenen Thread muss ich von irgendetwas sein müssen besorgt?
- Wie kann ich überwachen, wie viel Speicher jeder Funktion ausgeführt wurde?
Ist es möglich, einen DI-Container einzurichten, so dass meine Abhängigkeiten in
Run
Methode injiziert werden? So etwas Ähnliches:[FunctionName("ServiceBusQueueTriggerCSharp")] public async Task RunAsync( [ServiceBusTrigger("myqueue", AccessRights.Manage, Connection = "meconn")] string myQueueItem, IBusinessLogicService blService, ILogService logService, IMailingService mailService) { }
Ist es möglich, eine
CancellationToken
inRun
Methode zu erhalten, so dass ich stornieren/shutdown anmutig?