10.3 Serverless-Based Solution Design (Azure Functions, Logic Apps)
Key Takeaways
- Azure Functions hosting plans trade off cold start, timeout, VNet integration, and billing model: Consumption, Flex Consumption, Premium, and Dedicated.
- Every HTTP-triggered function has a hard 230-second response ceiling from the Azure Load Balancer's idle timeout, regardless of the configured function timeout.
- Durable Functions patterns — function chaining, fan-out/fan-in, async HTTP API, monitor, human interaction — are named exam concepts, not generic terms.
- Logic Apps Standard is now the only path for workflows needing private VNet connectivity, since the Integration Service Environment (ISE) has been retired.
- Choose Functions for custom code and performance-critical logic; choose Logic Apps for large-connector-ecosystem workflow orchestration and human-in-the-loop approvals.
Why Serverless Design Matters on AZ-305
The third compute-selection objective, "Recommend a serverless-based solution," covers two distinct Azure services that both eliminate infrastructure management but solve different problems: Azure Functions (event-driven, code-first compute) and Logic Apps (workflow orchestration, low-code/visual). AZ-305 scenarios test both the choice between the two services and, once Functions is chosen, the choice of hosting plan — because the hosting plan decision drives cold start behavior, maximum execution time, and whether the app can reach private network resources at all.
Azure Functions Hosting Plans
| Plan | Scaling | Cold start | Default / max timeout | VNet integration | Billing |
|---|---|---|---|---|---|
| Consumption | Dynamic, scales to zero | Yes | 5 min default / 10 min max | No | Pay strictly per execution |
| Flex Consumption | Dynamic, scales to zero, optional always-ready instances | Reduced via always-ready instances | Configurable | Yes | Per-execution plus memory for any always-ready instances |
| Premium (Elastic Premium) | Pre-warmed instances plus dynamic scale-out | None (pre-warmed) | 30 min default / 60 min max | Yes | Per-core-second, minimum instance count required |
| Dedicated (App Service Plan) | Manual or App Service autoscale | None if Always On enabled | 30 min default / no limit with Always On | Yes | Fixed cost for the underlying App Service Plan VMs regardless of execution volume |
Flex Consumption is Microsoft's current recommended default for new serverless workloads: it closes the two biggest historical Consumption-plan gaps — no VNet support and no way to reduce cold starts short of jumping straight to a Premium plan — while still billing on a scale-to-zero, per-execution basis. Configuring any always-ready instance count above zero means you are billed for that reserved capacity whether or not it executes functions, so it is a deliberate cold-start-versus-cost trade, not a free upgrade.
A Hard Ceiling Every Plan Shares
Regardless of the function app's configured timeout, any HTTP-triggered function has a hard 230-second ceiling to respond to a request — imposed by the underlying Azure Load Balancer's default idle timeout, not by the Functions runtime. A design that needs synchronous HTTP responses beyond 230 seconds must be re-architected around an asynchronous pattern (client polls a status endpoint, or a Durable Functions async HTTP API pattern), not simply by raising the functionTimeout setting.
Durable Functions Patterns
Durable Functions is an extension for building stateful workflows out of stateless functions. Recognize these named patterns for the exam:
- Function chaining — execute a sequence of functions in a specific order, passing output to the next
- Fan-out/fan-in — execute many functions in parallel, then aggregate their results
- Async HTTP API — wrap a long-running operation behind a client-polled status endpoint, working around the 230-second HTTP ceiling
- Monitor — a recurring, flexible-interval polling loop (e.g., checking an external system's state until a condition is met)
- Human interaction — a workflow that pauses for an external event such as an approval, with a timeout fallback
Logic Apps: Consumption vs. Standard
| Aspect | Consumption | Standard |
|---|---|---|
| Tenancy | Multi-tenant, shared infrastructure | Single-tenant, runs on the Azure Functions runtime |
| Billing | Per action/trigger execution | Reserved compute via a Workflow Service Plan (or App Service Environment v3) |
| Workflows per resource | One workflow per Logic App resource | Multiple workflows per Logic App resource |
| VNet integration | Not supported | Supported via App Service VNet integration |
| Best fit | Infrequent, simple workflows; unpredictable volume | High-volume workflows, or any workflow needing private network connectivity |
A critical 2026 exam fact: the Integration Service Environment (ISE) has been retired, so Standard is now the only Logic Apps path for a workflow that must reach a resource behind a private endpoint or an on-premises firewall — there is no longer an ISE fallback for Consumption-plan private connectivity.
Choosing Between Functions and Logic Apps
Choose Azure Functions when the solution needs custom code, complex conditional logic, or maximum performance per execution. Choose Logic Apps when the solution is primarily an orchestration of many steps across a large connector ecosystem (300+ built-in and managed connectors for SaaS and enterprise systems), needs a visual designer for business stakeholders, or requires human-in-the-loop approval steps.
Common Exam Traps
- Recommending Consumption-plan Functions for a workload that must reach a private SQL Managed Instance over a VNet — Consumption has no VNet integration; the answer must be Flex Consumption, Premium, or Dedicated.
- Assuming Durable Functions removes the 230-second HTTP ceiling — it doesn't; the ceiling is a Load Balancer limit, and Durable Functions works around it with the async HTTP API pattern, not by extending it.
- Recommending Logic Apps Consumption when the workflow needs private connectivity, forgetting ISE is retired — the correct answer is Standard.
- Treating Flex Consumption and Premium as interchangeable — Flex Consumption keeps the scale-to-zero, per-execution economics that Premium (with its required minimum instance count) does not.
Scenario Walkthrough
Adventure Works needs an image-resizing pipeline triggered by Blob Storage uploads, which must write results into a private SQL Managed Instance reachable only over a VNet, while keeping cost near zero when idle — the fit is Azure Functions on the Flex Consumption plan. A separate team needs to orchestrate a multi-day partner onboarding process spanning Outlook approval emails, a Teams notification, and an SFTP file drop with minimal custom code, and one step must reach an internal system through a private endpoint — the fit is Logic Apps Standard (Consumption is ruled out the moment private connectivity is required).
A company needs an Azure Functions app that connects to a SQL Managed Instance over a private VNet, but wants to keep scale-to-zero, pay-per-execution billing rather than paying for a minimum instance count around the clock. Which hosting plan should the architect recommend?
An HTTP-triggered Azure Function needs to synchronously return a response after 6 minutes of processing. The function app's timeout is configured for 10 minutes. What happens, and why?