Skip to content

Commit 0af9078

Browse files
Merge pull request #313685 from lootle1/FR42
Freshness Edit: Azure Dev Compute - Container Apps
2 parents 1bd0b16 + 49bf410 commit 0af9078

3 files changed

Lines changed: 33 additions & 25 deletions

File tree

articles/container-apps/functions-overview.md

Lines changed: 30 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,16 @@ ms.author: cshoe
1111

1212
# Azure Functions on Azure Container Apps overview
1313

14-
Azure Functions on Azure Container Apps offers a fully managed serverless hosting environment that brings together the event-driven capabilities of Azure Functions with the robust features of Container Apps. This integration includes advanced capabilities such as Kubernetes-based orchestration, built-in autoscaling powered by KEDA (Kubernetes-based Event Driven Autoscaling), Dapr (Distributed Application Runtime) integration, GPU workload support, sidecar support, virtual network (VNet) connectivity, and revision management.
14+
Azure Functions on Azure Container Apps offers a fully managed serverless hosting environment that brings together the event-driven capabilities of Azure Functions with the robust features of Container Apps. This integration includes advanced capabilities such as Kubernetes-based orchestration, built-in autoscaling powered by KEDA (Kubernetes-based Event Driven Autoscaling), Dapr (Distributed Application Runtime) integration, GPU workload support, sidecar support, virtual network (VNet) connectivity, and revision management.
1515

1616
This approach is useful when you want your Functions to run alongside other containerized apps like microservices, APIs, or websites. Further, containerizing your function apps can help when you need custom dependencies or want to take advantage of scale-to-zero for cost savings. If you're running compute-heavy tasks like AI inference, Container Apps also supports GPU-based hosting through serverless GPU offering and Dedicated workload profiles.
1717

18-
As an integrated feature on Azure Container Apps, you can deploy Azure Functions images directly onto Azure Container Apps using the `Microsoft.App` resource provider by setting `kind=functionapp` when calling `az containerapp create`. Apps created this way have access to all Azure Container Apps features. If deploying via Azure portal, you can enable the *Optimize for Functions app* option during setup. Refer to [deployment and setup](../container-apps/functions-overview.md#deployment-and-setup) section for more details.
18+
As an integrated feature on Azure Container Apps, you can deploy Azure Functions images directly onto Azure Container Apps using the `Microsoft.App` resource provider by setting `kind=functionapp` when calling `az containerapp create`. Apps created this way have access to all Azure Container Apps features. If deploying via Azure portal, you can enable the *Optimize for Functions app* option during setup. For more information, see [deployment and setup](../container-apps/functions-overview.md#deployment-and-setup) section for more details.
1919

2020
## Key benefits
21+
2122
The Container Apps hosting model builds on the flexibility of containerized workloads and the event-driven nature of Azure Functions. It offers the following key advantages:
23+
2224
- **Run Azure Functions as containers** with custom dependencies and language stacks.
2325
- **Scale in to zero and scale out to 1000 instances** using KEDA.
2426
- **[Secure networking](../container-apps/networking.md)** with full [VNet integration](../container-apps/custom-virtual-networks.md).
@@ -31,9 +33,9 @@ The following table helps you compare the features of Functions on Container App
3133
| Feature | Container Apps | Flex Consumption Plan |
3234
| --- | --- | --- |
3335
| Scale to zero | ✅ Yes (via KEDA) | ✅ Yes |
34-
| Max scale-out | 1,000 (default 10, configurable) | 1,000 |
36+
| Max scale-out | 1,000 (default 10, configurable) | 1,000 |
3537
| Always-on instances | ✅ Yes (via `minReplicas`) | ✅ Yes (via always-ready instances) |
36-
| VNet integration | ✅ Yes | ✅ Yes |
38+
| VNet integration | ✅ Yes | ✅ Yes |
3739
| Custom container support | ✅ Yes (bring your own image) | ❌ Limited (no bring your own container) |
3840
| GPU support | ✅ Yes (via serverless GPU dedicated workload profile) | ❌ No |
3941
| Built-in features | Container Apps feature support. For instance, KEDA, Dapr, multi-revisions, mTLS, sidecars, ingress control and more | Functions-only features |
@@ -70,13 +72,15 @@ az containerapp create \
7072
--kind functionapp \
7173
--query properties.outputs.fqdn
7274
```
75+
7376
This command returns the URL of your Functions app. Copy this URL and paste it into a web browser.
7477

7578
In the Azure portal, select the *Optimize for Azure Functions* option during container app creation to streamline the setup.
7679

7780
:::image type="content" source="media/functions-overview/functions-create-container-app.png" alt-text="Screenshot of the Azure portal when you create a container app pre-configured for Azure Functions.":::
7881

7982
All standard deployment methods are supported, including:
83+
8084
- [Azure CLI](../container-apps/functions-usage.md?pivots=azure-cli)
8185
- [Azure portal](../container-apps/functions-usage.md?pivots=azure-portal)
8286
- ARM templates / [Bicep](https://github.com/Azure/azure-functions-on-container-apps/tree/main/samples/ACAKindfunctionapp)
@@ -85,20 +89,23 @@ All standard deployment methods are supported, including:
8589
For detailed steps and examples, refer to the official [getting started documentation](../container-apps/functions-usage.md).
8690

8791
## Pricing and billing
92+
8893
Azure Functions on Azure Container Apps follow the same pricing model as Azure Container Apps. Billing is based on the [plan type](../container-apps/plans.md) you select for your environment, which can be either Consumption or Dedicated.
89-
- [Consumption plan](..//container-apps/billing.md#consumption-plan): This serverless compute option bills you only for the resources your apps use while they are running.
94+
95+
- [Consumption plan](..//container-apps/billing.md#consumption-plan): This serverless compute option bills you only for the resources your apps use while they're running.
9096
- [Dedicated plan](../container-apps/billing.md#consumption-dedicated): This option provides customized compute resources, billing you for the instances allocated to each workload profile.
9197

9298
Your choice of plan determines how billing calculations are made. Different applications within an environment can use different plans.
9399

94100
Key points to note:
101+
95102
- No extra charges for using the Azure Functions programming model within Container Apps.
96103
- Durable Functions and other advanced patterns are supported and billed under the same Container Apps pricing model.
97104
For detailed billing mechanics and examples, refer to the [Billing in Azure Container Apps](../container-apps/billing.md) documentation.
98105

99106
## Event-driven scaling
100107

101-
Azure Functions on Container Apps support all major [language runtimes available in Azure Functions](../azure-functions/supported-languages.md), including: C#, JavaScript / TypeScript (Node.js), Python, Java, PowerShell, Custom containers (bring your own image).
108+
Azure Functions on Container Apps support all major [language runtimes available in Azure Functions](../azure-functions/supported-languages.md), including C#, JavaScript / TypeScript (Node.js), Python, Java, PowerShell, and Custom containers (bring your own image).
102109

103110
Azure Functions running on Azure Container Apps **automatically configure scaling rules** based on the event source, eliminating the need for manual KEDA scale rule definitions. That’s why the "Add scale rules" button on the Azure portal is disabled for Functions on Container Apps. However, you can still define minimum and maximum replica counts to establish scaling boundaries and maintain control over resource allocation.
104111

@@ -111,20 +118,21 @@ The platform automatically translates your Functions trigger parameters (from `h
111118
- Azure Cache for Redis
112119
- Azure SQL
113120

114-
**Managed identities** are supported for triggers and bindings that allow it. They are also available for:
121+
**Managed identities** are supported for triggers and bindings that allow it. They're also available for:
122+
115123
- [Default storage account](../azure-functions/functions-reference.md#connecting-to-host-storage-with-an-identity) (AzureWebJobsStorage)
116124
- [Azure Container Registry](../container-apps/managed-identity-image-pull.md) (ACR)
117125
- [Connecting to trigger event sources](../azure-functions/functions-reference.md#configure-an-identity-based-connection)
118126

119-
For unsupported triggers, use fixed replica counts (that is, set minReplicas > 0) in Azure Functions on Azure Container Apps. For more details, refer to the [Functions developer guide](../azure-functions/functions-reference.md).
127+
For unsupported triggers, use fixed replica counts (that is, set minReplicas > 0) in Azure Functions on Azure Container Apps. For more information, see the [Functions developer guide](../azure-functions/functions-reference.md).
120128

121129
## Scaling and performance
122130

123131
Azure Functions on Container Apps scale automatically based on events using KEDA, with no need to configure scale rules manually. You can still set min/max replicas to control scaling behavior.
124132

125133
- **Event-driven scaling**: Automatically scales based on triggers like Event Grid, Service Bus, or HTTP.
126134
- **Scale to zero**: Idle apps scale-in to zero to save costs.
127-
- **Cold start control**: Learn about [reducing cold-start time on Azure Container Apps](../container-apps/cold-start.md).
135+
- **Cold start control**: Learn about [reducing cold-start time on Azure Container Apps](../container-apps/cold-start.md).
128136
- **Concurrency**: Each instance can process multiple events in parallel.
129137
- **High scale**: Scale out to 1,000 instances per app (default is 10).
130138
- **GPU support**: Run compute-heavy workloads like AI inference using GPU-backed nodes.
@@ -170,14 +178,14 @@ Keep these other considerations in mind when using Azure Functions on Azure Cont
170178
- **Cold start latency**: When your container app scales in to zero during idle periods, the first request after inactivity experiences a cold start. Learn more about [reducing cold start times](../container-apps/cold-start.md).
171179
- **Application insights integration**: For robust monitoring and diagnostics, link your Functions app to Application Insights. For more information, see [App Insights integration with Functions](../azure-functions/configure-monitoring.md?tabs=v2#enable-application-insights-integration).
172180
- **Functions proxies**: Not supported. For API gateway scenarios, integrate with Azure API Management instead.
173-
- **Deployment slots**: Staging and production slots are not available. Use [blue-green deployment strategies](../container-apps/blue-green-deployment.md) for zero-downtime releases.
174-
- **Functions access keys**: Using the portal to generate Functions access keys is not supported. Consider using [Azure Key Vault to store keys](https://techcommunity.microsoft.com/blog/appsonazureblog/how-to-store-function-apps-function-keys-in-a-key-vault/2639181). You can also use the following options to secure HTTP endpoints in production:
175-
- [Enable App Service Authentication/Authorization](../container-apps/authentication.md)
176-
- [Enable ingress](../container-apps/ingress-overview.md)
177-
- [Use Azure API Management (APIM) to authenticate requests](../azure-functions/security-concepts.md#use-azure-api-management-apim-to-authenticate-requests)
178-
- [Deploy your function app to a virtual network](../container-apps/custom-virtual-networks.md?tabs=workload-profiles-env)
181+
- **Deployment slots**: Staging and production slots aren't available. Use [blue-green deployment strategies](../container-apps/blue-green-deployment.md) for zero-downtime releases.
182+
- **Functions access keys**: Using the portal to generate Functions access keys isn't supported. Consider using [Azure Key Vault to store keys](https://techcommunity.microsoft.com/blog/appsonazureblog/how-to-store-function-apps-function-keys-in-a-key-vault/2639181). You can also use the following options to secure HTTP endpoints in production:
183+
- [Enable App Service Authentication/Authorization](../container-apps/authentication.md)
184+
- [Enable ingress](../container-apps/ingress-overview.md)
185+
- [Use Azure API Management (APIM) to authenticate requests](../azure-functions/security-concepts.md#use-azure-api-management-apim-to-authenticate-requests)
186+
- [Deploy your function app to a virtual network](../container-apps/custom-virtual-networks.md?tabs=workload-profiles-env)
179187
- **Quota and resource limits**: Container Apps environments have default limits on memory, CPU, and instance counts per region. For more information, see the [environment limits](../container-apps/environment.md#limits-and-quotas) and [default quotas](../container-apps/quotas.md). If your workload requires more resources, you can [request a quota increase](../container-apps/quota-requests.md).
180-
- **Manual scale rule configuration**: The "Add scale rules" button on the Azure portal is disabled for Azure Functions hosted on Container Apps because scaling rules are automatically configured based on the event source. Manual KEDA rule definitions are not required in this setup.
188+
- **Manual scale rule configuration**: The "Add scale rules" button on the Azure portal is disabled for Azure Functions hosted on Container Apps because scaling rules are automatically configured based on the event source. Manual KEDA rule definitions aren't required in this setup.
181189

182190
## Submit Feedback
183191

@@ -187,9 +195,9 @@ Submit an issue or a feature request to the [Azure Container Apps GitHub repo](h
187195

188196
To continue learning and building with Azure Functions on Container Apps, explore the following resources:
189197

190-
- [Getting started](../container-apps/functions-usage.md) Step-by-step guide to deploying and configuring Azure Functions in Azure Container Apps.
191-
- [Azure Container Apps documentation](../container-apps/overview.md) Full reference for Container Apps features including scaling, networking, Dapr, and workload profiles.
192-
- [Azure Container Apps pricing](https://azure.microsoft.com/pricing/details/container-apps/) Details on consumption-based billing and Dedicated plan costs.
193-
- [Azure Functions hosting options](../azure-functions/functions-scale.md) Comparison of hosting plans including Container Apps, Flex Consumption, Premium, and Dedicated.
194-
- [Azure Functions developer guide](../azure-functions/functions-reference.md) Deep dive into triggers, bindings, runtime behavior, and configuration.
195-
198+
- [Getting started](../container-apps/functions-usage.md): Step-by-step guide to deploying and configuring Azure Functions in Azure Container Apps.
199+
- [Azure Container Apps documentation](../container-apps/overview.md): Full reference for Container Apps features including scaling, networking, Dapr, and workload profiles.
200+
- [Azure Container Apps pricing](https://azure.microsoft.com/pricing/details/container-apps/): Details on consumption-based billing and Dedicated plan costs.
201+
- [Azure Functions hosting options](../azure-functions/functions-scale.md): Comparison of hosting plans including Container Apps, Flex Consumption, Premium, and Dedicated.
202+
- [Azure Functions developer guide](../azure-functions/functions-reference.md): Deep dive into triggers, bindings, runtime behavior, and configuration.
203+

articles/container-apps/get-started.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ services: container-apps
55
author: craigshoemaker
66
ms.service: azure-container-apps
77
ms.topic: quickstart
8-
ms.date: 02/03/2025
8+
ms.date: 03/26/2026
99
ms.author: cshoe
1010
ms.custom: devx-track-azurecli
1111
ms.devlang: azurecli
@@ -84,7 +84,7 @@ The following message is displayed when the container app is deployed:
8484
If you're not going to continue to use this application, run the following command to delete the resource group along with all the resources created in this quickstart.
8585

8686
>[!CAUTION]
87-
> The following command deletes the specified resource group and all resources contained within it. If resources outside the scope of this quickstart exist in the specified resource group, they will also be deleted.
87+
> The following command deletes the specified resource group and all resources contained within it. If resources outside the scope of this quickstart exist in the specified resource group, they'll also be deleted.
8888
8989

9090
```azurecli

articles/container-apps/index.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ metadata:
1111
ms.custom: build-2023
1212
author: craigshoemaker
1313
ms.author: cshoe
14-
ms.date: 04/09/2025
14+
ms.date: 03/25/2026
1515
landingContent:
1616
- title: Learn and get started
1717
linkLists:

0 commit comments

Comments
 (0)