Study Guide – Exam AZ-204: Developing Solutions for Microsoft Azure


This time I’ve decided to create a study guide to help you be prepared and successfully clear out your AZ-204 : Developing Solutions for Microsoft Azure Exam.

First of all, detailed information about the exam can be found at the official exam page:


From there, let’s take a quick look to the Objective Domains evaluated on this exam:

The content of this exam was updated on April 19, 2022. Please download the exam skills outline below to see what changed.
Develop Azure compute solutions (25-30%)
Develop for Azure storage (15-20%)
Implement Azure security (20-25%)
Monitor, troubleshoot, and optimize Azure solutions (15-20%)
Connect to and consume Azure services and third-party services (15-20%)

Please find below, the additional resources and exercises that I usually share during class with you.

I’ve decided to organize these by Module number, following the order from the Microsoft Official Course.

Module 1: Creating Azure App Service Web Apps

Cloud Service Models:
How I choose which services to use in Azure? 

Shared responsibility in the cloud

Choose an Azure compute service for your application

Working with Azure App Service:

Tutorial: Authenticate and authorize users end-to-end in Azure App Service

Scale up an app in Azure App Service


Set up staging environments in Azure App Service

Routing traffic to your Azure Web Apps using Traffic Manager:
Traffic Manager routing methods

Module 2: Implement Azure functions

Hosting Models:

Azure Functions hosting options

Using Custom Handlers to expand capabilities to other languages

Azure Functions custom handlers

Develop and test Azure Functions Locally
Code and test Azure Functions locally

Work with Azure Functions Core Tools

Azure Durable Functions
What are Durable Functions?

Module 3: Develop solutions that use blob storage

Kinds of storage accounts and replication models

Storage account overview

Pricing and Durability options

Azure Storage Overview pricing

Replication models and Disaster Recovery

Disaster recovery and storage account failover

Use geo-redundancy to design highly available applications

BlobRequestOptions.LocationMode Property

Validate the Last Sync Time attribute

Check the Last Sync Time property for a storage account

Access Tiers

Hot, Cool, and Archive access tiers for blob data

Optimize costs by automatically managing the data lifecycle

Configuring Immutable storage

Set and manage immutability policies for Blob storage

Access Keys

Manage storage account access keys

Learning Path: Connect an app to Azure Storage

Use the emulator included in Storage Explorer to develop and test solutions locally

Azure Storage Explorer

Tutorial: Build a highly available application with Blob storage

Module 4: Develop solutions that use Cosmos DB storage

Common Azure Cosmos DB use cases

Azure Cosmos DB Consistency levels and APIs

Consistency levels in Azure Cosmos DB

Apache Cassandra and Azure Cosmos DB Cassandra API consistency levels

Manage consistency levels in Azure Cosmos DB


Stored Procedures

Stored procedures, triggers, and user-defined functions

How to write stored procedures, triggers, and user-defined functions in Azure Cosmos DB


Copy data to or from Azure Cosmos DB’s API for MongoDB using Azure Data Factory or Synapse Analytics

Tutorial: Migrate MongoDB to Azure Cosmos DB’s API for MongoDB offline using MongoDB native tools

Service Quotas and Partitioning

Request Units in Azure Cosmos DB

Azure Cosmos DB service quotas

Partitioning and horizontal scaling in Azure Cosmos DB

Create a synthetic partition key

Introduction to provisioned throughput in Azure Cosmos DB

Design Patterns

Sharding pattern

JFK Files project based on CosmosDB

Use the Cosmos DB emulator to develop and test locally

Install and use the Azure Cosmos DB Emulator for local development and testing

Module 5: Implement IaaS solutions

VM Families and Virtual Machines compared to Containers

Containers vs. virtual machines

Virtual Machine series

Build a containerized web application with Docker

High Availably Options and Operations

Availability options for virtual machines in Azure

Manage the availability of Linux virtual machines

ARM Templates – Infrastructure as a Code

Using linked and nested templates when deploying Azure resources

Project Bicep – an ARM DSL

Bicep documentation

Working with Docker

Use Docker Tools in Visual Studio on Windows

Quickstart: Docker in Visual Studio

Module 6: Implement user authentication and authorization

Microsoft Identity Platform

Microsoft identity platform documentation

Microsoft identity platform and OpenID Connect protocol

Centralize application management with Azure AD

Configurable token lifetimes in the Microsoft identity platform (preview)

Authentication flows and application scenarios

Application types for the Microsoft identity platform

Azure AD App Registration and OAuth

What is application management?

Quickstart: Add an application to your Azure Active Directory (Azure AD) tenant

Quickstart: Add an enterprise application

Secure your application by using OpenID Connect and Azure AD

Tutorial: Add sign-in to Microsoft to an ASP.NET web app

Quickstart: Set up OIDC-based single sign-on (SSO) for an application in your Azure Active Directory (Azure AD) tenant

Authentication flow support in MSAL

Microsoft identity platform and implicit grant flow

OAuth Grant Types

JWT Decoder

Azure AD B2C

Solutions and Training for Azure Active Directory B2C

Microsoft Graph

Microsoft Graph REST API v1.0 reference

Microsoft Graph Explorer

Best Practices

App Management Best Practices

Module 7: Implement secure cloud solutions

Azure Key Vault

Azure Key Vault developer’s guide

Authentication in Azure Key Vault

Azure Key Vault libraries for .NET

Manage secrets in your server apps with Azure Key Vault

Exercise – Access secrets stored in Azure Key Vault

Azure App Configuration

Azure App Configuration documentation

Quickstart: Create a Java Spring app with Azure App Configuration

Use labels to enable configurations for different environments

Quickstart: Add feature flags to an ASP.NET Core app

Azure App Configuration best practices

Managed Identities

Azure AD-managed identities for Azure resources documentation

Azure services that can use managed identities to access other services

Tutorial: Access Azure services from a .NET web app

Tutorial: Use a managed identity to connect Key Vault to an Azure web app in .NET

Storage Access Policies

Create a stored access policy with .NET

Create a user delegation SAS

Design Patterns

External Configuration Store pattern

Valet Key pattern

Module 8: Implement API Management

Create and Manage Azure APIM

Quickstart: Create a new Azure API Management service instance by using the Azure portal

API Management policies

API Management authentication policies

Protect a web API backend in Azure API Management by using OAuth 2.0 authorization with Azure AD

Azure security baseline for API Management

Module 9: Develop event-based solutions

Azure Event Grid

What is Azure Event Grid?

Understand event domains for managing Event Grid topics

Quickstart: Route custom events to web endpoint with Azure CLI and Event Grid

Azure Event Hub

Azure Event Hubs — A big data streaming platform and event ingestion service

Azure Event Hubs quotas and limits

Kafka : Ordering Guarantees

Send events to and receive events from Azure Event Hubs – .NET (Azure.Messaging.EventHubs)

Azure Notification Hubs and Migration from App center Push

What is Azure Notification Hubs?

Push Migration Guide

Reference Architectures

Preventing Rhino Poaching With Microsoft Azure

Event-based cloud automation

Build web and mobile applications

Serverless event processing

Module 10: Develop message-based solutions

Queues inside Azure Storage Accounts vs Queues inside Service Bus

Choose between Azure messaging services – Event Grid, Event Hubs, and Service Bus

Storage queues and Service Bus queues – compared and contrasted

Reference Architecture

Enterprise integration using queues and events

Design Patterns

Queue-Based Load Leveling pattern

Module 11: Monitor and optimize Azure solutions

App Insights Codeless Approach and Smart Detection

What is auto-instrumentation or codeless attach – Azure Monitor Application Insights?

Smart Detection in Application Insights

Web Application monitoring on Azure

Kusto Query Language


Get started with log queries in Azure Monitor

Azure Monitor ITSM Connector

IT Service Management Connector

Module 12: Integrate caching and content delivery within solutions

Azure Cache for  Redis

About Azure Cache for Redis

High availability for Azure Cache for Redis

Best practices for Azure Cache for Redis

Azure CDN

Azure CDN Documentation

Quickstart: Create an Azure CDN profile and endpoint

What are the comparisons between Azure CDN product features?

Tutorial: Configure HTTPS on an Azure CDN custom domain

Control Azure CDN caching behavior with caching rules

Design Pattern

Cache-Aside pattern

Additional Resources

Get started guide for Azure developers

The Developer’s Guide to Azure

Azure for .NET developers

Microsoft Learn-a-thon

Developer Digital Meetup Tour

In terms of exam preparation, take a look at the following resources:

Exam duration and question types

The recently added Exam demo at:

AZ-204 Collection on MS Learn:

Thanks to all of you who helped me to gather and build this list of resources.

I hope you find them helpful.

Keep up that Azure Learning Journey!


Related Post

Leave a Reply

Your email address will not be published.