Blog Post

Apps on Azure Blog
4 MIN READ

Transition to Azure Functions V2 on Azure Container Apps

DeepGanguly's avatar
DeepGanguly
Icon for Microsoft rankMicrosoft
Oct 14, 2025

Introduction

Azure Functions on Azure Container Apps lets you run serverless functions in a flexible, scalable container environment. As the platform evolves, there are two mechanisms to deploy Images with Function Programming Model as Azure Container apps:

  • Functions V1 (Legacy Microsoft.Web RP Model)
  • Functions V2 (New Microsoft.App RP Model)

V2 is latest and recommended approach to host Functions on Azure Container Apps. In this article, we will learn about differences in different approaches and how you can transition to V2 model.

V1 Limitations (Legacy approach)

Function App Deployments has limited functionality and experience therefore transition to V2 is encouraged. Below are the limitations of V1

Feature limitations 

  • Lacks support for native container apps features such as multi revision, easy auth, health probes, custom domain, scale settings, container app secrets, side car containers etc. 

Troubleshooting Limitations

  • Direct container access and real-time log viewing are not supported.
  • Console access and live log output are restricted due to system-generated container configurations.
  • Low-level diagnostics are available via Log Analytics, while application-level logs can be accessed through Application Insights.

DAPR Integration Challenges

  • Compatibility issues with DAPR with .NET isolated functions, particularly during build processes due to dependency conflicts.

Functions V2 (Improved and Recommended)

Deployment with -–kind=functionapp using Microsoft.App RP reflects the newer approach of deployment (Function on Container Apps V2) 

Simplified Resource Management internally: Instead of relying on proxy Function App (as in the V1 model), V2 provisions a native Azure Container App resource directly. This shift eliminates the need to dual-resource management previously involving both the proxy and the container app, thereby simplifying operations by consolidating everything into a single, standalone resource.

Feature rich and fully native: As a result, V2 brings the native features of Azure Container Apps for the images deployed with Azure functions programming model, including

Since V2 contains significant upgrade on experience and functionality, it’s recommended to transition to V2 from existing V1 deployments.

Legacy Direct Function image deployment approach 

Some customers continue to deploy Function images as standard container apps (without kind=functionapp) using the Microsoft.App resource provider. While this method enables access to native Container Apps features, it comes with key limitations: 

  • Not officially supported.
  • No auto-scale rules — manual configuration required
  • No access to new V2 capabilities in roadmap (e.g., List Functions, Function Keys, Invocation Count) 

Recommendation: Transition to Functions on Container Apps V2, which offers a significantly improved experience and enhanced functionality. 

Checklist for the transitioning to Functions V2 on Azure Container Apps 

Below is the transition guide

1. Preparation

  • Identify your current deployment: Confirm you are running Functions V1 (Web RP) in Azure Container Apps
  • Locate your container image: Ensure you have access to the container image used in your V1 deployment.
  • Document configuration: Record all environment variables, secrets, storage account connections, and networking settings from your existing app.
  • Check Azure Container Apps environment quotas: Review memory, CPU, and instance limits for your Azure Container Apps environment. Request quota increases if needed.

2. Create the New V2 App

  • Create a new Container App with kind=functionapp:
    • Use the Azure Portal (“Optimize for Functions app” option)
    • Or use the CLI (az functionapp create) and specify your existing container image.
    • See detailed guide for creating Functions on Container apps V2 

 

  • No code changes required: You can use the same container image you used for V1-no need to modify your Functions code or rebuild your image.
  • Replicate configuration: Apply all environment variables, secrets, and settings from your previous deployment.

3. Validation

  • Test function triggers: Confirm all triggers (HTTP, Event Hub, Service Bus, etc.) work as expected.
  • Test all integrations: Validate connections to databases, storage, and other Azure services.

4. DNS and Custom Domain Updates (optional)

  • Review DNS names: The new V2 app will have a different default DNS name than your v1 app.
  • Update custom domains:
    • If you use a custom domain (e.g., api.yourcompany.com), update your DNS records (CNAME or A record) to point to the new V2 app’s endpoint after validation.
    • Re-bind or update SSL/TLS certificates as needed.
  • Notify Users and Stakeholders: Inform anyone who accesses the app directly about the DNS or endpoint change.
  • Test endpoint: Ensure the new DNS or custom domain correctly routes traffic to the V2 app.

5. Cutover

  • Switch production traffic: Once validated, update DNS, endpoints, or routing to direct traffic to the new V2 app.
  • Monitor for issues: Closely monitor the new deployment for errors, latency, or scaling anomalies.
  • Communicate with stakeholders: Notify your team and users about the transition and any expected changes.

6. Cleanup

  • Remove the old V1 app: Delete the previous V1 deployment to avoid duplication and unnecessary costs.
  • Update documentation: Record the new deployment details, configuration, and any lessons learned

Feedback and Support

We’re continuously improving Functions on Container Apps V2 and welcome your input. 

  • Share Feedback: Let us know what’s working well and what could be better.
  • Submit an issue or a feature request to the Azure Container Apps GitHub repo
  • Support Channels 

Your feedback helps shape the future of serverless on containers—thank you for being part of the journey! 

Updated Oct 14, 2025
Version 2.0