Microsoft Azure interview questions
Reviewed by Mark Dickie · Last updated
14 questions on this page you can answer and see marked on the spot. Go to the first one
Microsoft Azure is the cloud computing platform operated by Microsoft, offering compute, storage, networking, identity, and managed services across more than 60 regions. For an Azure interview you should know the core service categories (IaaS, PaaS, SaaS), how Azure Resource Manager organises resources into subscriptions and resource groups, and the identity model built on Microsoft Entra ID (formerly Azure AD). Expect questions on virtual machines versus App Service versus Azure Functions, storage account types and redundancy options, virtual networking and peering, role-based access control, and cost management with reservations and savings plans.
| Azure area | What an interview typically covers |
|---|---|
| Compute | VM sizes, availability sets vs. zones, App Service plans, Azure Functions triggers, AKS basics |
| Storage | Blob tiers (hot/cool/archive), LRS vs. GRS vs. ZRS, Azure Files vs. Data Lake Storage |
| Networking | VNet structure, subnets, NSGs, peering, ExpressRoute, Load Balancer vs. Application Gateway |
| Identity | Microsoft Entra ID tenants, users vs. service principals, RBAC roles, conditional access |
| Governance | Management groups, Azure Policy, tags, resource limits, Cost Management tools |
What does an Azure interview test?
An Azure interview generally checks three things: whether you can pick the right service for a given requirement, whether you understand the security and identity controls around it, and whether you can reason about cost and scalability. Interviewers often present a scenario (e.g., "host a web app that must survive a data centre failure") and expect you to map it to specific Azure services and configuration choices.
How should you structure your study?
- Learn the resource hierarchy: management groups → subscriptions → resource groups → resources, and why this grouping matters for billing and RBAC.
- Master the compute options and when to use each: VMs for full control, App Service for managed web apps, Functions for event-driven workloads, AKS for container orchestration.
- Study the storage account types and redundancy tiers, including when GRS or GZRS is worth the cost over LRS.
- Practice networking basics: VNets, peering, NSG rule evaluation, and the difference between public Load Balancer (layer 4) and Application Gateway (layer 7).
- Review identity and access: Entra ID tenants, service principals for app auth, managed identities, and the principle of least privilege through built-in and custom RBAC roles.
- Know the cost levers: reserved instances, savings plans, auto-shutdown for dev VMs, and budgets/alerts in Cost Management.
Key facts
- Tarmac has 105 Microsoft Azure interview questions on this topic, 25 of them on this page, at difficulty 1–5 of 5.
- Tarmac tracked 2,112 job postings asking for Microsoft Azure in September 2026.
- Roles asking for Microsoft Azure advertise a median base salary of £75,000, across 503 job postings as of September 2026.
- Tarmac last reviewed these Microsoft Azure interview questions on 13 October 2026.
At a glance
| Questions | 25 shown · 105 in the bank |
|---|---|
| Difficulty | 1–5 of 5 |
| Formats | Multiple answer, Design exercise, Multiple choice, True / false, Flashcard, Fill in the blank, Find the bug, Short answer, Ordering |
What you'll review
- app service
- vm basics
- storage tiers
- arm bicep templates
- scaling patterns
- azure functions
- network security groups
- key vault secrets
- virtual networks
- blob public access
Practice questions
Try one before you open the answer. Pick an option and press Check; it's marked on the spot.
Which operating systems does Azure App Service natively support for hosting web applications? Select all that apply.#
Options
Pick every one that applies.
Show answer
Azure App Service natively supports hosting web applications on both Windows and Linux. Microsoft maintains built-in runtime stacks for each platform (e.g., .NET/Node on Windows, Node/Python/Java/.NET on Linux). macOS and ChromeOS are not supported.
Azure App Service natively supports hosting web apps on both Windows and Linux. macOS and ChromeOS are not supported operating systems for App Service.
You are deploying a single Windows-based web application for a small business. The app runs on .NET and needs a modest amount of CPU and memory (it handles low traffic, roughly 50 concurrent users). You need to design a basic Azure Virtual Machine deployment. Describe your design choices for: (1) which VM size family you would pick and why, (2) which OS disk type you would use and why, and (3) how you would connect the VM to the internet while still restricting access. Keep the design simple and suitable for a beginner-level deployment.#
Show answer
I would provision a general-purpose D-series VM, such as a Standard_D2s_v5 (2 vCPUs, 8 GiB RAM). The D-series is a balanced general-purpose family that provides a good ratio of CPU to memory for a .NET web app serving roughly 50 concurrent users, and it is widely available across Azure regions. For the OS disk I would attach a 127 GiB Standard SSD managed disk. Standard SSD gives reliable performance and is significantly cheaper than Premium SSD, which is more than enough for a low-traffic web application. To expose the application to the internet while restricting access, I would place the VM inside a Virtual Network with a subnet, assign a public IP address to the VM's network interface, and attach a Network Security Group to the subnet or NIC. The NSG inbound rules would allow TCP 80 (HTTP) from the internet or a specific client IP range, and TCP 3389 (RDP) only from the administrator's public IP address. All other inbound traffic would be denied by default.
This is a foundational Azure VM design question. A correct answer selects a general-purpose VM family, chooses an appropriate managed disk type, and describes VNet + NSG for network access control.
A startup runs a Linux-based API server on a single Azure VM. The VM has crashed twice in the past three months due to underlying hardware issues in the Azure datacenter, causing downtime. You are asked to propose a simple, beginner-friendly improvement to the VM configuration to reduce unplanned downtime from hardware failures. Describe your design, including: (1) which Azure feature you would use, (2) how many fault domains and update domains you would configure (or whether you need multiple VMs), and (3) what limitation remains even after this change.#
Show answer
I would use an Azure Availability Set rather than Availability Zones, because the problem is specifically hardware failures within a single datacenter — the crashes were caused by rack-level hardware issues, not a datacenter-wide outage. Availability Sets provide exactly the right scope of protection (single datacenter) while keeping the design simple and beginner-friendly, whereas Availability Zones would add unnecessary complexity and cost for a problem that does not require cross-datacenter redundancy.
An Availability Set is a logical grouping that places VMs on different physical hardware within the same datacenter. It is configured with fault domains and update domains. A fault domain maps to a physical rack with a shared power source and network switch; by spreading VMs across at least two fault domains, a single rack hardware failure cannot take down all instances. An update domain groups VMs that are rebooted together during planned Azure platform maintenance; with at least two update domains, the platform reboots them one at a time so at least one instance stays up. Crucially, to get any benefit I would deploy at least two VMs inside the availability set (e.g., two replicas of the API server behind a load balancer). With only one VM, the availability set provides no real protection because there is nothing to fail over to.
The key limitation is that an Availability Set only protects within a single Azure datacenter. Both VMs still reside in the same datacenter, sharing power, cooling, and networking infrastructure. If the entire datacenter experiences a power or cooling failure, both VMs go down together. To protect against a datacenter-level failure, I would need Availability Zones instead, which span separate physical datacenters within a region — but that introduces greater complexity (zone-aware load balancing, cross-zone networking) and higher cost.
This question tests understanding of Azure Availability Sets as a basic resiliency feature. The rubric rewards justified feature selection (why Availability Sets fit this scenario), a concrete explanation of the fault-domain/update-domain mechanism including the two-VM requirement, and a limitation analysis that names both the root cause and the escalation path with its trade-off.
Which of the following are currently available Azure App Service Plan pricing tiers for new plans? Select all that apply.#
Options
Pick every one that applies.
Show answer
Basic (B1, B2, B3) and Standard (S1, S2, S3) are currently available Azure App Service Plan pricing tiers for new plans. Free (F1) and Shared (D1) are legacy/retired tiers no longer offered for new plans in most regions, and there is no 'Community' tier. Other current tiers include Premium and Isolated.
As of the current major version of Azure App Service, Basic and Standard are active pricing tiers available for new App Service Plans. The Free (F1) and Shared (D1) tiers are legacy/retired and no longer available for new plans in most regions. There is no 'Community' tier in Azure App Service. Other current tiers include Premium (Pv2, Pv3) and Isolated (I1, I2, I3).
Your team is deploying a standard ASP.NET Core web API with no unusual OS-level dependencies. Why would you default to Azure App Service instead of a Virtual Machine?#
Options
Show answer
Azure App Service is the default choice for a standard web app or API because it's a managed PaaS: Azure handles OS patching and the runtime, and provides built-in autoscale, deployment slots, and TLS/custom-domain setup out of the box, so the team deploys code without managing a VM. A Virtual Machine is infrastructure-as-a-service instead — full OS control, but the team owns patching and scaling — which only pays off when a workload needs OS-level customization App Service can't provide.
App Service is Azure's platform-as-a-service for web apps and APIs: Azure manages the underlying OS, patching, and runtime, and provides built-in features like autoscale, deployment slots for staged rollouts, and easy custom-domain/TLS setup, so the team deploys code rather than managing infrastructure. A VM is infrastructure-as-a-service — full OS control, but the team owns patching, scaling, and everything else, which only pays off when the workload needs OS-level customization App Service can't provide (a specific kernel module, unusual networking, legacy software). Cost isn't a blanket win either way — it depends on utilization and plan tier. The claim that App Service gives full root/administrator access has it backwards: a VM gives full OS access, App Service deliberately does not (that's the tradeoff for not managing it).
You're storing 5 years of compliance logs that are almost never read but must be retrievable within a few hours if audited. Which Blob Storage access tier fits, and why?#
Options
Show answer
Archive is the right Blob Storage tier for rarely-read compliance data with an hours-level retrieval SLA: it has the lowest storage cost of any tier, in exchange for requiring an explicit rehydration step (hours of latency) before a blob can be read. Hot and Cool are online tiers meant for data accessed frequently or occasionally, at higher storage cost but immediate read access — a worse fit when the data is essentially never read.
Blob Storage's access tiers trade storage cost against access cost and latency: Hot is for frequently-accessed data (highest storage cost, cheapest/fastest reads); Cool and Cold sit in between, for data accessed less often but still available online immediately, each with a minimum retention period before early-deletion fees kick in; Archive is offline — the cheapest storage of all, but a blob has to be explicitly rehydrated (typically hours of latency) before it can be read. Rarely-accessed compliance logs with an 'hours is fine' retrieval SLA are the textbook Archive use case: you're paying to store data you almost never touch, so minimizing storage cost dominates, and Archive's rehydration delay is an acceptable tradeoff for that access pattern.
An ARM (or Bicep) template describes the desired end state of your infrastructure declaratively, rather than a step-by-step script of commands to run.#
Options
Show answer
True. ARM and Bicep templates are declarative: they describe the desired end state of the infrastructure, and Azure Resource Manager works out what needs to be created, updated, or left alone to reach it. This is what makes deployments idempotent — re-applying the same template against infrastructure that already matches it does nothing, unlike an imperative script of ordered commands.
True. ARM templates (JSON) and Bicep (a more concise DSL that compiles down to the same ARM JSON) both describe what the infrastructure should look like — which resources should exist and how they're configured — and Azure Resource Manager figures out how to get there: creating what's missing, updating what's changed, and leaving unchanged resources alone. This is the opposite of an imperative script that issues a fixed sequence of az CLI commands; the declarative model is what makes deployments idempotent — re-running the same template against infrastructure that already matches it is a safe no-op.
What's the relationship between an ARM template and a Bicep file?#
Show answer
An ARM template is a JSON document describing Azure infrastructure declaratively; Bicep is a more concise domain-specific language that transpiles (via az bicep build, or automatically during deployment) into the exact same ARM JSON. They deploy through the same Azure Resource Manager engine and support the same resource types — Bicep is a better authoring syntax on top of ARM, not a separate deployment technology.
This distinction trips people up because Bicep looks like a different tool; in practice it's ARM JSON with better ergonomics (less boilerplate, real modules, type checking), compiled down before Resource Manager ever sees it.
In Azure compute, the practice of increasing capacity by provisioning additional VM instances — rather than adding more CPU or memory to a single instance — is called _____.#
Show answer
In Azure compute, the practice of increasing capacity by provisioning additional VM instances — rather than adding more CPU or memory to a single instance — is called scaling out.
Adding more instances is horizontal scaling, universally called 'scaling out' in Azure documentation. Increasing the size (SKU) of an existing instance is 'scaling up' or vertical scaling.
The Azure compute service that manages a group of identical, load-balanced VMs and can automatically grow or shrink the instance count in response to demand or a schedule is called Azure Virtual Machine _____.#
Show answer
The Azure compute service that manages a group of identical, load-balanced VMs and can automatically grow or shrink the instance count in response to demand or a schedule is called Azure Virtual Machine Scale Sets.
Azure Virtual Machine Scale Sets (VMSS) is the service purpose-built for managing a fleet of identical VMs with built-in autoscale support, enabling horizontal scaling based on metrics or schedules.
In an Azure autoscale rule, the _____ setting defines the minimum number of minutes that must pass after a scale action completes before the next scale action is allowed to run.#
Show answer
In an Azure autoscale rule, the cooldown setting defines the minimum number of minutes that must pass after a scale action completes before the next scale action is allowed to run.
The cooldown period prevents rapid, cascading scale actions by enforcing a wait time between consecutive autoscale operations, giving the system time to stabilize before the next scaling decision.
On a Flashcard, explain the key difference between the Azure Functions Consumption plan and the Premium plan.#
Show answer
Consumption (serverless) auto-scales and bills per execution but incurs a cold-start penalty; Premium provides pre-warmed instances that eliminate cold-start delay, adds VNet integration, and delivers higher performance at a higher cost — while still auto-scaling.
This tests applied knowledge of the two most common hosting plans. Consumption is the default serverless model billed per execution and subject to cold starts; Premium pre-warms instances to eliminate cold starts, adds VNet integration, and still auto-scales but at a higher cost.
An Azure Function on the Consumption plan sits idle for an hour, then gets its first request in a while. What's the practical consequence, and why?#
Options
Show answer
On the Consumption plan, an idle Azure Function scales down to zero instances, so the next request triggers a 'cold start' — Azure has to provision a new instance and load the runtime before it can execute, adding noticeable latency to that first response. This is the tradeoff for the Consumption plan's pay-per-execution, scale-to-zero pricing. The Premium plan removes cold starts by keeping a configurable number of pre-warmed instances always running, at a fixed baseline cost.
The Consumption plan is Azure Functions' pure serverless tier: you're billed per execution and per GB-second of memory used, and instances scale to zero when there's no traffic — which is exactly what makes it cheap for spiky or infrequent workloads. The cost of that model is 'cold start': the first request after an idle period has to provision a new instance and load the function app/runtime before it can execute, adding latency that a warm instance wouldn't have. The Premium plan exists specifically to remove this by keeping a configurable number of pre-warmed instances always ready, at a fixed baseline cost — the tradeoff every 'which Functions plan' interview question is really testing.
Which of these are genuine tradeoffs of choosing Azure App Service (PaaS) over a Virtual Machine (IaaS) for a web workload? Select all that apply.#
Options
Pick every one that applies.
Show answer
- You give up low-level OS access (no admin/root shell, can't install arbitrary system-level software) in exchange for not managing it
- You gain built-in autoscale and deployment slots without writing your own scaling/rollout automation
- Azure handles OS-level patching and runtime updates for you
PaaS trades control for managed convenience: you lose OS-level access (you give up low-level OS access (no admin/root shell, can't install arbitrary system-level software) in exchange for not managing it) but gain built-in autoscale, deployment slots, and automatic patching/runtime updates (you gain built-in autoscale and deployment slots without writing your own scaling/rollout automation, Azure handles OS-level patching and runtime updates for you) without building that automation yourself — that's the actual value proposition. The claim that you gain full control over the OS patch schedule, so you can defer security patches indefinitely is backwards: giving up OS control means you can't defer OS patches at all, since Azure controls that schedule, not you. The claim that App Service workloads are exempt from the shared responsibility model — Microsoft is solely responsible for application-level security misdescribes the shared responsibility model, which still applies to PaaS — Microsoft secures the underlying platform/OS, but the customer remains responsible for their application code, configuration, secrets, and data; no Azure service model removes the customer's side of that split.
Network Security Groups are stateful, so an NSG rule allowing inbound traffic on a port automatically allows the corresponding outbound return traffic, with no separate outbound rule needed.#
Options
Show answer
True. Azure NSGs are stateful: once an inbound rule permits traffic and a connection is established, the return traffic for that connection is automatically allowed regardless of the outbound rule set — no matching outbound-allow rule is needed. Outbound rules only govern new, outbound-initiated connections, not replies to already-permitted inbound traffic.
True. NSGs track connection state: once inbound traffic is allowed by a rule, the return traffic for that same established connection is automatically permitted, regardless of what the outbound rules say. This mirrors how stateful firewalls (and AWS security groups) behave, and it's frequently the point of confusion for someone used to a stateless model — they add an inbound-allow rule, assume they also need a matching outbound-allow rule for replies, and end up with unnecessary or overly broad outbound rules. Outbound rules only matter for genuinely new outbound-initiated connections, not for replies to already-permitted inbound traffic.
A teammate's PR connects an App Service app to a database. A security review flags it before merge. Which line is the problem?#
1| public class DbConfig {
2| private const string ConnectionString =
3| "Server=prod-sql.database.windows.net;User=admin;Password=Sup3rSecret!;";
4|
5| public SqlConnection GetConnection() {
6| return new SqlConnection(ConnectionString);
7| }
8| }Options
Show answer
Lines 2-3 — the database password is hardcoded in source, so it lands in version control and is visible to anyone with repo access, instead of being retrieved from Key Vault via a managed identity
A hardcoded connection string with a plaintext password checked into source control is a real, common security finding: it lands permanently in git history (rotating the password later doesn't remove it from history), it's visible to anyone with repo read access — often a much wider group than anyone who should know the production DB password — and it can't be rotated without a code change and redeploy. The fix is to store the secret in Azure Key Vault and have the App Service retrieve it at runtime via a managed identity (no credentials embedded anywhere) — either directly through the Key Vault SDK, or via a Key Vault reference in App Service's application settings, which resolves the secret automatically without the app code ever seeing a raw connection string in source.
Explain the relationship between a Virtual Network (VNet), a subnet, and a Network Security Group in Azure — what does each actually control?#
Show answer
A VNet is the isolated private network boundary for your Azure resources — its own IP address space, logically isolated from other VNets unless explicitly peered or connected via VPN/ExpressRoute. A subnet is a segment of that VNet's address space, used to group and isolate resources within the VNet (e.g. a subnet for web-tier VMs, another for database resources). A Network Security Group is the traffic filter: a set of allow/deny rules, evaluated by priority, that can be attached to a subnet (filtering everything in it) or directly to a network interface (filtering just that resource), or both at once. So the VNet defines the network boundary and addressing, the subnet segments it, and the NSG is what actually decides which traffic is allowed in and out of a given subnet or NIC.
This tests whether a candidate understands Azure networking as layered concerns rather than one blob of 'networking config': the VNet is addressing/isolation, the subnet is segmentation within that address space, and the NSG is the actual access-control layer. A strong answer names all three and states what each one specifically controls, since conflating an NSG with a VNet (a very common beginner mistake) leads to wrong assumptions about where security rules actually apply.
Your App Service plan is under sustained CPU pressure at peak traffic. Explain the difference between scaling up and scaling out to fix this, and which one you'd reach for first and why.#
Show answer
Scaling up (vertical scaling) means moving the App Service plan to a larger SKU — more CPU and memory per instance — without adding instances. Scaling out (horizontal scaling) means adding more instances of the same SKU behind the load balancer, which App Service can do manually or automatically via autoscale rules based on metrics like CPU percentage or queue length. For sustained load at peak traffic, I'd reach for scaling out first: it's elastic (autoscale rules add and remove instances as load changes, so you're not paying for peak capacity all the time), and it also improves availability, since traffic isn't dependent on a single instance. Scaling up has a hard ceiling (the largest SKU available) and doesn't help with availability, though it's the right move when a single request itself is resource-constrained in a way more instances can't fix — e.g. a memory-hungry per-request workload that a bigger instance handles better than distributing across more small ones.
The mechanism matters more than the vocabulary: scaling up changes the resources of a single instance (bounded by the largest SKU, no availability benefit); scaling out adds instances (elastic via autoscale, and improves availability since load isn't on one box). A senior-leaning answer states the default preference for scaling out under variable/peak load and names the tradeoff — cost efficiency and elasticity versus scaling up's simplicity and its fit for genuinely per-request-resource-bound workloads.
Order the steps of safely deploying an infrastructure change with a Bicep template through the Azure CLI.#
Put these in order
Show answer
A safe Bicep deployment flow is: author the .bicep file, run az deployment group create --what-if to preview exactly which resources will be created, changed, or deleted, review that output against the intended change, then run the real az deployment group create to apply it, and finally verify the deployed resources match expectations. The what-if preview step is what catches an accidental resource deletion or unintended change before it reaches real infrastructure, rather than after.
The what-if step is what makes a declarative IaC deployment safe to run against real infrastructure: because Resource Manager reconciles the template against current state rather than running a blind script, --what-if can show exactly what will change — including deletions, which are easy to introduce by accident (e.g. removing a resource block) and expensive to discover after the fact. Skipping straight from authoring to az deployment group create means the first time you see the actual diff is after it's already applied. Verifying afterward closes the loop — confirming the deployed state matches what what-if predicted, catching any drift or deployment-time failures the CLI's exit code alone might not surface clearly.
A teammate's Bicep template provisions a storage container for user-uploaded profile photos. A security review flags the container's access level. Which line is the issue?#
1| resource storageAccount 'Microsoft.Storage/storageAccounts@2023-01-01' = {
2| name: 'useruploadsstorage'
3| properties: {
4| allowBlobPublicAccess: true
5| }
6| }
7| resource uploadsContainer 'Microsoft.Storage/storageAccounts/blobServices/containers@2023-01-01' = {
8| parent: storageAccount
9| name: 'profile-photos'
10| properties: {
11| publicAccess: 'Container'
12| }
13| }Options
Show answer
Line 11 — publicAccess: 'Container' lets anyone on the internet list and read every blob in the container anonymously, with no authentication at all
publicAccess: 'Container' sets anonymous read access at the container level — anyone with the URL (or who enumerates it) can list and read every blob inside with no authentication, which for user-uploaded photos likely means personal data exposed to the entire internet. This exact misconfiguration (an accidentally-public storage container) is one of the most common real-world cloud data exposure incidents. allowBlobPublicAccess: true on the storage account (line 4) only permits public access to be configured at the container/blob level — it doesn't grant it by itself, but it's what makes line 11's setting possible, so tightening it to false at the account level (when public access genuinely isn't needed anywhere in that account) is defense in depth. The correct fix here is publicAccess: 'None' and serving photos through authenticated access — a SAS token, or a CDN/App Service layer that enforces auth — instead of a bare public container.
In the Azure Functions isolated worker model, what protocol does the Functions host use to communicate with the language worker process, and what is the key benefit of this process isolation?#
Show answer
The host communicates with the isolated language worker over gRPC using protobuf-serialized messages. Because host and worker run in separate OS processes, the worker can target a .NET runtime version independent of the host's bundled runtime, enabling side-by-side versioning. This process isolation is also why the isolated worker model is the only supported hosting model for .NET 8 and later on Functions v4 (the in-process model is retired for .NET 8+).
In the in-process model the user code loaded into the same process as the Functions host, tightly coupling the app's .NET version to the host's runtime. The isolated worker model (GA in .NET 5, required for .NET 8+) moves user code into a separate process; the host and worker exchange binding metadata and invocation requests over gRPC channels with protobuf messages. This decouples runtime versions, improves resilience (a worker crash does not crash the host), and aligns .NET Functions with the cross-language worker architecture already used by Node, Python, and Java.
An Azure ephemeral OS disk is created directly on the local node-attached storage of the VM host rather than in Azure Storage. This eliminates storage-account costs and reduces boot/re-image time, but it introduces placement constraints.#
Show answer
- The VM size must support ephemeral OS disks — not all Azure VM sizes support them. 2. The VM size's cache capacity (or temporary disk capacity, depending on the VM family) must be at least as large as the requested OS disk size. Azure checks both conditions during deployment; if the cache/temp storage is smaller than the OS disk, or the VM size does not support ephemeral disks, the deployment fails.
Ephemeral OS disks are stored on the local SSD attached to the physical host running the VM, so their size is bounded by that host-local storage. Two constraints gate their use: (1) the VM size must be in the list of sizes that support ephemeral OS disks, and (2) the cache size (or temp-disk size for VM families that map ephemeral storage to the temp disk instead of the cache) must be greater than or equal to the OS disk size specified in the VM profile. If either constraint is violated, Azure rejects the deployment. This is a depth question because it tests understanding of the host-local storage model rather than the default Azure Storage-backed model.
During an Azure App Service deployment slot swap, application settings and connection strings that are marked as 'slot setting' (sticky) are swapped to the opposite slot along with the app content, while non-sticky configuration settings remain attached to their original slot.#
Options
Show answer
False. During an Azure App Service slot swap, non-sticky settings and app content are swapped between the two slots, while settings marked as 'slot setting' (sticky) remain attached to their original slot. This ensures slot-specific configuration such as production connection strings stays bound to its slot.
The described behavior is the inverse of how slot swaps actually work. During a swap, the app content and all non-sticky configuration settings (application settings and connection strings not marked as 'slot setting') are swapped between the two slots. Settings that ARE marked as 'slot setting' (sticky) remain attached to their original slot and are not swapped. This design allows environment-specific configuration (e.g., a production database connection string) to stay bound to the production slot while code and shared settings move freely between slots during a swap.
On the Azure Functions Consumption plan, a cold start occurs when the first request arrives and no warm instances are available. Arrange the following five steps in the exact chronological order they occur during that cold start.#
Put these in order
Show answer
The cold-start sequence on the Azure Functions Consumption plan is: (1) the request arrives at the front end with no warm instances available, (2) the scale controller allocates a new compute instance, (3) the Azure Functions host runtime starts on that instance, (4) the language worker initializes and loads the function code, and (5) the function finally executes and returns. The first four steps — all preceding actual code execution — are what produce the latency gap between cold starts and warm invocations.
A cold start begins when a request hits the front end and there is no warm instance to serve it. The Functions scale controller — the external monitoring service for the Consumption/Elastic Premium plans — detects this and provisions a new compute instance. Once the instance is allocated, the Azure Functions host (the runtime) starts on it. The host then spins up the appropriate language worker process (e.g., dotnet, node, python) which loads and JIT/interprets the function application's code. Only after all of that is the function method actually invoked and its response returned to the caller. The four-step preamble before execution is what makes cold-start latency significantly higher than warm-invocation latency.
Consider a single execution of an Azure Function that has one trigger, one or more input bindings, and one or more output bindings. Arrange the five steps below in the exact order the Azure Functions runtime processes them during that execution.#
Put these in order
Show answer
During a single Azure Function execution the runtime processes bindings in this order: (1) the trigger fires and binding data is extracted, (2) input bindings are resolved and their data is fetched, (3) the function method is invoked with trigger and input data, (4) the method executes and returns, and (5) output bindings are processed, writing results to their destinations. Output bindings execute only after a successful return, which is why an unhandled exception prevents them from firing.
The Functions host binding pipeline follows a strict order. First, the trigger fires — whether it is an HTTP request, a timer tick, a queue message, or an event — and the host extracts the trigger payload and associated binding data. Second, the host resolves any input bindings (e.g., Cosmos DB, Blob storage lookups) by fetching their data from the respective sources before the function method is called, so the data is available as method parameters. Third, the function method is invoked with both the trigger data and the resolved input binding parameters. Fourth, the function method body executes and returns. Fifth, and only after the method returns, the host processes output bindings — writing the function's return value or out parameters to destinations such as queues, tables, or HTTP responses. Output bindings never fire if the function throws an unhandled exception, confirming they are post-execution.
Related interview questions
Job market
See azure salaries and hiring demand from live job postings.
The other 80 questions
This page shows 25 and marks what you pick. That's as far as a page can go. A free account opens the other 80 and keeps every answer. What you miss comes back until it's right: after a day, then at longer gaps.
Free · the whole bank · 100 marked answers per 30 days · written feedback on the paid plan