Skip to content

Commit be46193

Browse files
Merge pull request #313930 from lootle1/FR44
Freshness Edit: Azure Dev Compute - Container Apps
2 parents 2b24ca3 + 32e7cc3 commit be46193

5 files changed

Lines changed: 37 additions & 38 deletions

File tree

articles/container-apps/manage-secrets.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ Azure Container Apps allows your application to securely store sensitive configu
2121
- Secrets are scoped to an application, outside of any specific revision of an application.
2222
- New revisions don't get generated through adding, removing, or changing secrets.
2323
- Each application revision can reference one or more secrets.
24-
- Multiple revisions can reference the same secret(s).
24+
- Multiple revisions can reference the same secrets.
2525

2626
An updated or deleted secret doesn't automatically affect existing revisions in your app. When a secret is updated or deleted, you can respond to changes in one of two ways:
2727

@@ -39,13 +39,13 @@ Secrets are defined as a set of name/value pairs. The value of each secret is sp
3939
4040
### Store secret value in Container Apps
4141

42-
When you define secrets through the portal, or via different command line options.
42+
The following is used when you define secrets through the portal, or via different command line options.
4343

4444
# [Azure portal](#tab/azure-portal)
4545

4646
1. Go to your container app in the [Azure portal](https://portal.azure.com).
4747

48-
1. Under the *Settings* section, select **Secrets**.
48+
1. Under the *Security* section, select **Secrets**.
4949

5050
1. Select **Add**.
5151

@@ -122,7 +122,7 @@ Here, a connection string to a queue storage account is declared. The value for
122122

123123
---
124124

125-
### <a name="reference-secret-from-key-vault"></a>Reference secret from Key Vault
125+
## <a name="reference-secret-from-key-vault"></a>Reference secret from Key Vault
126126

127127
When you define a secret, you create a reference to a secret stored in Azure Key Vault. Container Apps automatically retrieves the secret value from Key Vault and makes it available as a secret in your container app.
128128

@@ -136,7 +136,7 @@ To grant access to Key Vault secrets, grant the Azure RBAC role [Key Vault Secre
136136

137137
1. Go to your container app in the [Azure portal](https://portal.azure.com).
138138

139-
1. Under the *Settings* section, select **Identity**.
139+
1. Under the *Security* section, select **Identity**.
140140

141141
1. In the *System assigned* tab, set the *Status* to **On**.
142142

@@ -147,7 +147,7 @@ To grant access to Key Vault secrets, grant the Azure RBAC role [Key Vault Secre
147147

148148
1. A popup appears to confirm that you want to enable system assigned managed identity and register your container app with Microsoft Entra ID. Select **Yes**.
149149

150-
1. Under the *Settings* section, select **Secrets**.
150+
1. Under the *Security* section, select **Secrets**.
151151

152152
1. Select **Add**.
153153

@@ -216,14 +216,14 @@ Secrets Key Vault references aren't supported in PowerShell.
216216
---
217217

218218
> [!NOTE]
219-
> If you're using [UDR With Azure Firewall](user-defined-routes.md), you will need to add the `AzureKeyVault` service tag and the *login.microsoft.com* FQDN to the allow list for your firewall. Refer to [configuring UDR with Azure Firewall](use-azure-firewall.md) to decide which additional service tags you need.
219+
> If you're using [UDR With Azure Firewall](user-defined-routes.md), you'll need to add the `AzureKeyVault` service tag and the *login.microsoft.com* FQDN to the allow list for your firewall. Refer to [configuring UDR with Azure Firewall](use-azure-firewall.md) to decide which additional service tags you need.
220220
221221
#### Key Vault secret URI and secret rotation
222222

223223
The Key Vault secret URI must be in one of the following formats:
224224

225-
* `https://myvault.vault.azure.net/secrets/mysecret/ec96f02080254f109c51a1f14cdb1931`: Reference a specific version of a secret.
226-
* `https://myvault.vault.azure.net/secrets/mysecret`: Reference the latest version of a secret.
225+
- `https://myvault.vault.azure.net/secrets/mysecret/ec96f02080254f109c51a1f14cdb1931`: Reference a specific version of a secret.
226+
- `https://myvault.vault.azure.net/secrets/mysecret`: Reference the latest version of a secret.
227227

228228
If a version isn't specified in the URI, then the app uses the latest version that exists in the key vault. When newer versions become available, the app automatically retrieves the latest version within 30 minutes. Any active revisions that reference the secret in an environment variable is automatically restarted to pick up the new value.
229229

articles/container-apps/overview.md

Lines changed: 4 additions & 4 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: overview
8-
ms.date: 11/19/2024
8+
ms.date: 03/31/2026
99
ms.author: cshoe
1010
ms.custom: build-2023
1111
---
@@ -26,7 +26,7 @@ Additionally, applications built on Azure Container Apps can dynamically scale b
2626
- HTTP traffic
2727
- Event-driven processing
2828
- CPU or memory load
29-
- Any [KEDA-supported scaler](https://keda.sh/docs/scalers/)
29+
- Any [KEDA-supported scaler](https://keda.sh/docs/2.19/scalers/)
3030

3131
:::image type="content" source="media/overview/azure-container-apps-example-scenarios.png" alt-text="Example scenarios for Azure Container Apps.":::
3232

@@ -43,13 +43,13 @@ With Azure Container Apps, you can:
4343

4444
- [**Use the Azure CLI extension, Azure portal or ARM templates**](get-started.md) to manage your applications.
4545

46-
- [**Enable HTTPS or TCP ingress**](ingress.md) without having to manage other Azure infrastructure.
46+
- [**Enable HTTPS or TCP ingress**](ingress-overview.md) without having to manage other Azure infrastructure.
4747

4848
- [**Build microservices with Dapr**](microservices.md) and [access its rich set of APIs](./dapr-overview.md).
4949

5050
- [**Run jobs**](jobs.md) on-demand, on a schedule, or based on events.
5151

52-
- [**Run Azure Functions**](../container-apps/functions-overview.md) for [event-driven scenarios](../azure-functions/functions-scenarios.md) using triggers, bindings and automatic scaling.
52+
- [**Run Azure Functions**](../container-apps/functions-overview.md) for [event-driven scenarios](../azure-functions/functions-scenarios.md) using triggers, bindings, and automatic scaling.
5353

5454
- Add [**Azure Spring Apps**](https://aka.ms/asaonaca) to your Azure Container Apps environment.
5555

articles/container-apps/sessions.md

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -14,29 +14,30 @@ ms.custom: references_regions, ignite-2024
1414

1515
Azure Container Apps dynamic sessions provide fast access to secure sandboxed environments that are ideal for running code or applications that require strong isolation from other workloads.
1616

17-
Dynamic sessions offer prewarmed environments through a [session pools](./session-pool.md) that starts the container in milliseconds, scales on demand, and maintains strong isolation. This makes them ideal for interactive workloads, running LLM generated scripts, and secure execution of custom code.
18-
17+
Dynamic sessions offer prewarmed environments through [session pools](./session-pool.md) that start the container in milliseconds, scale on demand, and maintain strong isolation. This makes them ideal for interactive workloads, running LLM generated scripts, and secure execution of custom code.
1918

2019
## Benefits
20+
2121
With sessions, you get:
2222

2323
- **Secure isolation**: Hyper-V isolation and optional network controls protect your environment. Sessions are isolated from each other and from the host environment, providing enterprise-grade security and isolation.
2424
- **Sandboxed environments**: Each session runs in its own isolated environment, ensuring that workloads don't interfere with each other.
2525
- **Instant Startup**: Prewarmed pools enable subsecond launch times for interactive workloads. New sessions are allocated in milliseconds thanks to pools of ready but unallocated sessions.
26-
- **Scalable by Design**: Handle hundreds or thousands of concurrent sessions without manual intervention.
27-
- **Managed lifecycle**: Sessions are automatically deprovisioned after use or after a configurable cooldown period, ensuring efficient resource usage.
28-
26+
- **Scalable by Design**: Handle hundreds or thousands of concurrent sessions without manual intervention.
27+
- **Managed lifecycle**: Sessions are automatically deprovisioned after use or after a configurable cooldown period, ensuring efficient resource usage.
2928

3029
## Common Scenarios
31-
Dynamic sessions are useful in a variety of situations, including:
30+
31+
Dynamic sessions are useful in various situations, including:
32+
3233
- **AI/LLM Workflows**: Safely execute AI-generated code in isolated environments without risking your production systems.
3334
- **Interactive Development**: Provide developers with fast, disposable environments for testing scripts or prototypes without provisioning full apps.
3435
- **Secure Code Execution**: Run untrusted or user-submitted code in a sandboxed environment with strong isolation.
3536
- **Custom Compute Tasks**: Execute short-lived jobs that require custom dependencies or runtime environments without long startup times.
3637
- **Burst Workloads**: Handle unpredictable spikes in demand by scaling sessions up and down automatically.
3738

38-
3939
## Key Concepts
40+
4041
- **Session Pool**: A session pool is the foundation for dynamic sessions. It contains a set of prewarmed, ready-to-use sessions that enable near instant startup. When a request comes in, the system allocates a session from the pool instead of creating one from scratch, which dramatically reduces latency.
4142

4243
- **Session**: A session is the actual execution environment where your code or container runs. Sessions are ephemeral and isolated, designed for short-lived tasks. When you create a session, it's allocated from the session pool, ensuring fast startup. After the task completes or the cooldown period expires, the session is destroyed and resources are cleaned up.
@@ -49,8 +50,7 @@ Dynamic sessions are useful in a variety of situations, including:
4950
- **Code interpreter session pools**: These use platform built-in containers that provide preconfigured environments for running code, including AI-generated scripts. Ideal for scenarios like LLM-driven workflows or secure code execution.
5051
- **Custom container session pools**: Bring-your-own-container for custom workloads that require specific dependencies or runtime environments.
5152

52-
53-
#### Session pool types comparison
53+
### Session pool types comparison
5454

5555
| | **Code interpreter session pool** | **Custom container session pool** |
5656
|---------------|------------------------------|------------------------------|
@@ -63,7 +63,6 @@ Dynamic sessions are useful in a variety of situations, including:
6363

6464
For more information, see [Usage](./sessions-usage.md).
6565

66-
6766
## Supported regions
6867

6968
Dynamic sessions are available in the following regions. Both code interpreter and custom container sessions are supported in all listed regions.
@@ -89,12 +88,13 @@ Dynamic sessions are available in the following regions. Both code interpreter a
8988
> Regional availability may change. To verify current availability, check the **Location** dropdown when creating a session pool in the Azure portal.
9089
9190
## Security
92-
Dynamic sessions are designed to run untrusted code in isolated environments. For information about securing your sessions, see [Security](./sessions-usage.md#security).
9391

92+
Dynamic sessions are designed to run untrusted code in isolated environments. For information about securing your sessions, see [Security](./sessions-usage.md#security).
9493

9594
## Billing
96-
Custom container sessions are billed based on the resources consumed by the session pool. For more information, see [Azure Container Apps billing](./billing.md#dynamic-sessions).
9795

96+
Custom container sessions are billed based on the resources consumed by the session pool. For more information, see [Azure Container Apps billing](./billing.md#dynamic-sessions).
9897

9998
## Related content
99+
100100
- Learn how to configure [session pools](./session-pool.md)

articles/container-apps/vnet-custom.md

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ author: craigshoemaker
66
ms.service: azure-container-apps
77
ms.custom: devx-track-azurepowershell, devx-track-azurecli
88
ms.topic: how-to
9-
ms.date: 02/03/2025
9+
ms.date: 04/02/2026
1010
ms.author: cshoe
1111
zone_pivot_groups: azure-cli-or-portal
1212
---
@@ -20,23 +20,23 @@ The following example shows you how to create a Container Apps environment in an
2020
<!-- Create -->
2121
[!INCLUDE [container-apps-create-portal-steps.md](../../includes/container-apps-create-portal-steps.md)]
2222

23-
You also have the option of deploying a private DNS for your Container Apps environment. For more information see [Create and configure an Azure Private DNS zone](waf-app-gateway.md#create-and-configure-an-azure-private-dns-zone).
23+
You also have the option of deploying a private DNS for your Container Apps environment. For more information, see [Create and configure an Azure Private DNS zone](waf-app-gateway.md#create-and-configure-an-azure-private-dns-zone).
2424

25-
#### Create a virtual network
25+
## Create a virtual network
2626

2727
> [!NOTE]
2828
> To use a VNet with Container Apps, the VNet must have a dedicated subnet with a CIDR range of `/27` or larger when using the default workload profiles environment, or a CIDR range of `/23` or larger when using the legacy Consumption only environment. To learn more about subnet sizing, see the [networking architecture overview](./custom-virtual-networks.md#subnet).
2929
3030
1. Select the **Networking** tab.
3131
1. Select **Yes** next to *Use your own virtual network*.
32-
1. Next to the *Virtual network* box, select the **Create new** link and enter the following value.
32+
1. Next to the *Virtual network* box, select the **Create new** link and enter the following value:
3333

3434
| Setting | Value |
3535
|--|--|
3636
| Name | Enter **my-custom-vnet**. |
3737

3838
1. Select the **OK** button.
39-
1. Next to the *Infrastructure subnet* box, select the **Create new** link and enter the following values:
39+
1. Next to the *Subnet* box, select the **Create new** link and enter the following values:
4040

4141
| Setting | Value |
4242
|---|---|
@@ -146,7 +146,7 @@ $vnet = New-AzVirtualNetwork @VnetArgs
146146

147147
---
148148

149-
When using the Workload profiles environment, you need to update the VNet to delegate the subnet to `Microsoft.App/environments`. Do not delegate the subnet when using the Consumption-only environment.
149+
When using the Workload profiles environment, you need to update the VNet to delegate the subnet to `Microsoft.App/environments`. Don't delegate the subnet when using the Consumption-only environment.
150150

151151
# [Bash](#tab/bash)
152152

@@ -204,7 +204,7 @@ The following table describes the parameters used with `containerapp env create`
204204
|---|---|
205205
| `name` | Name of the Container Apps environment. |
206206
| `resource-group` | Name of the resource group. |
207-
| `logs-workspace-id` | (Optional) The ID of an existing Log Analytics workspace. If omitted, a workspace is created for you. |
207+
| `logs-workspace-id` | (Optional) The ID of an existing Log Analytics workspace. If omitted, a workspace is created for you. |
208208
| `logs-workspace-key` | The Log Analytics client secret. Required if using an existing workspace. |
209209
| `location` | The Azure location where the environment is to deploy. |
210210
| `infrastructure-subnet-resource-id` | Resource ID of a subnet for infrastructure components and user application containers. |
@@ -351,9 +351,9 @@ New-AzPrivateDnsRecordSet @DnsRecordArgs
351351
When using the legacy Consumption-only environment, there are three optional networking parameters you can choose to define when calling `containerapp env create`. Use these options when you have a peered VNet with separate address ranges. Explicitly configuring these ranges ensures the addresses used by the Container Apps environment don't conflict with other ranges in the network infrastructure.
352352

353353
> [!NOTE]
354-
> These parameters are only applicable to the legacy Consumption-only environment type. The default workload profiles environment type does not require these parameters.
354+
> These parameters are only applicable to the legacy Consumption-only environment type. The default workload profiles environment type doesn't require these parameters.
355355
356-
You must either provide values for all three of these properties, or none of them. If they aren’t provided, the values are generated for you.
356+
You must either provide values for all three of these properties or none of them. If they aren’t provided, the values are generated for you.
357357

358358
# [Bash](#tab/bash)
359359

@@ -363,7 +363,7 @@ You must either provide values for all three of these properties, or none of the
363363
| `platform-reserved-dns-ip` | An IP address from the `platform-reserved-cidr` range that is used for the internal DNS server. The address can't be the first address in the range, or the network address. For example, if `platform-reserved-cidr` is set to `10.2.0.0/16`, then `platform-reserved-dns-ip` can't be `10.2.0.0` (the network address), or `10.2.0.1` (infrastructure reserves use of this IP). In this case, the first usable IP for the DNS would be `10.2.0.2`. |
364364
| `docker-bridge-cidr` | The address range assigned to the Docker bridge network. This range must have a size between `/28` and `/12`. |
365365

366-
- The `platform-reserved-cidr` and `docker-bridge-cidr` address ranges can't conflict with each other, or with the ranges of either provided subnet. Further, make sure these ranges don't conflict with any other address range in the VNet.
366+
- The `platform-reserved-cidr` and `docker-bridge-cidr` address ranges can't conflict with each other or with the ranges of either provided subnet. Further, make sure these ranges don't conflict with any other address range in the VNet.
367367

368368
- If these properties aren’t provided, the CLI autogenerates the range values based on the address range of the VNet to avoid range conflicts.
369369

@@ -390,7 +390,7 @@ If you're not going to continue to use this application, you can delete the **my
390390
::: zone pivot="azure-cli"
391391

392392
>[!CAUTION]
393-
> The following command deletes the specified resource group and all resources contained within it. If resources outside the scope of this guide exist in the specified resource group, they will also be deleted.
393+
> The following command deletes the specified resource group and all resources contained within it. If resources outside the scope of this guide exist in the specified resource group, they'll also be deleted.
394394
395395
# [Bash](#tab/bash)
396396

includes/container-apps-create-portal-steps.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,13 +39,12 @@ Next, create an environment for your container app.
3939
|--|--|
4040
| Region | Select **Central US**. |
4141

42-
1. In the *Create Container Apps environment* field, select the **Create new** link.
42+
1. In the *Container Apps environment* field, select the **Create new environment** link.
4343
1. In the *Create Container Apps environment* page on the *Basics* tab, enter the following values:
4444

4545
| Setting | Value |
4646
|--|--|
4747
| Environment name | Enter **my-environment**. |
48-
| Environment type | Select **Workload profiles**. |
4948
| Zone redundancy | Select **Disabled** |
5049

5150
1. Select the **Monitoring** tab to create a Log Analytics workspace.

0 commit comments

Comments
 (0)