MSDN Documentation

Microsoft Developer Network

Configuring Azure App Services

This document provides comprehensive guidance on configuring your Azure App Services to meet your application's specific needs. Effective configuration is crucial for performance, security, scalability, and reliability.

Core Configuration Settings

Azure App Services offer a rich set of configuration options accessible through the Azure portal, Azure CLI, or PowerShell. Here are some of the most important settings:

General Settings

  • Runtime Stack (e.g., .NET, Node.js, Python, Java)
  • Platform (32-bit/64-bit)
  • Web Sockets
  • Always On
  • HTTP/2

Deployment Slots

  • Staging environments for testing
  • Zero-downtime deployments
  • Traffic shifting

Authentication & Authorization

  • Managed Identities
  • Azure AD integration
  • Easy Auth (App Service Authentication)

Networking

  • VNet Integration
  • Private Endpoints
  • Access Restrictions
  • Custom Domains & SSL Certificates

Monitoring & Diagnostics

  • Application Insights integration
  • Log streaming
  • Deployment center
  • Health checks

Scale Out & Scale Up

  • Manual scaling
  • Auto-scaling rules
  • Choosing the right App Service Plan tier

Runtime Configuration Examples

Here are examples of how to configure common runtime settings:

Setting Environment Variables

Environment variables are crucial for managing application settings without hardcoding them. You can set them in the Azure portal under "Configuration" > "Application settings".

# Example using Azure CLI to set an environment variable
az webapp config appsettings set --resource-group MyResourceGroup --name MyWebApp --settings MY_API_KEY=your_secret_key ANOTHER_SETTING=value

Configuring .NET Core Application Settings

For .NET Core applications, App Service automatically maps application settings to your application's configuration provider.

// Accessing settings in C#
var connectionString = Environment.GetEnvironmentVariable("SQL_CONNECTION_STRING");

Configuring Node.js Application Settings

Node.js applications can access environment variables directly.

// Accessing settings in Node.js
const apiKey = process.env.MY_API_KEY;

Advanced Configuration Topics

Deployment Slots for Zero-Downtime Deployments

Deployment slots allow you to deploy your application to a staging environment before swapping it into production. This minimizes downtime and allows for thorough testing.

Tip: Always perform a "swap with preview" to verify functionality before completing the swap.

Networking and Security

Securing your App Service is paramount. Consider implementing VNet integration for hybrid connections and access restrictions to limit ingress traffic to trusted IP addresses or VNet subnets.

Performance Tuning

Monitor your application's performance using Application Insights and adjust your App Service Plan tier (scale up) or the number of instances (scale out) as needed. Enable "Always On" for non-serverless applications to keep them warm.

Key Takeaways

  • Understand your application's dependencies and resource requirements.
  • Leverage deployment slots for safe and seamless deployments.
  • Prioritize security by configuring authentication, authorization, and network restrictions.
  • Monitor performance and scale your App Service effectively.