Skip to content

Commit 56aa3f1

Browse files
Merge pull request #308667 from MicrosoftDocs/main
Auto Publish – main to live - 2025-11-21 23:00 UTC
2 parents 5705f67 + e0eba1d commit 56aa3f1

41 files changed

Lines changed: 762 additions & 577 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

articles/api-management/send-one-way-request-policy.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ The `send-one-way-request` policy sends the provided request to the specified UR
2828
<set-header>...</set-header>
2929
<set-body>...</set-body>
3030
<authentication-certificate thumbprint="thumbprint" />
31+
<authentication-managed-identity resource="ResourceID"/>
3132
</send-one-way-request>
3233
```
3334

@@ -48,6 +49,7 @@ The `send-one-way-request` policy sends the provided request to the specified UR
4849
| [set-header](set-header-policy.md) | Sets a header in the request. Use multiple `set-header` elements for multiple request headers. | No |
4950
| [set-body](set-body-policy.md) | Sets the body of the request. | No |
5051
| authentication-certificate | [Certificate to use for client authentication](authentication-certificate-policy.md), specified in a `thumbprint` attribute. | No |
52+
| authentication-managed-identity | [Authenticate with managed identity](authentication-managed-identity-policy.md) to resource specified in `resource` attribute. | No |
5153
| [proxy](proxy-policy.md) | Routes request via HTTP proxy. | No |
5254

5355

articles/api-management/send-request-policy.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ The `send-request` policy sends the provided request to the specified URL, waiti
2929
<set-header>...</set-header>
3030
<set-body>...</set-body>
3131
<authentication-certificate thumbprint="thumbprint" />
32+
<authentication-managed-identity resource="ResourceID"/>
3233
<proxy>...</proxy>
3334
</send-request>
3435
```
@@ -51,6 +52,7 @@ The `send-request` policy sends the provided request to the specified URL, waiti
5152
| [set-header](set-header-policy.md) | Sets a header in the request. Use multiple `set-header` elements for multiple request headers. | No |
5253
| [set-body](set-body-policy.md) | Sets the body of the request. | No |
5354
| authentication-certificate | [Certificate to use for client authentication](authentication-certificate-policy.md), specified in a `thumbprint` attribute. | No |
55+
| authentication-managed-identity | [Authenticate with managed identity](authentication-managed-identity-policy.md) to resource specified in `resource` attribute. | No |
5456
| [proxy](proxy-policy.md) | Routes request via HTTP proxy. | No |
5557

5658
## Usage

articles/azure-vmware/azure-vmware-solution-nsx-scale-and-performance-recommendations-for-vmware-hcx.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -92,9 +92,11 @@ Mitigation options:
9292

9393
* More details in the next section with an example of HCX migration use case.
9494

95-
3. Edge Scale-OUT: If customer has large number of Hosts in the SDDC and workloads, NSX Edge Scale-OUT (from two Edges to four Edges) could be an option to add additional NSX Edge data path resources.
95+
3. Edge Scale-OUT: If you have a large number of Hosts in the SDDC and workloads, NSX Edge Scale-OUT (from two Edges to four Edges) could be an option to add additional NSX Edge data path resources.
9696

97-
* However, NSX Edge Scale-OUT is effective only with a change in the NSX default Tier-1 Gateway topology to distribute the traffic optimally across all four Edge VMs. More details in the next section with an example of HCX migration use case.
97+
* Edge Scale-OUT is currently not supported on Azure VMware Solution Stretched Cluster private cloud.
98+
99+
* NSX Edge Scale-OUT is effective only with a change in the NSX default Tier-1 Gateway topology to distribute the traffic optimally across all four Edge VMs. More details in the next section with an example of HCX migration use case.
98100

99101
### Default and configuration recommendations to the NSX Edge data path performance
100102

articles/bastion/TOC.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
href: bastion-overview.md
77
- name: What's new in Bastion?
88
href: whats-new.md
9+
- name: Cost optimization principles
10+
href: cost-optimization.md
911
- name: Quickstarts & Tutorials
1012
expanded: true
1113
items:

articles/bastion/cost-optimization.md

Lines changed: 107 additions & 0 deletions
Large diffs are not rendered by default.

articles/container-apps/TOC.yml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -128,10 +128,12 @@
128128
href: functions-overview.md
129129
- name: Create a Functions app
130130
href: functions-usage.md
131-
- name: Run event-driven and batch workloads
132-
href: functions-unified-platform.md
133131
- name: Create your Azure functions on Azure Container Apps
134132
href: functions-container-apps.md
133+
- name: Migrate from Functions v1 to v2
134+
href: migrate-functions.md
135+
- name: Run event-driven and batch workloads
136+
href: functions-unified-platform.md
135137
- name: Use dynamic sessions
136138
items:
137139
- name: Code interpreter sessions
Lines changed: 200 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,200 @@
1+
---
2+
title: Migrate to Azure Functions v2 on Azure Container Apps
3+
ms.reviewer: cshoe
4+
description: Learn how to migrate Azure Functions from the legacy v1 model to the recommended v2 model on Azure Container Apps.
5+
services: container-apps
6+
author: craigshoemaker
7+
ms.service: azure-container-apps
8+
ms.topic: how-to
9+
ms.date: 11/17/2025
10+
ms.author: cshoe
11+
---
12+
13+
# Migrate to Azure Functions v2 on Azure Container Apps
14+
15+
Use this guide to move Azure Functions running on the legacy Functions v1 model to the recommended Functions v2 model on Azure Container Apps. You learn why to migrate, what changes, and how to execute the transition with minimal risk.
16+
17+
You can host Azure Functions in Azure Container Apps by using two deployment models:
18+
19+
- **Functions v1**: Legacy proxy model that uses a Function App (`Microsoft.Web` resource provider) plus a behind-the-scenes container app.
20+
21+
- **Functions v2**: Native model that creates a single Azure Container App resource (`Microsoft.App`) with `kind=functionapp`.
22+
23+
When you move to v2 you simplify management, unlock native features, and align with future roadmap of Azure Functions.
24+
25+
## Model comparison
26+
27+
| Area | v1 (legacy) | v2 (recommended) |
28+
|------|-------------|------------------|
29+
| Resource model | Proxy Functions app paired with a hidden container app | Single native container app (`kind=functionapp`) |
30+
| Native features<br><br>(revisions, secrets, health probes, custom domains, sidecars) | Not supported | Supported |
31+
| Scaling controls<br><br>(cooldown, polling interval) | Limited | Full container app scaling options |
32+
| Logging and troubleshooting | Indirect. No live console | Direct. Includes live logs and diagnostics |
33+
| Dapr integration | Problematic in some isolated .NET scenarios | Supported with standard patterns |
34+
| Auth (Easy Auth) | Not available | Available |
35+
| Certificates and custom domains | Not available | Available |
36+
| Metrics and alerting | Basic | Full native metrics and alerts |
37+
| Future roadmap<br><br>(function listing, keys, invocation count) | Not planned | Planned |
38+
| Operational complexity | Dual-resource management | Single resource |
39+
| Recommended for new deployments | No | Yes |
40+
41+
## Limitations of Functions v1
42+
43+
Functions v1 on Azure Container Apps has several limitations that affect scalability, management, and feature availability. Understanding these constraints helps clarify the benefits of migrating to the v2 model.
44+
45+
### Feature gaps
46+
47+
The following features aren't available for Functions v1 apps:
48+
49+
- Easy Auth
50+
- Health probes
51+
- Custom domains
52+
- Sidecar containers
53+
- Managed certificates
54+
- Container app secrets
55+
- Granular scale settings
56+
- Multirevision traffic splitting
57+
58+
### Troubleshooting constraints
59+
60+
With Functions v1 apps, you don't have direct container access or real-time console output. Instead, you need to use Log Analytics for infrastructure diagnostics and Application Insights for application logs.
61+
62+
### Dapr integration issues
63+
64+
Dapr and .NET isolated Functions can conflict during build or runtime because of dependency and initialization ordering constraints.
65+
66+
## Benefits of Functions v2
67+
68+
Functions v2 creates a native container app resource directly. This approach removes proxy indirection and enables full Azure Container Apps capabilities.
69+
70+
Key benefits:
71+
72+
- Enable Easy Auth for identity offload.
73+
- Configure health probes to improve resilience.
74+
- Set custom domains and use managed certificates.
75+
- Reduce operational overhead with a single resource.
76+
- Store secrets natively and mount sidecar containers.
77+
- Gain clearer metrics, alerts, and live log streaming.
78+
- Use multirevision deployments and split traffic safely.
79+
- Apply granular scaling rules (polling interval, cooldown).
80+
81+
> [!NOTE]
82+
> No code changes are required. You can reuse your existing container image.
83+
84+
## Legacy direct image deployment (unsupported)
85+
86+
Some deployments use a standard container app without `kind=functionapp` and manually run a Functions image.
87+
88+
> [!IMPORTANT]
89+
> This approach isn't supported. It lacks automatic scale rules and doesn't receive upcoming v2 platform features like function listing, keys, and invocation counts.
90+
91+
**Recommendation:** Migrate to Functions v2 on Azure Container Apps.
92+
93+
## Prerequisites
94+
95+
Before migrating:
96+
97+
- Azure subscription and permission to create resources.
98+
- [Azure CLI](/cli/azure/install-azure-cli-windows?view=azure-cli-latest (latest) installed.
99+
- Required extensions: `az extension add --name containerapp`, `az extension add --name functionapp` (if applicable).
100+
- Access to the container image used by your v1 deployment.
101+
- Inventory of environment variables, secrets, storage bindings, and networking settings.
102+
103+
## Migration procedure
104+
105+
### 1. Prepare
106+
107+
1. Identify that your current deployment is a Functions v1 app.
108+
1. Export all configuration data including environment variables, secrets, connection strings, and custom bindings.
109+
1. Review environment quotas (CPU, memory, max instances) and adjust if needed.
110+
1. Confirm image availability in your registry.
111+
112+
### 2. Create v2 app
113+
114+
1. Create or reuse an Azure Container Apps environment.
115+
1. Deploy a new v2 container app with the same image.
116+
117+
```azurecli
118+
az containerapp create \
119+
--name my-func-v2 \
120+
--resource-group <RESOURCE_GROUP_NAME> \
121+
--environment <ENVRONMENT_NAME> \
122+
--image myregistry.azurecr.io/<IMAGE_NAME>:<TAG_NAME> \
123+
--kind functionapp \
124+
--ingress external --target-port <TARGET_PORT>
125+
```
126+
127+
1. Reapply configuration details including secrets, environment variables, identity, networking.
128+
129+
1. Enable authentication or custom domain if needed.
130+
131+
1. Define scaling rules (HTTP, CPU, queue trigger correlation as appropriate).
132+
133+
### 3. Validate
134+
135+
1. Invoke HTTP-triggered functions (curl or browser).
136+
137+
1. Test each trigger type (Event Hubs, Service Bus, timer).
138+
139+
1. Confirm Application Insights telemetry and Log Analytics logs.
140+
141+
1. Check scaling behavior under load (autoscale rules firing).
142+
143+
1. Verify secrets and connection strings resolve correctly.
144+
145+
1. Confirm health probe status and container revision details.
146+
147+
### 4. Update DNS or custom domains (optional)
148+
149+
1. If using a custom domain, map it to the new v2 hostname (CNAME or A record).
150+
151+
1. Rebind SSL/TLS certificates (managed or uploaded).
152+
153+
1. Test domain resolution and TLS handshake.
154+
155+
1. Communicate endpoint changes internally.
156+
157+
### 5. Migrate
158+
159+
1. Shift production traffic (update DNS TTL or routing rules).
160+
161+
1. Monitor latency, errors, and invocation counts.
162+
163+
1. Adjust scaling parameters if needed (cooldown, min/max instances).
164+
165+
1. Track logs for anomalies during first few hours.
166+
167+
### 6. Clean up
168+
169+
1. Decommission the old v1 Functions app and related resources.
170+
171+
> [!CAUTION]
172+
> Verify no production traffic still targets the v1 endpoint before deletion.
173+
174+
1. Remove unused secrets or storage references.
175+
176+
1. Update internal documentation and operational runbooks.
177+
178+
## Validation checklist
179+
180+
| Item | Pass criteria |
181+
|------|---------------|
182+
| Triggers fire | All configured triggers execute successfully |
183+
| Logs and telemetry | Application Insights shows invocations; live logs stream |
184+
| Scaling | Instance count adjusts per rule configuration |
185+
| Auth (if enabled) | Protected endpoints return expected status codes |
186+
| Domains | Custom domain resolves with valid certificate |
187+
| Secrets | Sensitive values load without errors |
188+
189+
## Operational enhancements (optional)
190+
191+
Improve reliability after migration:
192+
193+
- Add alert rules: /azure/container-apps/monitor
194+
- Tune autoscale: /azure/container-apps/scale-apps
195+
- Enforce managed identity usage: /azure/container-apps/managed-identity
196+
- Centralize secrets: /azure/container-apps/manage-secrets
197+
198+
## Related content
199+
200+
- [Functions on Azure Container Apps overview](/azure/container-apps/functions-usage)

articles/container-apps/plans.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: Azure Container Apps plan types
3-
description: Compare different plains available in Azure Container Apps
3+
description: Compare different plans available in Azure Container Apps
44
services: container-apps
55
author: craigshoemaker
66
ms.service: azure-container-apps

0 commit comments

Comments
 (0)