web servers that receive events from the Azure Functions host. Any language that supports HTTP primitives can implement a custom handler. This means that custom handlers can be used to create functions in languages that aren't officially supported. 📚 Go Sample: https://github.com/Azure-Samples/functions-custom- handlers/tree/master/go
- We give you base Linux Image. - Premium Plan or Dedicated App Service Plan Host is a must. 📚 https://learn.microsoft.com/azure/azure-functions/functions- create-function-linux-custom-image ⚠️ Linux Containers can only be deployed to Linux Premium and Linux Dedicated plans.
- Execution Count Charge - Premium - vCPU + Memory Duration - App Service Elastic Premium plans (SKU starts with E) - Autoscales out of the box. - Every premium plan has at least one active (billed) instance at all times. - Multiple Functions Apps can share a single plan. - Dedicated - App Service Premium V2 plans (SKU starts with P) - Wont autoscale unless you do.
everything with the same runtime process. - Isolated means: - Not stuck with the .NET Version used by runtime. - Less dependency conflict - Dependency injection and middleware support for .NET.
schemas or designers are needed. • They can call other functions synchronously and asynchronously. Output from called functions can be saved to local variables. • They automatically checkpoint their progress whenever the function awaits. Local state is never lost if the process recycles.
relationship between functions and queues. • Middle queues are an implementation detail – conceptual overhead. • Error handling adds a lot more complexity.
to restore all local state (local variables, etc). • Follows the Event Sourcing stateful pattern • Function calls are never replayed – the outputs are remembered. This requires the orchestrator code to be deterministic. • Rule #1: Never write logic that depends on random numbers, DateTime.Now, Guid.NewGuid(), etc. • Rule #2: Never do I/O directly in the orchestrator function. • Rule #3: Do not write infinite loops • Rule #4: Use the built-in workarounds for rules #1, #2, and #3