Transition to Azure Functions V2 on Azure Container Apps: Migration Guide and Feature Overview
DeepGanguly explains the migration from Azure Functions V1 to V2 on Azure Container Apps, highlighting technical improvements, resource model benefits, and a step-by-step guide for deploying serverless functions in container environments.
Transition to Azure Functions V2 on Azure Container Apps
Introduction
Azure Functions on Azure Container Apps now support two deployment models: V1 (Legacy Microsoft.Web RP Model) and the recommended V2 (Microsoft.App RP Model). V2 offers a native, feature-rich experience for hosting serverless workloads as containers on Azure.
V1 Limitations
Troubleshooting Restrictions
- No direct container access or real-time log viewing.
- Console and live output are restricted; diagnostics are indirect via Log Analytics and Application Insights.
Portal and Management Experience
- Missing features: multi-revision, easy auth, health probes, custom domains.
DAPR Integration Challenges
- .NET isolated functions may encounter compatibility issues with DAPR during builds due to dependency conflicts.
Functions V2: Improved Model
Functions V2 leverages the Microsoft.App RP for direct container app creation with kind=functionapp
:
- Resource consolidation: Eliminates proxy Function App resources for simplified management.
- Native features: Multi-revision traffic splitting, seamless authentication, private endpoints, metrics, alerting, CI/CD integrations (Azure Pipelines, GitHub Actions), health probes, custom domains, secrets management, and sidecar containers.
- No code changes needed: Existing function container images work with V2.
Feature Enhancements
- Multi-revision management
- Easy Auth
- Private Endpoint
- Metrics & Alerting
- Azure Pipelines and GitHub Actions
- Health Probes
- Custom Domains & Certificates
- Scale Settings
- Secrets Management
- Sidecar Containers
Unsupported Legacy Deployment Approach
Deploying function images as plain container apps (without kind=functionapp) via Microsoft.App RP is no longer advised:
- Not officially supported.
- No autoscale; scaling must be configured manually.
- Lacks key V2 features down the roadmap (e.g., listing functions, function keys).
Recommendation: Migrate to V2 for maximum native Azure Container Apps support.
Migration Checklist: V1 to V2
1. Preparation
- Identify if currently running Functions V1 (Web RP) in Azure Container Apps.
- Retrieve your parent function container image.
- Record all configurations: environment variables, secrets, storage connections, networking settings.
- Review quotas (memory, CPU, instance limits) in Azure Container Apps; adjust as needed.
2. Create V2 Container App
- In Azure Portal, select “Optimize for Functions app” or use CLI (
az functionapp create
) to deploy your image. - No code rebuild required — reuse your function container image.
- Apply all configuration/environment variables from your previous deployment.
- For detailed instructions, visit Functions on Container Apps V2 documentation.
3. Validation
- Test function triggers (HTTP, Event Hub, Service Bus, etc.).
- Validate all integrations with databases, storage, and other Azure services.
4. DNS and Custom Domains
- V2 app has a new DNS name.
- Update DNS records and rebinding SSL/TLS certificates.
- Notify stakeholders about DNS and endpoint changes; verify traffic routing and endpoints.
5. Cutover
- Switch production traffic to V2.
- Monitor closely for errors or scaling issues.
- Communicate with users and team about the transition.
6. Cleanup
- Remove old V1 deployment.
- Update project/team documentation with details and lessons learned.
Feedback & Support
- Submit feedback/issues at the Azure Container Apps GitHub repo.
- Technical questions via Azure Support Portal.
- Community guidance in GitHub Discussions and Azure Community forums.
- For enterprise needs, coordinate with your Microsoft account team.
Updated: Oct 14, 2025
Author
DeepGanguly
Follow the Apps on Azure Blog for more updates.
This post appeared first on “Microsoft Tech Community”. Read the entire article here