Section 5 of 6

Azure App Service

🎯 What You'll Learn

  • What is Azure App Service
  • Creating App Service
  • Deploying from Visual Studio
  • Deploying from CLI
  • Configuration settings

What is Azure App Service?

Azure App Service is a fully managed platform for hosting web applications, REST APIs, and mobile backends with built-in auto-scaling and load balancing.

Create App Service (Azure Portal)

  1. Go to Azure Portal
  2. Click Create a resource → Web App
  3. Fill in details:
    • Name: inventtrack
    • Runtime stack: .NET 8
    • Region: Choose nearest
    • Pricing tier: Choose plan
  4. Click Review + create

Deploy from Visual Studio

  1. Right-click project → Publish
  2. Select Azure → Next
  3. Select Azure App Service (Windows) → Next
  4. Sign in to Azure
  5. Select your App Service
  6. Click Finish
  7. Click Publish

Deploy from Azure CLI

Install Azure CLI Bash
# Windows
winget install Microsoft.AzureCLI

# macOS
brew install azure-cli

# Linux
curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash
Login and Deploy Bash
# Login
az login

# Create resource group
az group create --name InvenTrackRG --location eastus

# Create App Service plan
az appservice plan create --name InvenTrackPlan --resource-group InvenTrackRG --sku B1

# Create web app
az webapp create --name inventtrack --resource-group InvenTrackRG --plan InvenTrackPlan --runtime "DOTNET|8.0"

# Deploy
az webapp deployment source config-zip --resource-group InvenTrackRG --name inventtrack --src ./publish.zip

Configuration Settings

Application Settings

Azure Portal Text
App Service → Configuration → Application settings

Add:
- ASPNETCORE_ENVIRONMENT = Production
- ConnectionStrings__DefaultConnection = [connection string]
Azure CLI Bash
az webapp config appsettings set --resource-group InvenTrackRG --name inventtrack --settings ASPNETCORE_ENVIRONMENT=Production

Connection Strings

Azure CLI Bash
az webapp config connection-string set --resource-group InvenTrackRG --name inventtrack --connection-string-type SQLAzure --settings DefaultConnection="Server=..."

Deployment Slots

Use slots for staging before production.

Create Staging Slot Bash
az webapp deployment slot create --name inventtrack --resource-group InvenTrackRG --slot staging
Swap Slots Bash
az webapp deployment slot swap --name inventtrack --resource-group InvenTrackRG --slot staging --target-slot production

Monitoring

  • Application Insights: Performance monitoring
  • Log Stream: Real-time logs
  • Metrics: CPU, memory, requests
  • Alerts: Notifications for issues

Key Takeaways

  • Azure App Service: Fully managed hosting
  • Visual Studio: Right-click publish
  • Azure CLI: Command-line deployment
  • Configuration: Application settings and connection strings
  • Deployment slots: Staging before production
  • Monitoring: Application Insights