Proposed Pull Request Change

title description author ms.author ms.reviewer ms.date ms.service ms.topic keywords
Quickstart: Deploy Managed Instance on Azure App Service Learn how to configure Managed Instance on Azure App Service msangapu-msft msangapu maghan 08/28/2026 azure-app-service quickstart ['app service', 'azure app service', 'scale', 'scalable', 'scalability', 'app service plan', 'app service cost']
📄 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: "Quickstart: Deploy Managed Instance on Azure App Service" description: Learn how to configure Managed Instance on Azure App Service author: msangapu-msft ms.author: msangapu ms.reviewer: maghan ms.date: 08/28/2026 ms.service: azure-app-service ms.topic: quickstart keywords: - app service - azure app service - scale - scalable - scalability - app service plan - app service cost --- # Deploy Managed Instance on Azure App Service Managed Instance on Azure App Service combines the simplicity of platform as a service with the flexibility of infrastructure-level control. Managed Instance is designed for applications that require OS customization, private networking, and secure integration with Azure services. [!INCLUDE [managed-instance](./includes/managed-instance/availability-note.md)] In this quickstart, you complete the following steps: 1. Use Azure Developer CLI to deploy sample resources. 1. Create a Managed Instance on Azure App Service. 1. Deploy a sample app. 1. Verify the deployment. ## Migrate an existing .NET app This quickstart shows how to create Managed Instance resources and deploy a sample app. If you're starting with an existing .NET application, you can use [GitHub Copilot modernization for .NET](/dotnet/azure/migration/appmod/overview) in Visual Studio Code to guide the migration from assessment through deployment. [!INCLUDE [copilot-modernization-availability](./includes/managed-instance/copilot-modernization-availability-note.md)] Set the assessment target to `AppServiceManagedInstance.Windows` to analyze the application against Managed Instance-specific guidance. GitHub Copilot modernization can then help you review migration issues, apply remediations, validate the application, prepare Azure resources, and deploy to Managed Instance. To use the agentic migration workflow, see: - [Assess and migrate a .NET project](/dotnet/azure/migration/appmod/quickstart) - [Configure and interpret an application assessment](/dotnet/azure/migration/appmod/working-with-assessment) - [Deploy a migrated project to Azure](/dotnet/azure/migration/appmod/deploy) ## Prerequisites - **Azure account**: You need an Azure account with an active subscription. If you don't already have one, you can [create an account for free](https://azure.microsoft.com/pricing/purchase-options/). - [Managed identity](/entra/identity/managed-identities-azure-resources/manage-user-assigned-managed-identities-azure-portal#create-a-user-assigned-managed-identity) - [Quickstart: Upload, download, and list blobs with the Azure portal](../storage/blobs/storage-quickstart-blobs-portal.md) - **Optional configuration (install) script**: This quickstart uses a PowerShell script named `Install.ps1` in a compressed .zip file to install fonts. Configuration scripts aren't mandatory for Managed Instance. Use a configuration script when your application requires dependencies, operating system-level roles, features, or configuration, or persistent changes that would otherwise be lost after an instance restart. Use RDP for diagnostics rather than persistent configuration. ## Deploy sample resources You can quickly deploy all the necessary resources in this quickstart by using Azure Developer CLI (AZD). The AZD template used in this quickstart is from [Azure samples](https://github.com/Azure-Samples/managed-instance-azure-app-service-quickstart). ```bash mkdir managed-instance-quickstart cd managed-instance-quickstart azd init --template https://github.com/Azure-Samples/managed-instance-azure-app-service-quickstart.git . azd env set AZURE_LOCATION northeurope azd up ``` The `azd up` command does the following actions: 1. Creates a user-assigned managed identity. 1. Creates an Azure Storage Blob. 1. Assigns the managed identity to the storage container and Managed Instance plan. 1. Grants Storage-Blob-Data-Contributor access on the storage container. 1. Compresses included fonts and Install.ps1 into scripts.zip. 1. Upload scripts.zip to the storage container. > [!NOTE] > The configuration script package (`scripts.zip`) deployed with the sample resources contains `Install.ps1`, which copies Microsoft Aptos font files into `C:\Windows\Fonts`. The sample app you deploy uses these fonts. > The following PowerShell code is the configuration (install) script used in the template. ```powershell # Install.ps1 - Copy and register fonts on Managed Instance Write-Host "Installing custom fonts on Managed Instance..." -ForegroundColor Green # Copy all TTF and OTF fonts to Windows Fonts folder and register them Get-ChildItem -Recurse -Include *.ttf, *.otf | ForEach-Object { $FontFullName = $_.FullName $FontName = $_.BaseName + " (TrueType)" $Destination = "$env:windir\Fonts\$($_.Name)" Write-Host "Installing font: $($_.Name)" Copy-Item $FontFullName -Destination $Destination -Force New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts" -Name $FontName -PropertyType String -Value $_.Name -Force | Out-Null } Write-Host "Font installation completed." -ForegroundColor Green ``` The final output of `azd up` should look similar to the following example. ```text === Deployment Complete === Storage Account: stgpjqep6fdlfv6 Container Name: scripts Managed Identity Client name: id-gpjqep6fdlfv6 Resource Group: rg-managed-instance ``` The values for `Storage Account`, `Container Name`, `Managed Identity Client name`, `Resource Group`, and `Script URI` are used later. ## Deploy a Managed Instance plan Follow these steps to create a Managed Instance plan and deploy an app to it: # [Azure portal](#tab/portal) 1. Sign in to the [Azure portal](https://portal.azure.com). 1. Select **+ Create a resource**. 1. Search for **managed instance** 1. Select **Web App (for Managed Instance)** in the results. 1. Select **Create** to start the create process. 1. On the Basic tab, provide the following details. #### Project details | Setting | Value | | --- | --- | | Subscription | Your Azure subscription | | Resource Group | **rg-managed-instance** | #### App details | Setting | Value | | --- | --- | | Name | **contoso-mi-app** | | Runtime stack | **ASPNET V4.8** | | Region | A region near you | #### Pricing plans | Setting | Value | | --- | --- | | Windows Plan | Use default plan or create new (for example, 'contoso-mi-plan') | | Pricing plans* | Select a pricing plan. If Pv4 or Pmv4 isn't visible in _pricing plans_, confirm region availability or request more quota. | On the Advanced tab, provide the following details. #### Configuration (install) script | Setting | Value | | --- | --- | | Storage Account | Use default plan or create new (for example, 'contoso-mi-plan') | | Container | **scripts** | | Zip file | **scripts.zip** | | Value | Verify the .zip URL is correct | | Identity | Select the managed identity that was created earlier | - Select **Review + create** and then select **Create**. # [Cloud Shell](#tab/shell) 1. The following command creates the Managed Instance plan with a configuration (install) script. ```bash az deployment group create \ --resource-group "<resource-group-name>" \ --template-file infra/app-service-plan-managed-instance.json \ --parameters \ location="<location>" \ appServicePlanName="<plan-name>" \ userAssignedIdentityResourceId="<identity-id>" \ installScriptSourceUri="<script-URI>" \ skuName=P1V4 \ skuCapacity=1 ``` Deployment takes several minutes while resources provisioned. 1. The following command creates a web app on the Managed Instance plan. ```bash az webapp create \ --name "<app-name>" \ --resource-group "<resource-group-name>" \ --plan "<plan-name>" \ --runtime "ASPNET:V4.8" ``` 1. The following command assigns a Managed Identity to the web app. ```bash az webapp identity assign \ --name "<app-name>" \ --resource-group "<resource-group-name>" \ --identities "<identity-id>" ``` --- ## Deploy a sample app to Managed Instance In this step, you use Cloud Shell to deploy a sample app that was included in the AZD template to Managed Instance. - The following command deploys the web app to your Managed Instance plan. Update `<app-name>` and `<resource-group>` with your values. ```bash az webapp deploy \ --resource-group "<resource-group-name>" \ --name "<app-name>" \ --src-path app.zip \ --type zip ``` ## Browse to the app To browse to the created app, select the **default domain** in the **Overview** page. The .NET app is running on a Managed Instance plan. The app uses fonts from C:\Windows\Fonts directory. :::image type="content" source="media/quickstart-managed-instance/browse-app-hello-world.png" alt-text="Screenshot that shows the sample app using C:\Windows\Fonts\Aptos.TTF."::: ## Manage the Managed Instance plan To manage your web app, go to the [Azure portal](https://portal.azure.com), and search for and select **App Services**. On the **App Services** page, select the name of your web app. On the **Overview** page, select the name of your App Service plan. Under __Current App Service plan__, select the plan name. In the left menu under __Settings__, select **Configuration** to view the configuration details. ## Clean up resources In the preceding steps, you created Azure resources in a resource group. If you don't expect to need these resources in the future, you can delete them by deleting the resource group. # [Azure portal](#tab/portal) 1. From your web app's **Overview** page in the Azure portal, select the **myResourceGroup** link under **Resource group**. 1. On the resource group page, make sure that the listed resources are the ones you want to delete. 1. Select **Delete resource group**, type **myResourceGroup** in the text box, and then select **Delete**. 1. Confirm again by selecting **Delete**. # [Cloud Shell](#tab/shell) ```bash az group delete ``` --- ## Related content - [Configure Managed Instance](configure-managed-instance.md) - [App Service overview](overview.md) - [Security in App Service](overview-security.md) - [App Service Environment comparison](./environment/overview.md)
Success! Branch created successfully. Create Pull Request on GitHub
Error: