Share via


De functie voor side-by-side migratie gebruiken om App Service Environment v2 te migreren naar App Service Environment v3

Notitie

De migratiefunctie die in dit artikel wordt beschreven, wordt gebruikt voor automatische migratie van App Service Environment v2 naar App Service Environment v3 naast elkaar (ander subnet).

Als u op zoek bent naar informatie over de in-place migratiefunctie, raadpleegt u Migreren naar App Service Environment v3 met behulp van de in-place migratiefunctie. Als u op zoek bent naar informatie over opties voor handmatige migratie, raadpleegt u Opties voor handmatige migratie. Zie de beslissingsstructuur van het migratiepad voor hulp bij het bepalen welke migratieoptie geschikt is voor u. Zie het overzicht van App Service Environment v3 voor meer informatie over App Service Environment v3.

U kunt App Service Environment v2 automatisch migreren naar App Service Environment v3 met behulp van de functie voor side-by-side-migratie. Zie het overzicht van de migratiefunctie naast elkaar voor meer informatie over het migratieproces en om te zien of uw App Service Environment op dit moment ondersteuning biedt voor migratie.

Belangrijk

We raden u aan deze functie te gebruiken voor ontwikkelomgevingen voordat u productieomgevingen migreert, om onverwachte problemen te voorkomen. Geef feedback met betrekking tot dit artikel of de functie met behulp van de knoppen onder aan de pagina.

Vereisten

Zorg ervoor dat u begrijpt hoe migratie naar App Service Environment v3 van invloed is op uw toepassingen. Bekijk het migratieproces om inzicht te krijgen in de tijdlijn van het proces en waar en wanneer u betrokken moet raken. Bekijk ook de veelgestelde vragen, die enkele van uw vragen kunnen beantwoorden.

Zorg ervoor dat uw virtuele netwerk, resourcegroepen, resources of abonnement niet zijn vergrendeld. Blokkeer platformbewerkingen tijdens de migratie.

Zorg ervoor dat er geen Azure-beleid acties blokkeert die vereist zijn voor de migratie, inclusief subnetwijzigingen en Azure-app Service-resourcecreaties. Beleidsregels die resourcewijzigingen en -creaties blokkeren, kunnen ertoe leiden dat de migratie vastloopt of mislukt.

Omdat uw App Service Environment v3 zich in een ander subnet in uw virtuele netwerk bevindt, moet u ervoor zorgen dat u een beschikbaar subnet in uw virtuele netwerk hebt dat voldoet aan de subnetvereisten voor App Service Environment v3. Het subnet dat u selecteert, moet ook kunnen communiceren met het subnet waarin uw bestaande App Service Environment zich bevindt. Zorg ervoor dat er niets is dat de communicatie tussen de twee subnetten blokkeert. Als u geen beschikbaar subnet hebt, moet u er een maken voordat u migreert. Het maken van een nieuw subnet kan betrekking hebben op het vergroten van de adresruimte van uw virtuele netwerk. Zie Een virtueel netwerk en subnet maken voor meer informatie.

Omdat schalen tijdens de migratie wordt geblokkeerd, moet u uw omgeving schalen naar de gewenste grootte voordat u de migratie start. Als u de schaal van uw omgeving na de migratie wilt aanpassen, kunt u dit doen zodra de migratie is voltooid.

Volg de stappen die hier worden beschreven in volgorde en zoals geschreven, omdat u Azure REST API-aanroepen maakt. U wordt aangeraden de Azure CLI te gebruiken om deze API-aanroepen uit te voeren. Zie azure REST API-naslaginformatie voor meer informatie over andere methoden.

Voor deze handleiding installeert u de Azure CLI of gebruikt u Azure Cloud Shell en gebruikt u een Bash-shell.

Notitie

U wordt aangeraden een Bash-shell te gebruiken om de opdrachten uit te voeren die in deze handleiding worden gegeven. De opdrachten zijn mogelijk niet compatibel met PowerShell-conventies en escapetekens.

Belangrijk

Tijdens de migratie kan azure Portal onjuiste informatie over uw App Service Environment en uw apps weergeven. Ga niet naar de migratie-ervaring in De Azure-portal, omdat de functie voor side-by-side-migratie daar niet beschikbaar is. U wordt aangeraden de Azure CLI te gebruiken om de status van uw migratie te controleren. Als u vragen hebt over de status van uw migratie of uw apps, neemt u contact op met de ondersteuning.

1. Selecteer het subnet voor uw nieuwe App Service Environment v3

Selecteer een subnet in uw App Service Environment v3 dat voldoet aan de subnetvereisten voor App Service Environment v3. Noteer de naam van het subnet dat u selecteert. Dit subnet moet afwijken van het subnet waarin uw bestaande App Service-omgeving zich bevindt.

2. Haal uw App Service Environment-id op

Voer de volgende opdrachten uit om uw App Service Environment-id op te halen en op te slaan als een omgevingsvariabele. Vervang de tijdelijke aanduidingen voor de naam en resourcegroepen door uw waarden voor de App Service-omgeving die u wilt migreren. ASE_RG en VNET_RG hetzelfde zijn als uw virtuele netwerk en App Service Environment zich in dezelfde resourcegroep bevinden.

ASE_NAME=<Your-App-Service-Environment-name>
ASE_RG=<Your-ASE-Resource-Group>
VNET_RG=<Your-VNet-Resource-Group>
ASE_ID=$(az appservice ase show --name $ASE_NAME --resource-group $ASE_RG --query id --output tsv)

3. Valideren dat migratie wordt ondersteund

Met de volgende opdracht wordt gecontroleerd of uw App Service-omgeving wordt ondersteund voor migratie. Als er een fout optreedt of als uw App Service-omgeving de status Niet in orde of onderbroken heeft, kunt u op dit moment niet migreren. Zie de sectie probleemoplossing voor beschrijvingen van de mogelijke foutberichten die u kunt krijgen. Als uw omgeving niet wordt ondersteund voor migratie met behulp van de migratiefunctie naast elkaar of als u wilt migreren naar App Service Environment v3 zonder de functie voor naast elkaar te gebruiken, raadpleegt u de handmatige migratieopties. Met deze opdracht wordt ook gevalideerd of uw App Service-omgeving de ondersteunde buildversie voor migratie heeft. Als uw App Service Environment zich niet in de ondersteunde buildversie bevindt, moet u de upgrade zelf starten. Zie Valideren dat migratie wordt ondersteund met behulp van de functie voor migratie naast elkaar voor uw App Service-omgeving voor meer informatie over de premigratie-upgrade.

az rest --method post --uri "${ASE_ID}/NoDowntimeMigrate?phase=Validation&api-version=2022-03-01"

Als er geen fouten zijn, wordt uw migratie ondersteund en kunt u doorgaan met de volgende stap.

Als u een upgrade wilt starten om uw App Service Environment te upgraden naar de ondersteunde buildversie, voert u de volgende opdracht uit. Voer deze opdracht alleen uit als u de validatiestap mislukt en u wordt geïnstrueerd om uw App Service-omgeving te upgraden.

az rest --method post --uri "${ASE_ID}/NoDowntimeMigrate?phase=PreMigrationUpgrade&api-version=2022-03-01"

4. Uitgaande IP-adressen genereren voor uw nieuwe App Service Environment v3

Maak een bestand met de naam zoneredundancy.json met de volgende details voor uw regio- en zoneredundantieselectie.

{
    "location":"<region>",    
    "Properties": {
        "zoneRedundant": "<true/false>"
    }
}

U kunt uw nieuwe App Service Environment v3-zone redundant maken als uw bestaande omgeving zich in een regio bevindt die zoneredundantie ondersteunt. Zoneredundantie kan worden geconfigureerd door de zoneRedundant eigenschap in te stellen op true. Zoneredundantie is een optionele configuratie. Deze configuratie kan alleen worden ingesteld tijdens het maken van uw nieuwe App Service Environment v3 en kan later niet worden verwijderd.

Voer de volgende opdracht uit om nieuwe uitgaande IP-adressen te maken. Deze stap duurt ongeveer 15 minuten. Schaal of breng gedurende deze tijd geen wijzigingen aan in uw bestaande App Service-omgeving.

az rest --method post --uri "${ASE_ID}/NoDowntimeMigrate?phase=PreMigration&api-version=2022-03-01" --body @zoneredundancy.json

Voer de volgende opdracht uit om de status van deze stap te controleren:

az rest --method get --uri "${ASE_ID}?api-version=2022-03-01" --query properties.status

Als de stap wordt uitgevoerd, krijgt u de status Migrating. Nadat u de status hebt, Readyvoert u de volgende opdracht uit om uw nieuwe uitgaande IP-adressen weer te geven. Als u de nieuwe IP-adressen niet onmiddellijk ziet, wacht u enkele minuten en probeert u het opnieuw.

az rest --method get --uri "${ASE_ID}/configurations/networking?api-version=2022-03-01" --query properties.windowsOutboundIpAddresses

5. Afhankelijke resources bijwerken met nieuwe uitgaande IP-adressen

Door de nieuwe uitgaande IP-adressen te gebruiken, moet u een van uw resources of netwerkonderdelen bijwerken om ervoor te zorgen dat uw nieuwe omgeving functioneert zoals bedoeld nadat de migratie is voltooid. Het is uw verantwoordelijkheid om eventuele benodigde updates te maken.

6. Uw App Service Environment-subnet delegeren

App Service Environment v3 vereist dat het subnet waarin het zich bevindt één delegering heeft Microsoft.Web/hostingEnvironments. Voor eerdere versies is deze delegatie niet vereist. U moet controleren of uw subnet correct is gedelegeerd en de overdracht (indien nodig) bijwerken voordat u migreert. U kunt de overdracht bijwerken door de volgende opdracht uit te voeren of door naar het subnet in Azure Portal te gaan.

az network vnet subnet update --resource-group $VNET_RG --name <subnet-name> --vnet-name <vnet-name> --delegations Microsoft.Web/hostingEnvironments

7. Controleer of het virtuele netwerk geen vergrendelingen bevat

Virtuele netwerk vergrendelt platformbewerkingen tijdens de migratie. Als uw virtuele netwerk vergrendelingen heeft, moet u deze verwijderen voordat u migreert. Indien nodig kunt u de vergrendelingen weer toevoegen nadat de migratie is voltooid.

Vergrendelingen kunnen bestaan op drie bereiken: abonnement, resourcegroep en resource. Wanneer u een vergrendeling toepast op een bovenliggend bereik, nemen alle resources binnen dat bereik dezelfde vergrendeling over. Als u vergrendelingen hebt toegepast op het abonnement, de resourcegroep of het resourcebereik, moet u deze vóór de migratie verwijderen. Zie Uw resources vergrendelen om uw infrastructuur te beveiligen voor meer informatie over vergrendelingen en overname van vergrendelingen.

Gebruik de volgende opdracht om te controleren of uw virtuele netwerk vergrendelingen heeft:

az lock list --resource-group $VNET_RG --resource <vnet-name> --resource-type Microsoft.Network/virtualNetworks

Verwijder bestaande vergrendelingen met behulp van de volgende opdracht:

az lock delete --resource-group $VNET_RG --name <lock-name> --resource <vnet-name> --resource-type Microsoft.Network/virtualNetworks

Zie de Azure CLI-verwijzing voor vergrendelingen voor gerelateerde opdrachten om te controleren of uw abonnement of resourcegroep vergrendelingen heeft.

8. Uw configuraties voorbereiden

Als uw bestaande App Service Environment gebruikmaakt van een aangepast domeinachtervoegsel, moet u er een configureren voor uw nieuwe App Service Environment v3-resource tijdens het migratieproces. Migratie mislukt als u geen aangepast domeinachtervoegsel configureert en er momenteel een gebruikt. Zie aangepast domeinachtervoegsel voor App Service Environment v3 voor meer informatie over aangepaste domeinachtervoegsels, waaronder vereisten, stapsgewijze instructies en aanbevolen procedures voor aangepast domein voor App Service Environments.

Notitie

Als u een aangepast domeinachtervoegsel configureert en u de netwerkmachtigingen aan uw Azure-sleutelkluis toevoegt, moet u ervoor zorgen dat uw sleutelkluis toegang toestaat vanuit het nieuwe subnet van uw App Service Environment v3.

Als u deze configuraties wilt instellen, inclusief het identificeren van het subnet dat u eerder hebt geselecteerd, maakt u een ander bestand met de naam parameters.json met de volgende details op basis van uw scenario. Zorg ervoor dat u het nieuwe subnet gebruikt dat u hebt geselecteerd voor uw nieuwe App Service Environment v3. Neem de eigenschappen voor een aangepast domeinachtervoegsel niet op als deze functie niet van toepassing is op uw migratie. Let op de waarde van de zoneRedundant eigenschap en stel deze in op dezelfde waarde die u hebt gebruikt in de stap voor het genereren van uitgaande IP-adressen. U moet dezelfde waarde gebruiken voor zoneredundantie die u hebt gebruikt in de stap voor het genereren van uitgaande IP-adressen.

Als u migreert zonder een aangepast domeinachtervoegsel, gebruikt u deze code:

{
    "Properties": {
        "VirtualNetwork": {
            "Id": "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Network/virtualNetworks/<virtual-network-name>/subnets/<subnet-name>"
        },
        "zoneRedundant": "<true/false>"
    }
}

Als u een door de gebruiker toegewezen beheerde identiteit gebruikt voor de configuratie van het aangepaste domeinachtervoegsel, gebruikt u deze code:

{
    "Properties": {
        "VirtualNetwork": {
            "Id": "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Network/virtualNetworks/<virtual-network-name>/subnets/<subnet-name>"
        },
        "zoneRedundant": "<true/false>",
        "customDnsSuffixConfiguration": {
            "dnsSuffix": "internal.contoso.com",
            "certificateUrl": "https://contoso.vault.azure.net/secrets/myCertificate",
            "keyVaultReferenceIdentity": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/asev3-migration/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ase-managed-identity"
        }
    }
}

Als u een door het systeem toegewezen beheerde identiteit gebruikt voor de configuratie van het aangepaste domeinachtervoegsel, gebruikt u deze code:

{
    "properties": {
        "VirtualNetwork": {
            "Id": "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Network/virtualNetworks/<virtual-network-name>/subnets/<subnet-name>"
        },
        "zoneRedundant": "<true/false>",
        "customDnsSuffixConfiguration": {
            "dnsSuffix": "internal.contoso.com",
            "certificateUrl": "https://contoso.vault.azure.net/secrets/myCertificate",
            "keyVaultReferenceIdentity": "SystemAssigned"
        }
    }
}

9. Migreren naar App Service Environment v3 en de status controleren

Nadat u alle voorgaande stappen hebt voltooid, kunt u de migratie starten. Zorg ervoor dat u de gevolgen van de migratie begrijpt.

Deze stap duurt drie tot zes uur. Gedurende die tijd is er geen downtime voor toepassingen. Schalen, implementaties en wijzigingen in uw bestaande App Service-omgeving worden tijdens deze stap geblokkeerd.

Voer de volgende opdracht uit om de migratie te starten:

az rest --method post --uri "${ASE_ID}/NoDowntimeMigrate?phase=HybridDeployment&api-version=2022-03-01" --body @parameters.json

Voer de volgende opdracht uit om de status van uw migratie te controleren:

az rest --method get --uri "${ASE_ID}?api-version=2022-03-01" --query properties.subStatus

Nadat u de status hebt, MigrationPendingDnsChangewordt de migratie uitgevoerd en hebt u een App Service Environment v3-resource. Uw apps worden nu uitgevoerd in uw nieuwe omgeving en in uw oude omgeving.

Haal de details van uw nieuwe omgeving op door de volgende opdracht uit te voeren:

az appservice ase show --name $ASE_NAME --resource-group $ASE_RG

Belangrijk

Tijdens de migratie en tijdens de MigrationPendingDnsChange stap toont Azure Portal onjuiste informatie over uw App Service Environment en uw apps. Gebruik de Azure CLI om de status van uw migratie te controleren. Als u vragen hebt over de status van uw migratie of uw apps, neemt u contact op met de ondersteuning.

Notitie

Als uw migratie een aangepast domeinachtervoegsel bevat, kan de configuratie van het aangepaste domeinachtervoegsel worden weergegeven als gedegradeerd zodra de migratie is voltooid vanwege een bekende fout. Uw App Service Environment werkt nog steeds zoals verwacht. De gedegradeerde status moet zichzelf binnen 6-8 uur oplossen. Als de configuratie na 8 uur is gedegradeerd of als het achtervoegsel van uw aangepaste domein niet werkt, neemt u contact op met de ondersteuning.

Schermopname van een voorbeeld van een gedegradeerde configuratie van aangepast domeinachtervoegsel.

10. Haal de binnenkomende IP-adressen voor uw nieuwe App Service Environment v3 op en werk afhankelijke resources bij

In deze fase hebt u twee App Service-omgevingen in het migratieproces. Uw apps worden uitgevoerd in beide omgevingen. U moet afhankelijke resources bijwerken om het nieuwe binnenkomende IP-adres voor uw nieuwe App Service Environment v3 te gebruiken. Voor interne App Service Environments (ILB) moet u uw privé-DNS-zones bijwerken om te verwijzen naar het nieuwe binnenkomende IP-adres.

U kunt het nieuwe binnenkomende IP-adres voor uw nieuwe App Service Environment v3 ophalen door de volgende opdracht uit te voeren die overeenkomt met het load balancertype van uw App Service Environment. Het is uw verantwoordelijkheid om eventuele benodigde updates te maken.

Voor ILB App Service Environments haalt u het privé-binnenkomende IP-adres op door de volgende opdracht uit te voeren:

az rest --method get --uri "${ASE_ID}?api-version=2022-03-01" --query properties.networkingConfiguration.internalInboundIpAddresses

Voor ELB App Service-omgevingen haalt u het openbare binnenkomende IP-adres op door de volgende opdracht uit te voeren:

az rest --method get --uri "${ASE_ID}?api-version=2022-03-01" --query properties.networkingConfiguration.externalInboundIpAddresses

11. Klantverkeer omleiden, uw App Service Environment v3 valideren en de migratie voltooien

Deze stap is de kans om uw nieuwe App Service Environment v3 te testen en te valideren. Standaard wordt verkeer verzonden naar de front-ends van uw App Service Environment v2. Als u een ILB App Service Environment v3 gebruikt, kunt u de front-ends van uw App Service Environment v3 testen door uw privé-DNS-zone bij te werken met het nieuwe binnenkomende IP-adres. Als u een ELB App Service Environment v3 gebruikt, is het proces voor testen afhankelijk van uw specifieke netwerkconfiguratie. Een eenvoudige methode om te testen voor ELB-omgevingen is het bijwerken van uw hosts-bestand om uw nieuwe binnenkomende IP-adres van App Service Environment v3 te gebruiken. Als u aangepaste domeinen hebt toegewezen aan uw afzonderlijke apps, kunt u hun DNS ook bijwerken zodat deze verwijst naar het nieuwe binnenkomende IP-adres. Door deze wijziging te testen, kunt u uw App Service Environment v3 volledig valideren voordat u de laatste stap van de migratie start waar uw oude App Service-omgeving wordt verwijderd. Als u zonder problemen toegang hebt tot uw apps, betekent dit dat u klaar bent om de migratie te voltooien.

Zodra u hebt bevestigd dat uw apps werken zoals verwacht, kunt u klantverkeer omleiden naar uw nieuwe App Service Environment v3 door de volgende opdracht uit te voeren. Met deze opdracht verwijdert u ook uw oude omgeving. U hebt 14 dagen de tijd om deze stap te voltooien. Als u deze stap niet binnen 14 dagen voltooit, wordt uw migratie automatisch teruggezet naar een App Service Environment v2. Neem contact op met ondersteuning als u meer dan 14 dagen nodig hebt om deze stap te voltooien.

Als u problemen ondervindt of op dit moment besluit dat u niet langer wilt doorgaan met de migratie, neemt u contact op met de ondersteuning om de migratie terug te zetten. Voer de opdracht DNS-wijziging niet uit als u de migratie wilt terugzetten. Zie Migratie herstellen voor meer informatie.

az rest --method post --uri "${ASE_ID}/NoDowntimeMigrate?phase=DnsChange&api-version=2022-03-01"

Voer de volgende opdracht uit om de status van deze stap te controleren:

az rest --method get --uri "${ASE_ID}?api-version=2022-03-01" --query properties.subStatus

Tijdens deze stap krijgt u de status CompletingMigration. Wanneer u de status krijgt, wordt de stap voor het omleiden van MigrationCompletedverkeer uitgevoerd en is uw migratie voltooid.

Volgende stappen