Proposed Pull Request Change

title description services author ms.service ms.custom ms.topic ms.date ms.author
Tutorial: Enable Azure Container Apps on Azure Arc-enabled Kubernetes Tutorial: learn how to set up Azure Container Apps in your Azure Arc-enabled Kubernetes clusters. container-apps craigshoemaker azure-container-apps ['devx-track-azurecli', 'build-2025'] tutorial 09/15/2026 cshoe
📄 Document Links
GitHub View on GitHub Microsoft Learn View on Microsoft Learn
⚠ Content Truncation Detected
The generated rewrite appears to be incomplete.
Original lines: -
Output lines: -
Ratio: -
Raw New Markdown
Generating updated version of doc...
Rendered New Markdown
Generating updated version of doc...
+0 -0
+0 -0
--- title: 'Tutorial: Enable Azure Container Apps on Azure Arc-enabled Kubernetes' description: 'Tutorial: learn how to set up Azure Container Apps in your Azure Arc-enabled Kubernetes clusters.' services: container-apps author: craigshoemaker ms.service: azure-container-apps ms.custom: - devx-track-azurecli - build-2025 ms.topic: tutorial ms.date: 09/15/2026 ms.author: cshoe --- # Tutorial: Enable Azure Container Apps on Azure Arc-enabled Kubernetes This tutorial prepares a supported Kubernetes cluster to run Azure Container Apps. It creates an [Azure Arc-enabled Kubernetes cluster](/azure/azure-arc/kubernetes/overview), installs the Container Apps extension, creates a [custom location](/azure/azure-arc/kubernetes/custom-locations), and creates a Container Apps connected environment. Completing this tutorial changes both your Azure subscription and your Kubernetes cluster. You need Azure permissions to create the listed resources and cluster-admin access to the Kubernetes cluster. This tutorial shows how to enable Azure Container Apps on an Azure Arc-enabled Kubernetes cluster. In this tutorial, you: > [!div class="checklist"] > > * Connect a Kubernetes cluster to Azure Arc, if it isn't already connected. > * Optionally create a Log Analytics workspace. > * Install and validate the Container Apps extension. > * Create and validate a custom location. > * Create and validate a Container Apps connected environment. Before you begin, review [Azure Container Apps on Azure Arc](azure-arc-overview.md). If a resource or in-cluster component doesn't become ready, see [Troubleshoot Azure Container Apps on Azure Arc-enabled Kubernetes](azure-arc-troubleshoot.md). ## Prerequisites Before you begin, verify the following requirements: * An Azure account with an active subscription. If you don't have one, [create one for free](https://azure.microsoft.com/pricing/purchase-options/azure-account?cid=msft_learn). * Permission to register resource providers and create resource groups, an Azure Arc-enabled Kubernetes resource, a cluster extension, a custom location, a Container Apps connected environment, and optionally a Log Analytics workspace. * The [Azure CLI](/cli/azure/install-azure-cli) and its prerequisites. * A `kubectl` version compatible with your Kubernetes cluster and network access from your workstation to the Kubernetes API server. * A supported Kubernetes cluster with Linux `amd64` worker nodes and cluster-admin access through the active `kubectl` context. * A working Kubernetes `LoadBalancer` service implementation. * Outbound connectivity to the endpoints required by Azure Arc and Container Apps. * Sufficient allocatable CPU and memory for the extension and application workloads. Before changing a production cluster, review [Plan a Container Apps deployment on Azure Arc-enabled Kubernetes](azure-arc-plan.md). ## Setup Install the following Azure CLI extensions. # [Azure CLI](#tab/azure-cli) ```azurecli az extension add --name connectedk8s --upgrade --yes az extension add --name k8s-extension --upgrade --yes az extension add --name customlocation --upgrade --yes az extension add --name containerapp --upgrade --yes ``` # [PowerShell](#tab/powershell) ```powershell az extension add --name connectedk8s --upgrade --yes az extension add --name k8s-extension --upgrade --yes az extension add --name customlocation --upgrade --yes az extension add --name containerapp --upgrade --yes ``` --- Register the required namespaces. # [Azure CLI](#tab/azure-cli) ```azurecli az provider register --namespace Microsoft.ExtendedLocation --wait az provider register --namespace Microsoft.KubernetesConfiguration --wait az provider register --namespace Microsoft.App --wait az provider register --namespace Microsoft.Web --wait az provider register --namespace Microsoft.OperationalInsights --wait ``` # [PowerShell](#tab/powershell) ```powershell az provider register --namespace Microsoft.ExtendedLocation --wait az provider register --namespace Microsoft.KubernetesConfiguration --wait az provider register --namespace Microsoft.App --wait az provider register --namespace Microsoft.Web --wait az provider register --namespace Microsoft.OperationalInsights --wait ``` --- Set environment variables based on your Kubernetes cluster deployment. # [Azure CLI](#tab/azure-cli) ```bash GROUP_NAME="my-arc-cluster-group" AKS_CLUSTER_GROUP_NAME="my-aks-cluster-group" AKS_NAME="my-aks-cluster" LOCATION="eastus" ``` # [PowerShell](#tab/powershell) ```powershell $GROUP_NAME="my-arc-cluster-group" $AKS_CLUSTER_GROUP_NAME="my-aks-cluster-group" $AKS_NAME="my-aks-cluster" $LOCATION="eastus" ``` --- ## Create a connected cluster If you already have a supported Azure Arc-enabled Kubernetes cluster in `$GROUP_NAME`, don't create another cluster. Set `CLUSTER_NAME` to the existing connected-cluster resource name, verify access with `kubectl get nodes`, and continue to [Create a Log Analytics workspace](#create-a-log-analytics-workspace). The following steps create an AKS cluster and connect it to Azure Arc. This path is intended only as an Azure-hosted evaluation environment for the tutorial. For an existing on-premises or multicloud cluster, follow [Quickstart: Connect an existing Kubernetes cluster to Azure Arc](/azure/azure-arc/kubernetes/quickstart-connect-cluster), and then return to this tutorial. 1. Create a cluster in Azure Kubernetes Service. # [Azure CLI](#tab/azure-cli) ```azurecli az group create --name $AKS_CLUSTER_GROUP_NAME --location $LOCATION az aks create \ --resource-group $AKS_CLUSTER_GROUP_NAME \ --name $AKS_NAME \ --enable-aad \ --generate-ssh-keys ``` # [PowerShell](#tab/powershell) ```powershell az group create --name $AKS_CLUSTER_GROUP_NAME --location $LOCATION az aks create ` --resource-group $AKS_CLUSTER_GROUP_NAME ` --name $AKS_NAME ` --enable-aad ` --generate-ssh-keys ``` --- 1. Get the [kubeconfig](https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/) file and test your connection to the cluster. By default, the kubeconfig file is saved to `~/.kube/config`. ```azurecli az aks get-credentials --resource-group $AKS_CLUSTER_GROUP_NAME --name $AKS_NAME --admin kubectl get ns ``` 1. Create a resource group to contain your Azure Arc resources. # [Azure CLI](#tab/azure-cli) ```azurecli az group create --name $GROUP_NAME --location $LOCATION ``` # [PowerShell](#tab/powershell) ```powershell az group create --name $GROUP_NAME --location $LOCATION ``` --- 1. Connect the cluster you created to Azure Arc. # [Azure CLI](#tab/azure-cli) ```azurecli CLUSTER_NAME="${GROUP_NAME}-cluster" # Name of the connected cluster resource az connectedk8s connect --resource-group $GROUP_NAME --name $CLUSTER_NAME ``` # [PowerShell](#tab/powershell) ```powershell $CLUSTER_NAME="${GROUP_NAME}-cluster" # Name of the connected cluster resource az connectedk8s connect --resource-group $GROUP_NAME --name $CLUSTER_NAME ``` --- 1. Wait for the connected cluster to finish provisioning. # [Azure CLI](#tab/azure-cli) ```azurecli CONNECTED_CLUSTER_ID=$(az connectedk8s show \ --resource-group $GROUP_NAME \ --name $CLUSTER_NAME \ --query id \ --output tsv) az resource wait --ids $CONNECTED_CLUSTER_ID --created --timeout 600 az connectedk8s show \ --resource-group $GROUP_NAME \ --name $CLUSTER_NAME \ --query "{State:provisioningState,Connectivity:connectivityStatus}" \ --output table ``` # [PowerShell](#tab/powershell) ```powershell $CONNECTED_CLUSTER_ID=$(az connectedk8s show ` --resource-group $GROUP_NAME ` --name $CLUSTER_NAME ` --query id ` --output tsv) az resource wait --ids $CONNECTED_CLUSTER_ID --created --timeout 600 az connectedk8s show ` --resource-group $GROUP_NAME ` --name $CLUSTER_NAME ` --query "{State:provisioningState,Connectivity:connectivityStatus}" ` --output table ``` --- Continue only when `State` is `Succeeded` and `Connectivity` is `Connected`. If the command times out, see [Connected cluster isn't ready](azure-arc-troubleshoot.md#connected-cluster-isnt-ready). ## Create a Log Analytics workspace A [Log Analytics workspace](/azure/azure-monitor/logs/quick-create-workspace) provides access to application logs for Container Apps running in the Azure Arc-enabled Kubernetes cluster. A Log Analytics workspace is optional but recommended for application diagnostics. > [!IMPORTANT] > Decide whether to use Log Analytics before installing the Container Apps extension. Supply the Log Analytics configuration during extension installation. You can't add Log Analytics configuration to that extension instance later. 1. Create a Log Analytics workspace. # [Azure CLI](#tab/azure-cli) ```azurecli WORKSPACE_NAME="$GROUP_NAME-workspace" # Name of the Log Analytics workspace az monitor log-analytics workspace create \ --resource-group $GROUP_NAME \ --workspace-name $WORKSPACE_NAME ``` # [PowerShell](#tab/powershell) ```powershell $WORKSPACE_NAME="$GROUP_NAME-workspace" az monitor log-analytics workspace create ` --resource-group $GROUP_NAME ` --workspace-name $WORKSPACE_NAME ``` --- 1. Run the following commands to get the encoded workspace ID and shared key for an existing Log Analytics workspace. You need them in the next step. > [!CAUTION] > The workspace shared key is a credential. Don't print it, commit it to source control, store it in shell history, or include it in support bundles. The following commands keep it in a shell variable and pass it to Azure as a protected extension setting. # [Azure CLI](#tab/azure-cli) ```azurecli LOG_ANALYTICS_WORKSPACE_ID=$(az monitor log-analytics workspace show \ --resource-group $GROUP_NAME \ --workspace-name $WORKSPACE_NAME \ --query customerId \ --output tsv) LOG_ANALYTICS_WORKSPACE_ID_ENC=$(printf %s $LOG_ANALYTICS_WORKSPACE_ID | base64 -w0) # Needed for the next step LOG_ANALYTICS_KEY=$(az monitor log-analytics workspace get-shared-keys \ --resource-group $GROUP_NAME \ --workspace-name $WORKSPACE_NAME \ --query primarySharedKey \ --output tsv) LOG_ANALYTICS_KEY_ENC=$(printf %s $LOG_ANALYTICS_KEY | base64 -w0) # Needed for the next step ``` # [PowerShell](#tab/powershell) ```powershell $LOG_ANALYTICS_WORKSPACE_ID=$(az monitor log-analytics workspace show ` --resource-group $GROUP_NAME ` --workspace-name $WORKSPACE_NAME ` --query customerId ` --output tsv) $LOG_ANALYTICS_WORKSPACE_ID_ENC=[Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes($LOG_ANALYTICS_WORKSPACE_ID))# Needed for the next step $LOG_ANALYTICS_KEY=$(az monitor log-analytics workspace get-shared-keys ` --resource-group $GROUP_NAME ` --workspace-name $WORKSPACE_NAME ` --query primarySharedKey ` --output tsv) $LOG_ANALYTICS_KEY_ENC=[Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes($LOG_ANALYTICS_KEY)) ``` --- ## Check for an existing KEDA installation The Container Apps extension installs KEDA. Before installing the extension, check the cluster for existing KEDA components: ```bash kubectl get deployments -A -o custom-columns="NAMESPACE:.metadata.namespace,NAME:.metadata.name" kubectl get crd scaledobjects.keda.sh ``` Inspect the deployment list for KEDA components. If either command identifies an existing KEDA installation, stop and confirm the supported coexistence configuration before continuing. Don't remove the existing KEDA installation or apply undocumented extension settings because other workloads might depend on it. ## Install the Container Apps extension > [!IMPORTANT] > If you're deploying onto **AKS on Azure Local**, ensure that you [set up HAProxy or a custom load balancer](/azure/aks/aksarc/configure-load-balancer) before attempting to install the extension. You can also use `az containerapp arc setup-core-dns --distro AksAzureLocal` to set up CoreDNS for local contexts. 1. Set names for the [Container Apps extension](/azure/azure-arc/kubernetes/conceptual-extensions), its Kubernetes namespace, and the connected environment. * `EXTENSION_NAME` identifies the Azure cluster-extension resource. * `NAMESPACE` is created in the Kubernetes cluster and contains extension components and Container Apps-managed resources. The `appsNamespace` setting must exactly match the extension release namespace. * `CONNECTED_ENVIRONMENT_NAME` becomes part of the default application domain. Use a DNS-compatible name that's unique within the resource group. Don't install unrelated workloads in the extension namespace. # [Azure CLI](#tab/azure-cli) ```bash EXTENSION_NAME="appenv-ext" NAMESPACE="appplat-ns" CONNECTED_ENVIRONMENT_NAME="<connected-environment-name>" ``` # [PowerShell](#tab/powershell) ```powershell $EXTENSION_NAME="appenv-ext" $NAMESPACE="appplat-ns" $CONNECTED_ENVIRONMENT_NAME="<connected-environment-name>" ``` --- 1. Install the Container Apps extension to your Azure Arc-connected cluster with Log Analytics enabled. Log Analytics can't be added to the extension later. # [Azure CLI](#tab/azure-cli) ```azurecli az k8s-extension create \ --resource-group $GROUP_NAME \ --name $EXTENSION_NAME \ --cluster-type connectedClusters \ --cluster-name $CLUSTER_NAME \ --extension-type 'Microsoft.App.Environment' \ --release-train stable \ --auto-upgrade-minor-version true \ --scope cluster \ --release-namespace $NAMESPACE \ --configuration-settings "Microsoft.CustomLocation.ServiceAccount=default" \ --configuration-settings "appsNamespace=${NAMESPACE}" \ --configuration-settings "clusterName=${CONNECTED_ENVIRONMENT_NAME}" \ --configuration-settings "logProcessor.appLogs.destination=log-analytics" \ --config-protected-settings "logProcessor.appLogs.logAnalyticsConfig.customerId=${LOG_ANALYTICS_WORKSPACE_ID_ENC}" \ --config-protected-settings "logProcessor.appLogs.logAnalyticsConfig.sharedKey=${LOG_ANALYTICS_KEY_ENC}" ``` # [PowerShell](#tab/powershell) ```powershell az k8s-extension create ` --resource-group $GROUP_NAME ` --name $EXTENSION_NAME ` --cluster-type connectedClusters ` --cluster-name $CLUSTER_NAME ` --extension-type 'Microsoft.App.Environment' ` --release-train stable ` --auto-upgrade-minor-version true ` --scope cluster ` --release-namespace $NAMESPACE ` --configuration-settings "Microsoft.CustomLocation.ServiceAccount=default" ` --configuration-settings "appsNamespace=${NAMESPACE}" ` --configuration-settings "clusterName=${CONNECTED_ENVIRONMENT_NAME}" ` --configuration-settings "logProcessor.appLogs.destination=log-analytics" ` --config-protected-settings "logProcessor.appLogs.logAnalyticsConfig.customerId=${LOG_ANALYTICS_WORKSPACE_ID_ENC}" ` --config-protected-settings "logProcessor.appLogs.logAnalyticsConfig.sharedKey=${LOG_ANALYTICS_KEY_ENC}" ``` --- > [!NOTE] > To install the extension without Log Analytics integration, remove the three logging-related parameters from the command. > > For a cluster that uses a custom load balancer, set `loadBalancerIp` to an address reserved for Container Apps ingress: > ```azurecli > --configuration-settings "loadBalancerIp=<LOAD_BALANCER_INGRESS_IP>" > ``` > The address must be reachable by application clients and must not be assigned to another service. After installation, use `kubectl get service -n $NAMESPACE -o wide` to verify that the extension ingress service reports this address. Configure wildcard DNS only after the address is assigned. See [DNS requirements](azure-arc-plan.md#dns-requirements). The following table describes the various `--configuration-settings` parameters when running the command: | Parameter | Description | | --- | --- | | `Microsoft.CustomLocation.ServiceAccount` | The service account created for the custom location. Set the value to `default`. | | `appsNamespace` | The namespace used to create the app definitions and revisions. It **must** match that of the extension release namespace. | | `clusterName` | The name of the Container Apps extension Kubernetes environment created against this extension. | | `logProcessor.appLogs.destination` | Optional. Destination for application logs. Accepts `log-analytics` or `none`, choosing none disables platform logs. | | `logProcessor.appLogs.logAnalyticsConfig.customerId` | Required only when `logProcessor.appLogs.destination` is set to `log-analytics`. The base64-encoded Log Analytics workspace ID. This parameter should be configured as a protected setting. | | `logProcessor.appLogs.logAnalyticsConfig.sharedKey` | Required only when `logProcessor.appLogs.destination` is set to `log-analytics`. The base64-encoded Log Analytics workspace shared key. This parameter should be configured as a protected setting. | | `loadBalancerIp` | The ingress IP of the load balancer. | 1. Save the `id` property of the Container Apps extension for later. # [Azure CLI](#tab/azure-cli) ```azurecli EXTENSION_ID=$(az k8s-extension show \ --cluster-type connectedClusters \ --cluster-name $CLUSTER_NAME \ --resource-group $GROUP_NAME \ --name $EXTENSION_NAME \ --query id \ --output tsv) ``` # [PowerShell](#tab/powershell) ```powershell $EXTENSION_ID=$(az k8s-extension show ` --cluster-type connectedClusters ` --cluster-name $CLUSTER_NAME ` --resource-group $GROUP_NAME ` --name $EXTENSION_NAME ` --query id ` --output tsv) ``` --- 1. Wait for the extension to fully install before proceeding. # [Azure CLI](#tab/azure-cli) ```azurecli az resource wait --ids $EXTENSION_ID --created --timeout 1200 az k8s-extension show \ --cluster-type connectedClusters \ --cluster-name $CLUSTER_NAME \ --resource-group $GROUP_NAME \ --name $EXTENSION_NAME \ --query "{State:provisioningState,Version:currentVersion}" \ --output table ``` # [PowerShell](#tab/powershell) ```powershell az resource wait --ids $EXTENSION_ID --created --timeout 1200 az k8s-extension show ` --cluster-type connectedClusters ` --cluster-name $CLUSTER_NAME ` --resource-group $GROUP_NAME ` --name $EXTENSION_NAME ` --query "{State:provisioningState,Version:currentVersion}" ` --output table ``` --- Continue only when `State` is `Succeeded`. If the command times out or reports a failure, see [Extension installation fails or times out](azure-arc-troubleshoot.md#extension-installation-fails-or-times-out). 1. Inspect the extension workloads, services, and recent events: ```bash kubectl get pods -n $NAMESPACE kubectl get services -n $NAMESPACE -o wide kubectl get events -n $NAMESPACE --sort-by=.lastTimestamp ``` Don't create the custom location while an extension pod is pending, repeatedly restarting, or unexpectedly not ready. To learn more about these pods and their role in the system, see [Azure Arc overview](azure-arc-overview.md#resources-created-by-the-container-apps-extension). 1. If you configured Log Analytics, clear the local variables that contain the workspace key. # [Azure CLI](#tab/azure-cli) ```bash unset LOG_ANALYTICS_KEY LOG_ANALYTICS_KEY_ENC ``` # [PowerShell](#tab/powershell) ```powershell Remove-Variable LOG_ANALYTICS_KEY, LOG_ANALYTICS_KEY_ENC -ErrorAction SilentlyContinue ``` --- ## Create a custom location The [custom location](/azure/azure-arc/kubernetes/custom-locations) is an Azure location that you assign to the Azure Container Apps connected environment. 1. Set the following environment variables to the desired name of the custom location and for the ID of the Azure Arc-connected cluster. # [Azure CLI](#tab/azure-cli) ```azurecli CUSTOM_LOCATION_NAME="my-custom-location" # Name of the custom location CONNECTED_CLUSTER_ID=$(az connectedk8s show --resource-group $GROUP_NAME --name $CLUSTER_NAME --query id --output tsv) ``` # [PowerShell](#tab/powershell) ```powershell $CUSTOM_LOCATION_NAME="my-custom-location" # Name of the custom location $CONNECTED_CLUSTER_ID=$(az connectedk8s show --resource-group $GROUP_NAME --name $CLUSTER_NAME --query id --output tsv) ``` --- 1. Create the custom location: # [Azure CLI](#tab/azure-cli) ```azurecli az customlocation create \ --resource-group $GROUP_NAME \ --name $CUSTOM_LOCATION_NAME \ --host-resource-id $CONNECTED_CLUSTER_ID \ --namespace $NAMESPACE \ --cluster-extension-ids $EXTENSION_ID ``` # [PowerShell](#tab/powershell) ```powershell az customlocation create ` --resource-group $GROUP_NAME ` --name $CUSTOM_LOCATION_NAME ` --host-resource-id $CONNECTED_CLUSTER_ID ` --namespace $NAMESPACE ` --cluster-extension-ids $EXTENSION_ID ``` --- > [!NOTE] > If you have trouble creating a custom location on your cluster, you might need to [enable the custom location feature on your cluster](/azure/azure-arc/kubernetes/custom-locations#enable-custom-locations-on-your-cluster). Enable this feature when you sign in to the CLI by using a service principal or a Microsoft Entra user with restricted permissions on the cluster resource. 1. Wait for the custom location to finish provisioning and save its resource ID. # [Azure CLI](#tab/azure-cli) ```azurecli CUSTOM_LOCATION_ID=$(az customlocation show \ --resource-group $GROUP_NAME \ --name $CUSTOM_LOCATION_NAME \ --query id \ --output tsv) az resource wait --ids $CUSTOM_LOCATION_ID --created --timeout 600 az customlocation show \ --resource-group $GROUP_NAME \ --name $CUSTOM_LOCATION_NAME \ --query "{State:provisioningState,Host:hostResourceId,Namespace:namespace}" \ --output table ``` # [PowerShell](#tab/powershell) ```powershell $CUSTOM_LOCATION_ID=$(az customlocation show ` --resource-group $GROUP_NAME ` --name $CUSTOM_LOCATION_NAME ` --query id ` --output tsv) az resource wait --ids $CUSTOM_LOCATION_ID --created --timeout 600 az customlocation show ` --resource-group $GROUP_NAME ` --name $CUSTOM_LOCATION_NAME ` --query "{State:provisioningState,Host:hostResourceId,Namespace:namespace}" ` --output table ``` --- Check that `State` is `Succeeded`, `Host` identifies the connected cluster you want, and `Namespace` matches `$NAMESPACE`. If provisioning fails, see [Custom location creation fails](azure-arc-troubleshoot.md#custom-location-creation-fails). ## Create the Azure Container Apps connected environment Before you can start creating apps in the custom location, you need an [Azure Container Apps connected environment](azure-arc-create-container-app.md). 1. Create the Container Apps connected environment: # [Azure CLI](#tab/azure-cli) ```azurecli az containerapp connected-env create \ --resource-group $GROUP_NAME \ --name $CONNECTED_ENVIRONMENT_NAME \ --custom-location $CUSTOM_LOCATION_ID \ --location $LOCATION ``` # [PowerShell](#tab/powershell) ```powershell az containerapp connected-env create ` --resource-group $GROUP_NAME ` --name $CONNECTED_ENVIRONMENT_NAME ` --custom-location $CUSTOM_LOCATION_ID ` --location $LOCATION ``` --- 1. Wait for the connected environment to finish provisioning. # [Azure CLI](#tab/azure-cli) ```azurecli CONNECTED_ENVIRONMENT_ID=$(az containerapp connected-env show \ --resource-group $GROUP_NAME \ --name $CONNECTED_ENVIRONMENT_NAME \ --query id \ --output tsv) az resource wait --ids $CONNECTED_ENVIRONMENT_ID --created --timeout 900 az containerapp connected-env show \ --resource-group $GROUP_NAME \ --name $CONNECTED_ENVIRONMENT_NAME \ --query "{State:properties.provisioningState,Location:location,CustomLocation:extendedLocation.name,Domain:properties.defaultDomain}" \ --output yaml ``` # [PowerShell](#tab/powershell) ```powershell $CONNECTED_ENVIRONMENT_ID=$(az containerapp connected-env show ` --resource-group $GROUP_NAME ` --name $CONNECTED_ENVIRONMENT_NAME ` --query id ` --output tsv) az resource wait --ids $CONNECTED_ENVIRONMENT_ID --created --timeout 900 az containerapp connected-env show ` --resource-group $GROUP_NAME ` --name $CONNECTED_ENVIRONMENT_NAME ` --query "{State:properties.provisioningState,Location:location,CustomLocation:extendedLocation.name,Domain:properties.defaultDomain}" ` --output yaml ``` --- Continue only when `State` is `Succeeded` and `CustomLocation` matches the custom location you created in this tutorial. Save the displayed `Domain` for application DNS configuration. If provisioning fails, see [Connected environment creation fails](azure-arc-troubleshoot.md#connected-environment-creation-fails). ## Next steps > [!div class="nextstepaction"] > [Create a container app on Azure Arc](azure-arc-create-container-app.md)
Success! Branch created successfully. Create Pull Request on GitHub
Error: