Example Projects

Ready-to-use project configurations for popular frameworks. Each includes azure.yaml setup and Copilot debugging tips.

🟢

Node.js Express API

A REST API with Express.js, featuring health endpoints and structured logging.

azure.yaml Configuration

name: nodejs-api
services:
api:
language: js
host: containerapp
project: ./src
ports:
- "3000"
healthCheck:
endpoint: /health

Project Structure

src/
package.json
index.js
routes/
health.js
users.js
middleware/
logging.js
azure.yaml
🤖

Copilot Debugging Tip

Ask Copilot to analyze startup logs if the Express server fails to bind to the port.

Try these prompts:

  • Check if the API service is healthy and show any errors in the logs
  • Why is my Express app returning 500 errors? Check the logs for stack traces
  • Show me the last 50 lines of logs from the api service

🐍

Python FastAPI

A modern Python API with FastAPI, automatic OpenAPI docs, and async support.

azure.yaml Configuration

name: python-api
services:
backend:
language: python
host: containerapp
project: ./api
ports:
- "8000"
healthCheck:
endpoint: /health

Project Structure

api/
pyproject.toml
main.py
routers/
health.py
items.py
models/
item.py
azure.yaml
🤖

Copilot Debugging Tip

Use Copilot to debug uvicorn reload issues or import errors by checking startup logs.

Try these prompts:

  • Check the health of my FastAPI backend and show any import errors
  • My Python service is crashing on startup. What does the traceback show?
  • Show me all WARNING and ERROR level logs from the backend

⚛️

Fullstack React + Node

A complete fullstack app with React frontend, Node.js API, and PostgreSQL.

azure.yaml Configuration

name: fullstack-app
services:
web:
language: js
host: containerapp
project: ./frontend
ports:
- "5173"
api:
language: js
host: containerapp
project: ./backend
ports:
- "3000"
healthCheck:
endpoint: /api/health
resources:
database:
type: postgres.database

Project Structure

frontend/
package.json
src/
App.tsx
api/
backend/
package.json
src/
index.ts
routes/
db/
azure.yaml
🤖

Copilot Debugging Tip

When debugging fullstack apps, check both services. CORS errors often appear in browser but the root cause is in the API.

Try these prompts:

  • Check the health of both web and api services
  • My frontend shows network errors. Are there any CORS issues in the api logs?
  • Show me the logs from api service filtered by ERROR level
  • Is the database connection working? Check for connection errors in the logs

🐳

API with Container Services

A Node.js API with PostgreSQL database and Redis cache running as container services.

azure.yaml Configuration

name: api-with-containers
services:
api:
language: js
project: ./src
ports:
- "3000"
env:
DATABASE_URL: postgresql://postgres:postgres@localhost:5432/app
REDIS_URL: redis://localhost:6379
healthCheck:
endpoint: /health
postgres:
image: postgres:16
ports:
- "5432:5432"
env:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: app
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"]
interval: 10s
redis:
image: redis:7-alpine
ports:
- "6379:6379"
healthcheck:
test: ["CMD", "redis-cli", "ping"]

Project Structure

src/
package.json
index.js
routes/
health.js
users.js
db/
connection.js
cache/
redis.js
azure.yaml
🤖

Copilot Debugging Tip

Container services start before your app. If you see connection errors, check if the database container is healthy first.

Try these prompts:

  • Check if the postgres container is running and healthy
  • Show me the postgres logs to see if the database is ready
  • My API can't connect to Redis. Is the redis container healthy?
  • What is the connection string I should use for PostgreSQL?

📘 azure.yaml Reference

Learn about all configuration options - services, health checks, logging, testing, and more.

View complete reference →

🚀 Try the Demo

Get hands-on with a working project that demonstrates all azd-app features.

Terminal window
azd init -t jongio/azd-app-demo
Follow Quick Start guide →

Ready to debug with AI? Set up the MCP server for Copilot integration.

🤖 Set up MCP Server