As Azure grows and resources continue to improve, Microsoft will continuously retire old and outdated resources. Any resources not migrated by the retirement date may stop working as Microsoft shuts down the endpoints on which they run. Below is a list of all resources that will be retired within the next six months.

DateRetiring ResourceFeature/VersionNew ResourceMigration Plan
2025-03-01SpeechConversation Transcription Multichannel Audio DiarizationSpeech to Text Enhanced Add-onTransition
2025-03-01Azure Resource ManagerTLS 1.0/1.1TLS 1.2Update
2025-03-01Availability TestsTLS 1.0/1.1TLS 1.2Update
2025-03-03Azure KubernetesHTTP application routing add-onWeb application routing add-onMigrate
2025-03-14Azure Machine LearningExplanation and Fairness DashboardResponsible AI DashboardTransition
2025-03-15Redis EnterpriseEvery-write AOFEvery-second AOFTransition
2025-03-15Application InsightsInstrumentation key–based ingestionConnection string–based ingestionUpdate
2025-03-31API ManagementGit RepositoryAPIOpsMigrate
2025-03-31Azure Computer VisionSpatial Analysis Edge containerAzure AI Video IndexerTransition
2025-03-31Azure MapsFeature State ServicesAzure Maps Creator Custom StylingMIgrate
2025-03-31Azure Container RegistryHelm repositoriesOCI ArtifactsTransition
2025-03-31Azure FunctionsService Bus Extension v4Service Bus Extension v5MIgrate
2025-03-31Visual Studio App CenterEntire ServiceN/AFind Alternative
2025-03-31Cost ManagementConnector for AWSN/AFind Alternative
2025-03-31Azure MapsNative SDK for Android & IOSAzure Maps Web SDKMigrate
2025-03-31Azure SQLConnector v1 actions and triggersConnector v2 actions and triggersTransition
2025-03-31App ServicePlatform Enabled DR for App Service Web AppsImplement managed DR planUpdate\Upgrade
2025-03-31Container InsightsContainer Monitoring solutionAzure Monitor container insightsTransition
2025-03-31Azure Database for PostgreSQLAzure Database for PostgreSQL Single ServerAzure Database for PostgreSQL Flexible ServerMigrate
2025-03-31Azure SynapseAzure Synapse Runtime for Apache Spark 3.3Azure Synapse Runtime for Apache Spark 3.4Upgrade
2025-03-31Cognitive ServicesQnA MakerCustom Question AnsweringMigrate
2025-03-31HDInsight4.0/5.05.1Migrate
2025-03-31Virtual MachinesStandard_NC24rs_v3NC24ads_A100_v4 (or similar)Resize
2025-03-31Azure Spring AppsStandard consumption and dedicated plan (preview)Azure Container AppsMigrate
2025-03-31Azure PortalPublic preview templatesTemplate SpecsConvert
2025-04-23Azure BatchUbuntu 20.04Ubuntu 22.04 or laterMigrate
2025-04-30App ServiceNode 18Node 20Upgrade
2025-05-01Application InsightsTLS 1.0/1.1TLS 1.2Update
2025-05-24Azure Arc-enabled KubernetesFlux v1Flux v2MIgrate
2025-06-30SAP HANA Large Instances (HLIs)Entire ServiceAzure Virtual MachinesMigrate
2025-08-31Application GatewayTLS 1.0/1.1TLS 1.2Update
2025-08-31Azure SQL DBTLS 1.0/1.1TLS 1.2Update
2025-08-31Azure IoT HubTLS 1.0/1.1TLS 1.2Update
2025-08-31Azure SQL Managed InstanceTLS 1.0/1.1TLS 1.2Update

**Updated 3/9/2025**

There are several ways to determine if your environment is running these retiring resources.

Email

Microsoft will send out emails regularly with information about resources in your tenant that are being retired. It will include a list of resources affected, information about what is being retired, and a plan to transition to the latest version of each resource.

Azure Retiring Resources Email

Portal

When accessing resources in the portal, Microsoft will show a notification on any resource that is being retired. It may include a link to documentation on transitioning to the latest version and a link to do a step-by-step migration using their wizard.

Azure Retiring Resources Portal
Azure Retiring Resources Email Migration Link

Azure Advisor

Azure provides a resource called Advisor, which contains a Workbook that compiles a list of all resources announced as retiring. To access this, log into the portal and go to Advisor. On the left panel, select Workbooks. Choose the Service Retirement (Preview) from the list by clicking on it. Here, you can see a list of all resources being retired and any affected resources in your tenant. You can edit and save the Workbook and pin it to a Dashboard for easy access.

Azure Retiring Resources Azure Advisor

CLI

Either Azure CLI or PowerShell can be used to search for resources programmatically.  In the below example, the Azure CLI can be used to find all Classic resources. 

# Define the tenant ID
$tenantId = "XXXXXXXXXXX"

# Connect to Azure with the specific tenant
az login --tenant $tenantId

# Get all subscriptions in the specified tenant
$subscriptions = az account list --query "[?tenantId=='$tenantId'].{id:id, name:name}" --output json | ConvertFrom-Json

# Initialize array to hold all classic resources across all subscriptions
$allClassicResources = @()

# Loop through each subscription
foreach ($subscription in $subscriptions) {
    Write-Output "Processing subscription: $($subscription.name)"

    # Set the current subscription context
    az account set --subscription $subscription.id

    # List classic resources in the current subscription
    $classicResources = az resource list --query "[?contains(type, 'Classic')]" --output json | ConvertFrom-Json

    # Add subscription ID and name to each resource for context
    foreach ($resource in $classicResources) {
        $resource | Add-Member -MemberType NoteProperty -Name SubscriptionId -Value $subscription.id
        $resource | Add-Member -MemberType NoteProperty -Name SubscriptionName -Value $subscription.name
        $allClassicResources += $resource
    }
}

# Display the classic resources
if ($allClassicResources.Count -eq 0) {
    Write-Output "No classic resources found across all subscriptions."
} else {
    Write-Output "Classic resources found across all subscriptions:"
    $allClassicResources | ForEach-Object {
        Write-Output "Subscription: $($_.SubscriptionName) ($($_.SubscriptionId))"
        Write-Output "Name: $($_.name)"
        Write-Output "Type: $($_.type)"
        Write-Output "Resource Group: $($_.resourceGroup)"
        Write-Output "Location: $($_.location)"
        Write-Output "---------------------------"
    }
}

For more information or any questions, please contact us.