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-06-17Azure Kubernetes ServiceUbuntu 18.04Ubuntu 22.04Upgrade
2025-06-30Azure SQLConnector v1 OperationsConnector v2 OperationsMigrate
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
2025-08-31Azure Cosmos DBTLS 1.0/1.1TLS 1.2Update
2025-08-31Azure Database for MySQL Flexible ServerTLS 1.0/1.1TLS 1.2Update
2025-09-01Azure Machine LearningData DriftModel MonitorMIgrate
2025-09-15Azure MonitorAzure Activity LogsDiagnostic SettingsMigrate
2025-09-19Azure Database for MariaDBEntire ServiceAzure Database for MySQL Flexible ServerMigrate
2025-09-26Azure PurviewData SharingMicrosoft FabricTransition
2025-09-30Azure DisksUnmanaged DisksManaged DisksMigrate
2025-09-30Azure Load BalancerBasic Load BalancerStandard Load BalancerUpgrade
2025-09-30Public IP AddressBasic SKUStandard SKUUpgrade
2025-09-30Azure SQLMicrosoft.SQL 2014-04-01 stable APIsMicrosoft.SQL 2021-11-01 stable APIsTransition
2025-09-30Azure FunctionsProxy SupportN/ATransition
2025-09-30Azure MonitorITSM connector for ServiceNow Alerts & EventsN/ATransition
2025-09-30Azure BatchLow Priority VMsSpot VMsTransition
2025-09-30Application InsightsAPI KeyEntra authenticationUpdate
2025-09-30Azure Machine LearningCLI v1CLI v2Upgrade
2025-09-30Azure Service MapEntire ServiceAzure Monitor VM InsightsMigrate
2025-09-30Application InsightsJava 2.x SDKJava 3x SDKUpgrade
2025-09-30Virtual MachinesDefault Outbound AccessExplicit Outbound MethodsTransition
2025-09-30Azure DB for MySQLMySQL v5.7MySQL v8Upgrade
2025-09-30VPN GatewayStandard & High-Performance SKUsNewer SKUsUpgrade
2025-09-30Azure vFXTEntire ServiceN/ATransition
2025-09-30Azure HPC CacheEntire ServiceN/ATransition
2025-09-30Virtual MachinesStandard_NC6s_v3, Standard_NC12s_v3 & Standard_NC24s_v3Newer seriesUpgrade
2025-09-30Microsoft Defender for CloudMicrosoft Actions & Compliance offeringsN/ATransition
2025-09-30Azure Batch PoolsDefault Outbound AccessExplicit Outbound MethodsTransition
2025-09-30Azure BatchNCv3-series VMsNewer seriesUpgrade
2025-09-30SpeechSpeaker RecognitionNuance Gatekeeper or similarTransition
2025-09-30Azure MapsData Registry API 2023-06-01N/ATransition
2025-09-30Azure MapsCreator Service APIs V2 & 2023-03-01-previewN/ATransition
2025-09-30Azure SQL EdgeEntire ServiceOther SQL editionsMigrate
2025-09-30Azure Remote RenderingEntire ServiceN/ATransition
2025-09-30SpeechIntent RecognitionSpeech RecognitionTransition
2025-09-30Azure MapsSpatial APIs V1 & 2022-08-01N/ATransition
2025-10-01Cognitive ServicesLanguage Understanding (LUIS)Cognitive Service for LanguageMigrate
2025-10-01Azure MonitorLog Analytics alert APIScheduled Query Rules APIUpgrade
2025-10-01App ServicePython 3.9Python 3.10 or higherUpgrade
2025-10-07Azure Synapse AnalyticsData ExplorerEventhouse (Microsoft Fabric)Transition
2025-10-31Azure FunctionsPython 3.9Python 3.10 or higherUpgrade
2025-11-01Azure StorageTLS 1.0/1.1TLS 1.2Update
2025-11-09Azure Database for PostgreSQLFlexibleServers- Version 11FlexibleServers- Version 1 or higherUpgrade
2025-12-31App ServicePHP 8.1PHP 8.4Upgrade

**Updated 6/5/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.