Verbruiksabonnement-apps migreren naar het Flex Consumption-abonnement

In dit artikel leest u hoe u uw bestaande functie-apps migreert van het Verbruiksabonnement naar het Flex Consumption-abonnement. Voor de meeste apps is deze migratie eenvoudig. Apps die migreren van Windows moeten ook compatibel zijn met Linux en kunnen codewijzigingen vereisen.

Belangrijk

Ondersteuning voor het hosten van functie-apps op Linux in een verbruiksabonnement wordt op 30 september 2028 buiten gebruik gesteld. Vanaf vandaag worden functie- en taalverbeteringen niet doorgevoerd in het Linux-verbruiksabonnement. Volg dit artikel om uw consumptieplan-apps te migreren, zodat ze worden uitgevoerd in het Flex Consumption-plan. Zie Azure Functions Hosting van verbruiksabonnementen (verouderd) voor meer informatie over einddatums van het Linux-verbruiksabonnement.

Migratiemethoden

Dit artikel ondersteunt het migreren naar een Linux-functie-app in een Flex Consumption-abonnement voor zowel Linux- als Windows-apps. Functions biedt verschillende manieren om de meeste migratiestappen te stroomlijnen, met name voor Linux-apps.

In de volgende tabel ziet u welke migratiemethoden beschikbaar zijn voor elk besturingssysteem en die in dit artikel worden behandeld.

Migratiemethode Beschrijving Linux Windows
Azure Skills in GitHub Copilot Laat Copilot je migratie interactief begeleiden en automatiseren. ✅ ✅
CLI-migratieopdracht Gebruik az functionapp flex-migration dit om de migratie te automatiseren. ✅ ❌
Standaard CLI-opdrachten Stapsgewijze migratie met behulp van Azure CLI opdrachten. ➖ ✅
Azure-portal Stapsgewijze migratie in de Azure-portal. ✅ ✅
Infrastructuur als code Herhaalbare migratiecode maken met ARM-sjablonen, Bicep-bestanden of Terraform. ➖ ➖

✅ Ondersteund en aanbevolen | ➖ Ondersteund, niet aanbevolen | ❌ Niet ondersteund

Als u de juiste instructies voor uw app wilt zien, selecteert u het besturingssysteem bovenaan het artikel.

Je kunt de Linux Consumption-migratieworkflow en Windows Consumption-migratieworkflow bekijken in de Azure skills-repository.

Wat u kunt verwachten

De specifieke stappen die nodig zijn om uw verbruiksabonnement-app te migreren, zijn afhankelijk van zowel het besturingssysteem als uw specifieke migratiemethode:

Stel GitHub Copilot in met de vereiste vereisten, en gebruik vervolgens de prompt in Start de migratie. Copilot begeleidt je bij assessment, Windows-naar-Linux-codevoorbereiding, doelaanmaak en -configuratie, deployment, validatie en productie-overgang. Het vraagt om jouw input of goedkeuring wanneer dat nodig is.

De volgende secties leggen de controles en migratietaken uit ter referentie. Je hoeft de handmatige CLI of portalstappen niet uit te voeren wanneer je de Copilot-workflow volgt.

Copilot houdt de bron-app in alleen-lezenmodus tijdens beoordeling en replicatie. Wijzigingen aan brontriggers, instellingen, appstatus of resources vereisen expliciete goedkeuring voor de specifieke actie.

Ongeacht uw migratiemethode zijn dit de algemene principes van de migratie:

  • Controleer de codecompatibiliteit. Linux-apps in een ondersteunde taalversie hebben over het algemeen geen codewijzigingen nodig. Windows-apps moeten ook Windows-specifieke afhankelijkheden verwijderen voordat ze op Linux draaien. Deze handleiding helpt u bij het controleren.
  • U moet een nieuwe app maken. Tijdens het migratieproces maakt u een nieuwe Flex Consumption-app naast uw bestaande app, zodat u kunt testen voordat u overschakelt.
  • Gebruik dezelfde resourcegroep. Uw nieuwe app wordt uitgevoerd in dezelfde resourcegroep met toegang tot dezelfde afhankelijkheden.
  • U bepaalt de timing. Test uw nieuwe app grondig voordat u verkeer omleidt en de oude buiten gebruik stellen.

Opmerking

Als u Azure Government gebruikt, is Flex Consumption nog niet beschikbaar. Bekijk deze richtlijnen nu zodat u klaar bent wanneer deze beschikbaar is.

Voordelen van migreren naar Flex Consumption

Wanneer je een compatibele app migreert, krijgen je functies de volgende voordeel:

  • Snellere koude start: altijd gereede exemplaren betekenen dat uw functies sneller reageren.
  • Betere schaalaanpassing: Instellingen voor schalen per functie en gelijktijdigheid geven u meer controle.
  • Ondersteuning voor virtuele netwerken: Verbind uw functies met privénetwerken en gebruik privé-eindpunten.
  • Actieve investering: Flex Consumption is waar nieuwe functies en verbeteringen het eerst terechtkomen.

Zie De voordelen van flexverbruiksabonnementen en de vergelijking van hostingabonnementen voor meer informatie.

Resource-gebaseerde implementaties

In dit artikel wordt niet expliciet getoond hoe u infrastructuur als code (IaC) gebruikt voor migratie. U kunt echter dezelfde migratiestappen volgen om uw ARM-sjablonen, Bicep-bestanden en Terraform-configuraties te converteren.

Het Flex Consumption-abonnement introduceert een nieuwe sectie functionAppConfig in de resourcedefinitie Microsoft.Web/sites, die verschillende verouderde app-instellingen vervangt. Zie De afschaffingen van flexverbruiksabonnementen voor meer informatie over deze wijzigingen.

Deze resources kunnen u helpen aan de slag te gaan met implementaties van Flex Consumption-resources:

Werk na een geslaagde migratie uw resource-implementatiebestanden bij zodat deze overeenkomt met de nieuwe configuratie van Flex Consumption.

Vereiste voorwaarden

  • Toegang tot het Azure-abonnement met een of meer functie-apps die moeten worden gemigreerd. Het account dat wordt gebruikt om de migratietaken uit te voeren, moet de volgende machtigingen hebben:

    • Functie-apps en App Service-hostingabonnementen maken en beheren.
    • Rollen toewijzen aan beheerde identiteiten.
    • Opslagaccounts maken en beheren.
    • Application Insights-resources maken en beheren.
    • Toegang tot alle afhankelijke resources van uw app, zoals Azure Key Vault, Azure Service Bus of Azure Event Hubs.

    Het toewijzen van de rollen Eigenaar of Inzender in uw resourcegroep biedt over het algemeen voldoende machtigingen.

  • Migreren met behulp van de Azure CLI of GitHub Copilot:

    • Azure CLI, versie 2.77.0 of hoger. Vereist bij het gebruik van Azure CLI opdrachten. De scripts worden getest met behulp van Azure CLI in Azure Cloud Shell.
    • Meld u aan bij Azure CLI door az login uit te voeren. Zorg ervoor dat u bent aangemeld bij het abonnement met de functie-applicaties die u wilt migreren.
    az extension add --name resource-graph
    
  • Als u wilt migreren met behulp van GitHub Copilot, configureert u GitHub Copilot in de gewenste modus:

    1. Copilot CLI installeren

    2. Meld u aan bij Azure CLI als u dat nog niet hebt gedaan:

      az login
      

      Zorg ervoor dat u bent aangemeld bij het abonnement met de functie-applicaties die u wilt migreren.

    3. Start de CLI van Copilot:

      copilot
      
    4. Voeg de marketplace-bron toe (alleen voor de eerste keer):

      /plugin marketplace add microsoft/azure-skills
      
    5. Installeer de invoegtoepassing:

      /plugin install azure@azure-skills
      
    6. Na de installatie laadt u MCP-servers (Model Context Protocol) opnieuw:

      /mcp reload
      
    7. Installatie controleren:

      /mcp show
      

      U ziet nu dat de Azure-invoegtoepassing wordt vermeld met een vinkje. Het functionapp hulpprogramma maakt deel uit van deze invoegtoepassing.

    Aanbeveling

    Als Copilot gericht is op het verkeerde abonnement, vraagt u het om een specifieke abonnements-id te gebruiken. U kunt uw abonnements-id vinden door deze uit te voeren az account show --query id -o tsv. Als Copilot verbinding maakt met de verkeerde Azure tenant, vraagt u Copilot om uw specifieke tenant-id te gebruiken bij het maken van Azure aanroepen. U kunt uw tenant-id vinden door deze uit te voeren az account show --query tenantId -o tsv.

Potentiële apps identificeren die moeten worden gemigreerd

Aanbeveling

Weet u al welke app u wilt migreren? U kunt deze sectie overslaan en direct naar Uw bestaande app evalueren gaan.

Als u meerdere functie-apps hebt en niet zeker weet welke functies moeten worden gemigreerd, kunt u deze vinden in deze sectie. U krijgt een lijst met app-namen, resourcegroepen, locaties en runtimestacks.

Als u een interactieve migratie wilt starten waarmee uw abonnement wordt gescand en u wordt gevraagd om te kiezen welke apps u wilt migreren, gebruikt u deze prompt:

migrate my linux function apps in azure from consumption to flex consumption

Copilot identificeert uw in aanmerking komende Linux-verbruiksapps, kunt u kiezen welke apps u wilt migreren en begeleidt u vervolgens bij de evaluatie, het maken, configureren en implementeren van apps voor elke app. Ga door naar de migratiestappen.

Als u alleen wilt zien welke apps in aanmerking komen zonder de migratie te starten, gebruikt u in plaats daarvan deze prompt:

list my linux consumption apps eligible for flex consumption migration

Copilot retourneert een lijst met in aanmerking komende en niet-in aanmerking komende apps, samen met de redenen voor eventuele incompatibiliteit. U kunt vervolgens een specifieke app migreren met behulp van de prompt in De migratie voor Linux starten.

Om Windows Consumption-apps in je abonnement te identificeren zonder een migratie te starten, gebruik deze prompt:

What Windows Consumption Function Apps can I upgrade to Flex Consumption?

Copilot ontdekt kandidaat-apps en controleert hun regio, runtime, deploymentconfiguratie en andere compatibiliteitsvereisten. Discovery identificeert kandidaten, maar is geen garantie dat elke app klaar is om te migreren. Bekijk de beoordeling voordat je verder gaat.

Om een specifieke app te migreren, gebruik je de prompt in Start the migration.

Uw bestaande app evalueren

De Azure vaardigheid voert deze taken automatisch voor u uit. Wanneer u de Azure vaardigheid gebruikt, gaat u rechtstreeks naar Start de migratie.

Voordat u migreert, voert u deze snelle controlelijst uit om te controleren of uw app gereed is. De meeste apps geven deze controles zonder problemen door:

Bij het gebruik van Copilot vraag dan een assessment aan zonder een doel-app aan te maken:

Assess whether my Windows Consumption Function App <APP_NAME> is ready to migrate to Flex Consumption.

Vervang <APP_NAME> door de naam van je bron-app. Copilot genereert een compatibiliteitsbeoordeling en registreert blokkeringen en de vereiste voorbereiding. Voor Windows-apps controleer ook Windows-specifieke code-afhankelijkheden.

Regiocompatibiliteit bevestigen

Controleer of het Flex Consumption-plan momenteel wordt ondersteund in dezelfde regio als de Verbruiksplan-app die u wilt migreren.

Confirmed: Wanneer de uitvoer van de opdracht az functionapp flex-migration list of de Copilot-evaluatie uw app bevat in de lijst eligible_apps, wordt het Flex Consumption-plan ondersteund in dezelfde regio als die van uw huidige Linux-verbruiksapp. In dit geval kunt u de compatibiliteit van de taalstack blijven controleren.

Actie vereist: Wanneer de uitvoer uw app in de ineligible_apps lijst bevat, ziet u een foutbericht met de melding The site '<name>' is not in a region supported in Flex Consumption. Please see the list of regions supported in Flex Consumption by running az functionapp list-flexconsumption-locations. In dit geval wordt het Flex Consumption-abonnement niet ondersteund in de regio die wordt gebruikt door uw huidige Linux Consumption-app.

Copilot controleert of Flex Consumption beschikbaar is in de regio van de bron-app en registreert het resultaat in de beoordeling. Als de regio niet wordt ondersteund, los dan de locatiekeuze op voordat je de doel-app aanmaakt.

Als uw regio momenteel niet wordt ondersteund en u er nog steeds voor kiest om uw functie-app te migreren, moet uw app worden uitgevoerd in een andere regio waar het Flex Consumption-abonnement wordt ondersteund. Het uitvoeren van uw app in een andere regio dan andere verbonden services kan echter extra latentie veroorzaken. Zorg ervoor dat de nieuwe regio aan de prestatievereisten van uw toepassing kan voldoen voordat u de migratie voltooit.

Compatibiliteit van taalstack controleren

Flex Consumption-abonnementen bieden geen ondersteuning voor alle Functions-taalstacks. Deze tabel geeft aan welke taalstacks momenteel worden ondersteund:

Stack-instelling Stacknaam Ondersteund
dotnet-isolated .NET (geïsoleerd werkermodel) ✅ Ja
node JavaScript/TypeScript- ✅ Ja
java Java ✅ Ja
python Python ✅ Ja
powershell PowerShell ✅ Ja
go Go ✅ Ja
dotnet .NET (in-process model) ❌ Nee
custom Aangepaste handlers ✅ Ja

Bevestigd: Als de opdracht az functionapp flex-migration list of Copilot-evaluatie uw app in de lijst eligible_apps staat, gebruikt uw Linux Consumption-app al een ondersteunde taalstack van Flex Consumption, en kunt u doorgaan met het verifiëren van de compatibiliteit van de stack-versie.

Actie vereist: Als de uitvoer uw app bevat in de ineligible_apps lijst met een foutbericht waarin staat dat Runtime '<name>' not supported for function apps on the Flex Consumption plan.uw Linux Consumption-app geen ondersteunde runtime door Flex Consumption uitvoert.

Als uw functie-app gebruikmaakt van een niet-ondersteunde runtimestack:

Copilot leest tijdens de beoordeling de bronruntime en de Functions-hostversie. Een niet-ondersteunde worker runtime of een Functions-hostversie anders dan versie 4 vereist voorbereiding vóór migratie.

Compatibiliteit van stackversies controleren

Voordat u migreert, moet u ervoor zorgen dat de runtimestackversie van uw app wordt ondersteund bij uitvoering in een Flex Consumption-abonnement in de huidige regio.

Bevestigd: Als de opdracht az functionapp flex-migration list of Copilot-evaluatie uw app in de lijst eligible_apps opneemt, gebruikt uw Linux Consumption-app al een ondersteunde taalstackversie van Flex Consumption en kunt u doorgaan met het verifiëren van het gebruik van implementatieslots.

Actie vereist: Als de uitvoer uw app in de ineligible_apps lijst bevat met een foutbericht waarin staat dat Invalid version {0} for runtime {1} for function apps on the Flex Consumption plan. Supported versions for runtime {1} are {2}.uw Linux Consumption-app geen ondersteunde runtime door Flex Consumption uitvoert.

Copilot vergelijkt de versies in de brontaal met de versies die door Flex Consumption in de doelregio worden ondersteund. Het gebruikt project- of deployment-package metadata wanneer Azure-configuratie ontbreekt of onduidelijk is, en vraagt je een doelversie te selecteren wanneer het bewijs geen enkele ondersteunde versie identificeert.

Als uw functie-app gebruikmaakt van een niet-ondersteunde taalstackversie, moet u eerst uw app-code upgraden naar een ondersteunde versie voordat u naar het Flex Consumption-abonnement migreert.

Gebruik van implementatieslots controleren

Apps voor consumptieplannen kunnen een implementatieslot hebben gedefinieerd. Zie Azure Functions implementatiesleuven voor meer informatie. Echter, het Flex Consumption-abonnement biedt momenteel geen ondersteuning voor deploymentslots. Voordat u migreert, moet u bepalen of uw app een implementatiesite heeft. Als dit het geval is, definieert u een strategie voor het beheren van uw app zonder implementatiesleuven wanneer deze wordt uitgevoerd in een Flex Consumption-abonnement.

Confirmed: Wanneer uw huidige app implementatieslots heeft ingeschakeld, wordt uw functie-app met de opdracht az functionapp flex-migration list of Copilot-evaluatie in de lijst eligible_apps weergegeven zonder waarschuwing. Ga door met het verifiëren van het gebruik van certificaten.

Actie vereist: Uw huidige app heeft implementatieslots ingeschakeld en de uitvoer toont uw functie-app in de eligible_apps lijst, maar er wordt een waarschuwing weergegeven die stelt: The site '<name>' has slots configured. This condition doesn't block migration, but please note that slots aren't supported in Flex Consumption.

Copilot detecteert bronimplementatieslots en registreert deze in de evaluatie. Omdat Flex Consumption geen slots ondersteunt, kies je eerst hoe je de functionaliteit van die slots consolideert of gebruik je aparte apps voordat je doorgaat.

Als uw functie-app momenteel gebruikmaakt van implementatieslots, kunt u deze functionaliteit niet reproduceren in het Flex Consumption-abonnement. Voordat u migreert, moet u rekening houden met de volgende opties:

  • Uw toepassing opnieuw ontwerpen voor het gebruik van afzonderlijke functie-apps. Op deze manier kunt u uw functiecode ontwikkelen, testen en implementeren in een tweede niet-productieomgeving in plaats van slots te gebruiken.
  • Migreer nieuwe code of functies van de implementatiesite naar de hoofdsite (productiesite).

Het gebruik van certificaten controleren

Het Flex Consumption-plan ondersteunt TLS/SSL-certificaten via een site-scoped certificaatmodel. In tegenstelling tot andere hostingplannen waarbij certificaten worden gedeeld tussen apps in dezelfde regio en resourcegroep, zijn Flex Consumption-certificaten afgestemd op elke afzonderlijke app. Als uw bestaande app gebruikmaakt van certificaten, moet u rekening houden met deze verschillen:

  • De WEBSITE_LOAD_CERTIFICATES app-instelling wordt niet gebruikt in het Flex Consumption-abonnement. In plaats daarvan maakt u elk certificaat toegankelijk voor uw code met behulp van de wisselknop Toegankelijk voor app-code in de portal. Zie Een certificaat toegankelijk maken voor uw code voor meer informatie.
  • Omdat Flex Consumption wordt uitgevoerd op Linux, moet uw code certificaten laden uit bestandspaden (/var/ssl/certs voor openbaar, /var/ssl/private voor privé) in plaats van uit het Windows certificaatarchief.
  • Elke app ondersteunt maximaal drie persoonlijke certificaten en drie openbare certificaten (.cer).

Bevestigd: Als de opdracht az functionapp flex-migration list of de Copilot-beoordeling uw app in de lijst eligible_apps bevat, is uw Linux Consumption-app compatibel en kunt u doorgaan met Uw Blob storage-triggers verifiëren. Als uw app certificaten gebruikt, moet u deze na de migratie toevoegen aan de nieuwe app.

Actie vereist: Als de uitvoer uw app bevat in de ineligible_apps lijst met een certificaatfout, controleert u de overwegingen met betrekking tot het sitebereik van het certificaat en controleert u of uw app binnen de certificaatlimieten kan werken.

Copilot inventariseert certificaten die door de bron-app worden gebruikt en controleert de sitegebonden certificaatlimieten. Certificaten worden niet automatisch overgedragen. Voeg de benodigde certificaten opnieuw toe door gebruik te maken van het site-scoped certificaatproces en werk code bij die de Windows-certificaatopslag leest om Linux-certificaatbestandspaden te gebruiken.

Als uw app certificaten gebruikt, moet u plannen deze na de migratie opnieuw toe te voegen aan de nieuwe Flex Consumption-app met behulp van het site-scoped certificaatproces. Zorg ervoor dat de certificaatvereisten van uw app binnen de sitelimieten vallen (3 privé- en 3 publieke certificaten per app).

Uw Blob Storage-triggers controleren

Op dit moment ondersteunt het Flex Consumption-abonnement alleen triggers op basis van gebeurtenissen voor Azure Blob-opslag, die worden gedefinieerd met een Source-instelling van EventGrid. Het plan biedt geen ondersteuning voor Blob Storage-triggers die gebruikmaken van container polling en een Source instelling van LogsAndContainerScan. Omdat container polling de standaardinstelling is, moet u bepalen of een van uw Blob Storage-triggers de standaardbroninstelling LogsAndContainerScan gebruikt. Voor meer informatie, zie Trigger voor een blobcontainer.

Bevestigd: Als de az functionapp flex-migration list commando- of Copilot-beoordeling je app in de eligible_apps lijst bevat, gebruikt je Linux Consumption-app geen polling Blob Storage triggers. U kunt afhankelijke services blijven overwegen.

Actie vereist: Als de uitvoer uw app in de ineligible_apps lijst bevat met een foutbericht waarin staat dat The site '<name>' has blob storage triggers that don't use Event Grid as the source: <list> Flex Consumption only supports Event Grid-based blob triggers. Please convert these triggers to use Event Grid or replace them with Event Grid triggers before migration.uw Linux Consumption-app niet compatibel is met Flex Consumption.

Copilot identificeert Blob-triggerbindings op type en markeert elke trigger waarvan de bron niet expliciet EventGrid is. Het biedt richtlijnen voor de vereiste codewijziging en het instellen van het eventabonnement vóór de implementatie.

Als uw app blobopslagtriggers bevat die geen Event Grid-bron hebben, moet u overschakelen naar een Event Grid-bron voordat u migreert naar het Flex Consumption-abonnement.

Belangrijk

Controleer voordat je een polling Blob-trigger converteert of Event Grid het event-delivery endpoint van de doel-functie-app kan bereiken. Event Grid-pushbezorging ondersteunt geen levering via private endpoints. Als het doel alleen privé is, werk dan de architectuur voor eventlevering uit vóór migratie; virtuele netwerkintegratie alleen biedt geen inkomende connectiviteit vanuit Event Grid.

De basisstappen voor het wijzigen van een bestaande Blob Storage-trigger in een Event Grid-bron zijn:

  1. Voeg de eigenschap toe of werk deze bij in de definitie van de source Blob Storage-trigger en herdeploy de app.

  2. Bouw de eindpunt-URL in uw functie-app die door het gebeurtenisabonnement wordt gebruikt.

  3. Maak een gebeurtenisabonnement op uw Blob Storage-container.

Zie Tutorial: Trigger Azure Functions op blobcontainers met behulp van een gebeurtenisabonnement voor meer informatie.

Controleer Windows-specifieke codeafhankelijkheden

Flex Consumption draait op Linux. Bekijk je app op Windows-only API's, pakketten, native binaire bestanden, Windows-specifieke paden en case-aannames, PowerShell-modules en toegang tot de Windows-certificaatopslag. Apps die zich richten op het .NET Framework of gepubliceerd zijn voor een runtime-id voor Windows vereisen ook voorbereiding.

Flex Consumption ondersteunt geen PowerShell-beheerde afhankelijkheden. Verpak voor de migratie alle benodigde PowerShell-modules met je applicatie in de root-map Modules en controleer of die modules Linux ondersteunen. Een requirements.psd1 bestand alleen installeert geen modules in de doel-app. Voor meer informatie, zie PowerShell dependency management.

Tijdens de beoordeling biedt Copilot een heuristische afhankelijkheidsscan aan. Bied indien mogelijk een lokale bronmap of een uitgecheckte repository aan. Als de bron niet beschikbaar is, kan Copilot het uitgerolde pakket ophalen, maar gecompileerde artefacten kunnen de scandekking beperken. De scan is niet uitputtend en jij bent verantwoordelijk voor het verifiëren van de Linux-compatibiliteit.

Bouw en valideer alle benodigde codewijzigingen voordat je deze uitrolt naar de nieuwe app. Als je de benodigde Windows-afhankelijkheden niet kunt verwijderen, overweeg dan het Premium-abonnement op Windows in plaats van Flex Consumption.

Afhankelijke services overwegen

Aanbeveling

Eenvoudige HTTP-app? Als uw functies alleen HTTP-triggers gebruiken en geen verbinding maken met andere Azure-services, kunt u waarschijnlijk het grootste deel van deze sectie overslaan. Vergeet niet om clients bij te werken om na de migratie naar de URL van uw nieuwe app te verwijzen.

Omdat Azure Functions een rekenservice is, kunt u rekening houden met het effect van migratie op gegevens en services, zowel upstream als downstream van uw app.

Strategieën voor gegevensbescherming

Gebruik deze strategieën om zowel upstream- als downstreamgegevens tijdens de migratie te beveiligen:

  • Idempotentie: zorg ervoor dat uw functies hetzelfde bericht meerdere keren veilig kunnen verwerken zonder negatieve bijwerkingen. Zie Ontwerp Azure Functions voor identieke invoer voor meer informatie.
  • Logboekregistratie en bewaking: Als u de verwerking van berichten wilt bijhouden, schakelt u gedetailleerde logboekregistratie in beide apps in tijdens de migratie. Zie Monitor-uitvoeringen in Azure Functions voor meer informatie.
  • Controlepunten: Voor streaming-triggers, zoals de Event Hubs-trigger, implementeert u het juiste controlepuntgedrag om de verwerkingspositie bij te houden. Zie Azure Functions betrouwbare gebeurtenisverwerking voor meer informatie.
  • Parallelle verwerking: Overweeg om beide apps tijdelijk parallel uit te voeren tijdens de cutover. Zorg ervoor dat u zorgvuldig controleert en valideert hoe gegevens worden verwerkt vanuit de upstream-service. Zie Aangepaste oplossingen voor meerdere regio's voor tolerantie voor meer informatie.
  • Geleidelijke overgang: Voor systemen met grote volumes kunt u overwegen om een geleidelijke overgang te implementeren door delen van het verkeer naar de nieuwe app om te leiden. U kunt de routering van aanvragen upstream vanuit uw apps beheren met behulp van services zoals Azure API Management of Azure Application Gateway.

Risicobeperking per triggertype

Plan risicobeperkingsstrategieën om gegevens te beveiligen voor de specifieke functietriggers in uw app:

Aanleiding Risico op gegevens Strategie
Azure Blob Storage Hoog Maak een afzonderlijke container voor de trigger op basis van gebeurtenissen in de nieuwe app.
Als de nieuwe app wordt uitgevoerd, schakelt u de instellingen van de clients over om de nieuwe container te gebruiken.
Sta toe dat de oorspronkelijke container volledig wordt verwerkt voordat u de oude app stopt.
Azure Cosmos DB Hoog Maak een toegewezen leasecontainer specifiek voor de nieuwe app.
Stel deze nieuwe leasecontainer in als de leaseCollectionName configuratie in uw nieuwe app.
Vereist dat uw functies idempotent zijn of dat u de resultaten van dubbele verwerking van wijzigingenfeeds moet kunnen afhandelen.
Stel de configuratie StartFromBeginning in op false de nieuwe app om te voorkomen dat de volledige feed opnieuw wordt verwerkt.
Azure Event Grid Gemiddeld Maak hetzelfde gebeurtenisabonnement opnieuw in de nieuwe app.
Vereist dat uw functies idempotent zijn of dat u de resultaten van dubbele gebeurtenisverwerking moet kunnen verwerken.
Azure Event Hubs Gemiddeld Maak een nieuwe consumentengroep voor gebruik door de nieuwe app. Zie Migratiestrategieën voor Event Grid-triggers voor meer informatie.
Azure Service Bus Hoog Maak een nieuw onderwerp of een nieuwe wachtrij voor gebruik door de nieuwe app.
Werk afzenders en clients bij om het nieuwe onderwerp of de nieuwe wachtrij te gebruiken.
Nadat het oorspronkelijke onderwerp leeg is, sluit u de oude app af.
Azure Storage wachtrij Hoog Maak een nieuwe wachtrij voor gebruik door de nieuwe app.
Werk afzenders en clients bij om de nieuwe wachtrij te gebruiken.
Nadat de oorspronkelijke wachtrij leeg is, sluit u de oude app af.
HTTP Laag Denk eraan om na de migratie de clients, apps of diensten naar de nieuwe HTTP-eindpunten over te schakelen.
Timer Laag Zorg er tijdens de overgangsfase voor dat u het timerschema tussen de twee apps verschuift om gelijktijdige uitvoeringen van beide apps te voorkomen.
Schakel de timertrigger in de oude app uit nadat de nieuwe app is uitgevoerd.

Premigratietaken

Voordat u de nieuwe Flex Consumption-app maakt, moet u enkele informatie over uw huidige app verzamelen. Deze stap zorgt ervoor dat u geen instellingen kwijtraakt tijdens de overgang.

Wanneer je Copilot gebruikt, inventariseert de skill deze configuratie als onderdeel van de migratieworkflow. Bekijk de bevindingen en beslissingen in plaats van de handmatige commando's opnieuw uit te voeren.

Aanbeveling

Deze stap bestaat voornamelijk uit het kopiëren en plakken van werk. Verzamel instellingen van uw bestaande app, zodat u deze kunt toepassen op de nieuwe app.

Voer deze taken uit voordat u migreert:

App-instellingen verzamelen

Als u van plan bent om dezelfde trigger- en bindingsbronnen en andere instellingen van app-instellingen te gebruiken, moet u eerst de huidige app-instellingen in uw bestaande verbruiksabonnement-app noteren.

Copilot beoordeelt de namen van app-instellingen zonder geheime waarden te tonen. Het vraagt of je gefilterde broninstellingen moet kopiëren of voor later moet uitstellen zodat je geïsoleerde doelafhankelijkheden kunt configureren. Als je instellingen uitstelt, wacht deployment tot de vereiste doelconfiguratie klaar is.

Waarschuwing

App-instellingen bevatten vaak sleutels en andere gedeelde geheimen. Sla toepassingsinstellingen altijd veilig op, idealiter versleuteld. Gebruik voor verbeterde beveiliging Microsoft Entra ID verificatie met beheerde identiteiten in de nieuwe Flex Consumption-abonnements-app in plaats van gedeelde geheimen.

Toepassingsconfiguraties verzamelen

Andere app-configuraties bestaan buiten app-instellingen. Leg deze configuraties vast vanuit uw bestaande app, zodat u deze correct opnieuw kunt maken in de nieuwe app.

Controleer deze instellingen. Als er een van deze bestaat in de huidige app, moet u beslissen of u deze opnieuw wilt maken in de nieuwe Flex Consumption-abonnements-app:

Configuratie Configuratie Opmerking
CORS-instellingen cors Bepaalt eventuele bestaande CORS-instellingen (Cross-Origin Resource Sharing), die uw clients mogelijk nodig hebben.
Aangepaste domeinen Als uw app momenteel een ander domein gebruikt dan *.azurewebsites.net, moet u deze aangepaste domeintoewijzing vervangen door een toewijzing aan uw nieuwe app.
HTTP-versie http20Enabled Bepaalt of HTTP 2.0 vereist is voor uw app.
Alleen HTTPS httpsOnly Bepaalt of TSL/SSL vereist is voor toegang tot uw app.
Binnenkomende cliëntcertificaten clientCertEnabled
clientCertMode
clientCertExclusionPaths
Hiermee stelt u vereisten in voor clientaanvragen die gebruikmaken van certificaten voor verificatie.
Maximale limiet voor uitschalen WEBSITE_MAX_DYNAMIC_APPLICATION_SCALE_OUT Hiermee stelt u de limiet in voor schaalbare instanties. De standaard maximumwaarde is 200. Deze waarde wordt gevonden in uw app-instellingen, maar in een Flex Consumption-abonnements-app wordt deze in plaats daarvan toegevoegd als een site-instelling (maximumInstanceCount).
Minimale binnenkomende TLS-versie minTlsVersion Hiermee stelt u een minimale versie van TLS in die is vereist voor uw app.
Minimale binnenkomende TLS-codering minTlsCipherSuite Hiermee stelt u een minimale VEREISTE voor TLS-codering in voor uw app.
Gekoppelde Azure Files-delen azureStorageAccounts Bepaalt of er expliciet gekoppelde bestandsshares aanwezig zijn in uw app (alleen Linux).
SCM-basisverificatie-inloggegevens voor publicatie scm.allow Bepaalt of de scm publicatiesite is ingeschakeld. Hoewel dit niet wordt aanbevolen voor beveiliging, is voor sommige publicatiemethoden dit vereist.

Opmerking

Er is geen post-quantum TLS-instelling om te inventariseren of te migreren. minTlsVersion controleert de minimaal geaccepteerde TLS-protocolversie en minTlsCipherSuite regelt de selectie van cipher-suites. Geen van beide eigenschappen bepaalt de door TLS ondersteunde groep die wordt gebruikt voor sleuteluitwisseling. Clients die TLS 1.3 en de hybride groep ondersteunen, kunnen automatisch onderhandelen X25519MLKEM768 met de platformfrontend; clients die de groep niet ondersteunen, gebruiken een ondersteunde klassieke sleuteluitwisseling. Voor details, zie Post-quantum hybride sleuteluitwisseling in Azure App Service.

Copilot inventariseert site-instellingen, schaallimieten, CORS, aangepaste domeinen en andere configuraties. Het registreert niet-ondersteunde of handmatig behandelde items in de beoordeling. Explicit Azure Files-mountmetadata is alleen voor inventarisatie voor deze Windows-migratie.

Beheerde identiteiten en op rollen gebaseerde toegang identificeren

Voordat u migreert, documenteert u of uw app afhankelijk is van de door het systeem toegewezen beheerde identiteit of een door de gebruiker toegewezen beheerde identiteit. Bepaal de RBAC-machtigingen (op rollen gebaseerd toegangsbeheer) die aan deze identiteiten zijn verleend. U moet de door het systeem toegewezen beheerde identiteit en eventuele roltoewijzingen in uw nieuwe app opnieuw maken. U kunt uw door de gebruiker toegewezen beheerde identiteiten opnieuw gebruiken in uw nieuwe app.

Copilot inventariseert systeem- en door gebruikers toegewezen beheerde identiteiten en hun roltoewijzingen. Het gebruikt deze inventaris om de identiteiten van het doel te configureren en de benodigde toegang tot de juiste bronnen te recreëren.

Ingebouwde verificatie-instellingen identificeren

Voordat u naar Flex Consumption migreert, verzamelt u informatie over ingebouwde verificatieconfiguraties. Als u wilt dat uw app hetzelfde clientverificatiegedrag gebruikt, moet u deze opnieuw maken in de nieuwe app. Zie Authentication and authorization in Azure Functions voor meer informatie.

Let vooral op omleidings-URI's, toegestane externe omleidingen en tokeninstellingen om een soepele overgang voor geverifieerde gebruikers te garanderen.

Copilot inventariseert ingeschakelde providers en authenticatiegedrag zonder providergeheimen bloot te stellen. Het identificeert doelspecifieke callback-URI's en begeleidt de configuratie van providers vóór code-uitrol. Het kopieert niet automatisch registraties of geheimen van providers.

Beperkingen voor binnenkomende toegang controleren

U kunt binnenkomende toegangsbeperkingen instellen voor apps in een Verbruiksabonnement. Mogelijk wilt u deze beperkingen in uw nieuwe app behouden. Voor elke beperking die u definieert, moet u deze eigenschappen vastleggen:

  • IP-adressen of CIDR-bereiken
  • Prioriteitswaarden
  • Actietype (toestaan/weigeren)
  • Namen van de regels

Copilot inventariseert en recreëert compatibele toegangsbeperkingen. Het verzwakt die beperkingen niet automatisch om gezondheidscontroles voor deployment of HTTP-validatie succesvol te maken.

Wanneer u in het Flex Consumption-abonnement werkt, kunt u deze binnenkomende IP-beperkingen opnieuw maken. U kunt uw app verder beveiligen door andere netwerkbeperkingen te implementeren, zoals integratie van virtuele netwerken en binnenkomende privé-eindpunten. Zie Integratie van virtueel netwerk voor meer informatie.

De migratie starten

Belangrijk

Als Shared Key-toegang is uitgeschakeld op het geselecteerde hostopslagaccount of deploymentopslagaccount, of als uw organisatie toegang tot keyless storage nodig heeft, configureer dan beheerde identiteitsauthenticatie en de vereiste roltoewijzingen voor zowel hostopslag als deploymentstorage. De basis-CLI-gebaseerde creatiestromen die in dit artikel worden beschreven, gebruiken storage connection strings. Het maken van de app met sleutels en deze daarna converteren voldoet niet aan de eis om Shared Key-authenticatie tijdens het provisioneren te verbieden. Voor meer informatie, zie Identity-based host storage connections en Implementatie-instellingen configureren.

Als u de detectieprompt in de sectie Identificeren hebt gebruikt, is de vaardigheid al geëvalueerd, gemaakt en geconfigureerd voor uw nieuwe Flex Consumption-app. U kunt deze sectie overslaan en doorgaan met migratiestappen.

Als u al weet welke app u wilt migreren, gebruikt u deze prompt:

migrate my app <APP_NAME> to flex consumption

De vaardigheid verwerkt automatisch de evaluatie, het maken van apps en de migratie van configuratie, gelijk aan de az functionapp flex-migration start opdracht en de bijbehorende verificatiestappen.

Nadat u de migratie hebt gestart, gaat u verder met het pakket voor code-implementatie.

Als u al weet welke app u wilt migreren, gebruikt u deze prompt:

Migrate my Windows Consumption Function App <APP_NAME> to Flex Consumption.

Vervang <APP_NAME> door de naam van je bron-app. Copilot presenteert het migratieplan, voert beoordelingen uit, inventariseert de configuratie en maakt een nieuwe Flex Consumption-app naast de bron.

Standaard stelt de workflow <APP_NAME>-flex voor als naam voor de doelapp. Copilot vraagt je te kiezen of je het bronopslagaccount opnieuw gebruikt, een nieuw account aanmaakt, of een specifiek bestaand account gebruikt voordat je de doel-app aanmaakt. Je kunt een andere doelnaam aanvragen of je opslagvoorkeur in de prompt vermelden. Bekijk de opslagkeuze, want gedeelde afhankelijkheden kunnen beide apps toestaan dezelfde gebeurtenissen te verwerken.

Copilot controleert of de geselecteerde opslagaccounts Shared Key-authenticatie toestaan en vraagt naar de vereisten voor beleid met alleen identiteit. Als sleutel-gebaseerde creatie niet is toegestaan, pauzeert Copilot voordat hij de doel-app aanmaakt. Implementeer een lege Flex Consumption-app die aan deze migratie is toegewezen in hetzelfde abonnement, met behulp van identity-first IaC. Configureer beheerde identiteitstoegang voor zowel host- als deploymentstorage, de vereiste roltoewijzingen en monitoring. Rol de functiecode nog niet uit. Voor voorbeelden van provisioning, zie de voorbeelden van Flex Consumption infrastructure-as-code.

Geef de volledige Azure-resource-ID van het doel en het opgeslagen voortgangsbestandspad terug. Copilot verifieert de bestaande doelomgeving en hervat na goedkeuring de configuratie en implementatie zonder een nieuwe app aan te maken. Gebruik deze prompt:

Resume the Flex Consumption migration for <APP_NAME> using progress at <PROGRESS_FILE_PATH>.
I provisioned a keyless target at <TARGET_RESOURCE_ID>. Use that existing target; do not create another app.

Voor de implementatie begeleidt Copilot de voorbereiding van Windows-naar-Linux-code, doelconfiguratie, ingebouwde authenticatie en de veiligheid van niet-HTTP triggers. Vervolgens biedt het uitrol aan via een bijgewerkte pijplijn, een lokaal project of een compatibel deploymentpakket.

Standaard registreert Copilot de voortgang in .azure-upgrade/<SOURCE_APP_NAME>/upgrade-status.md. Om te hervatten, gebruik deze prompt:

Resume the Flex Consumption migration for <APP_NAME>.

Het code-implementatiepakket ophalen

Als u uw app opnieuw wilt implementeren, hebt u de bronbestanden van uw project of het implementatiepakket nodig. Idealiter onderhoudt u uw projectbestanden in broncodebeheer, zodat u eenvoudig functiecode opnieuw kunt implementeren in uw nieuwe app. Als u uw broncodebestanden hebt, kunt u deze sectie overslaan en prestatiebenchmarks (optioneel) blijven vastleggen.

Als u geen toegang meer hebt tot uw projectbronbestanden, kunt u het huidige implementatiepakket downloaden uit de bestaande verbruiksabonnement-app in Azure. De locatie van het implementatiepakket is afhankelijk van of u op Linux of Windows uitvoert.

Apps voor verbruiksabonnementen in Linux onderhouden het zip-pakketbestand voor implementatie op een van deze locaties:

  • Een Azure Blob Storage-container met de naam scm-releases in het standaardhostopslagaccount (AzureWebJobsStorage). Deze container is de standaardimplementatiebron voor een verbruiksabonnement-app in Linux.

  • Als uw app een WEBSITE_RUN_FROM_PACKAGE instelling heeft die een URL is, bevindt het pakket zich op een extern toegankelijke locatie die u onderhoudt. Een extern pakket moet worden gehost in een Blob Storage-container met beperkte toegang. Zie de URL van het externe pakket voor meer informatie.

Aanbeveling

Als u uw opslagaccount beperkt tot alleen beheerde identiteittoegang, moet u mogelijk uw Azure account leestoegang verlenen tot de opslagcontainer door het toe te voegen aan de rol Storage Blob Data Reader.

Het implementatiepakket wordt gecomprimeerd met behulp van de squashfs indeling. Als u wilt zien wat er in het pakket staat, moet u hulpprogramma's gebruiken die deze indeling kunnen decomprimeren.

Gebruik deze stappen om het implementatiepakket te downloaden vanuit uw huidige app:

De Copilot migratievaardigheden proberen uw bestaande codeproject te downloaden en opnieuw te implementeren in uw nieuwe app. Als dit niet lukt, wordt u in plaats daarvan begeleid bij het verkrijgen en implementeren van uw codepakket als onderdeel van de migratiewerkstroom. U kunt deze sectie overslaan en doorgaan met migratiestappen.

De locatie van uw projectbronbestanden is afhankelijk van de WEBSITE_RUN_FROM_PACKAGE app-instelling als volgt:

WEBSITE_RUN_FROM_PACKAGE waarde Locatie van bronbestand
1 De bestanden bevinden zich in een zip-pakket dat is opgeslagen in de Azure Files share van het opslagaccount dat is gedefinieerd door de instelling WEBSITE_CONTENTAZUREFILECONNECTIONSTRING. De WEBSITE_CONTENTSHARE instelling definieert de naam van de bestandsshare.
Een eindpunt-URL De bestanden bevinden zich in een zip-pakket op een extern toegankelijke locatie die u onderhoudt. Een extern pakket moet worden gehost in een Blob Storage-container met beperkte toegang. Zie de URL van het externe pakket voor meer informatie.

Copilot vraagt eerst om een lokale brondirectory. Als de bron niet beschikbaar is, biedt het aan om het geïmplementeerde pakket op te halen via de content share of externe package URL van de bron-app. Het controleert of het pakket geschikt is voor Linux en Flex Consumption; Windows-specifieke builds vereisen voorbereiding in plaats van directe heruitrol.

Prestatiebenchmarks vastleggen (optioneel)

Als u van plan bent om prestatieverbeteringen in uw app te valideren op basis van de migratie naar het Flex Consumption-plan, kunt u overwegen de prestatiebenchmarks van uw huidige plan vast te leggen. Vervolgens kunt u deze vergelijken met dezelfde benchmarks voor uw app die worden uitgevoerd in een Flex Consumption-abonnement.

Aanbeveling

Vergelijk altijd de prestaties onder vergelijkbare omstandigheden, zoals de tijd van de dag, de dag van de week en de belasting van de client. Probeer de twee benchmarks zo dicht mogelijk bij elkaar uit te voeren.

Hier volgen enkele benchmarks die u kunt overwegen voor uw gestructureerde prestatietests:

Voorgestelde benchmark Opmerking
Cold-start Meet de tijd van de eerste aanvraag naar het eerste antwoord na een niet-actieve periode.
Doorvoer Meet het maximum aantal aanvragen per seconde met behulp van hulpprogramma's voor belastingtests om te bepalen hoe de app gelijktijdige aanvragen verwerkt.
latentie Houd de P50, P95en P99 reactietijden bij onder verschillende belastingsomstandigheden. U kunt deze metrische gegevens bewaken in Application Insights.

Gebruik deze Kusto-query om de voorgestelde reactietijden voor latentie in Application Insights te bekijken:

requests
| where timestamp > ago(1d)
| summarize percentiles(duration, 50, 95, 99) by bin(timestamp, 1h)
| render timechart

Migratiestappen

Als u uw functies wilt migreren van een Consumption-verbruiksabonnement-app naar een Flex Consumption-verbruiksabonnement-app, voert u de volgende belangrijkste stappen uit:

Controleren of de Flex Consumption-app is gemaakt en geconfigureerd

Nadat u de opdracht az functionapp flex-migration start hebt uitgevoerd, controleert u of uw nieuwe Flex Consumption-app is gemaakt en juist is geconfigureerd. Hier volgen enkele stappen om de migratieresultaten te valideren:

De Copilot migratievaardigheid verifieert automatisch de nieuwe app als onderdeel van de migratie. Als u de migratie hebt gestart met behulp van een Copilot-prompt in Start the migration for Linux, heeft de vaardigheid al gecontroleerd of de app correct is gemaakt en geconfigureerd. U kunt deze sectie overslaan en doorgaan met het configureren van ingebouwde verificatie.

Migratieoverzicht bekijken

De geautomatiseerde migratieopdracht draagt de meeste configuraties over. Controleer echter handmatig of deze items zijn gemigreerd. Mogelijk moet u deze handmatig configureren:

  • Certificaten: Voeg TLS/SSL-certificaten opnieuw toe aan de Flex Consumption-app door gebruik te maken van het site-scoped certificaatproces.
  • Deployment-slots: niet ondersteund in Flex Consumption.
  • Ingebouwde verificatie-instellingen: u moet deze instellingen handmatig opnieuw configureren.
  • CORS-instellingen: Mogelijk moet u deze instellingen handmatig controleren, afhankelijk van uw configuratie.

Als er kritieke instellingen ontbreken of onjuist zijn, configureert u deze handmatig met behulp van de stappen die worden beschreven in het Windows migratieproces secties van dit artikel.

Definitieve beoordeling van het plan

Voordat u doorgaat met het migratieproces, moet u even de volgende voorbereidende stappen uitvoeren:

Wanneer je Copilot gebruikt, bekijk dan de beoordeling, configuratie-inventaris, codewijzigingen, implementatiekeuze en beslissingen over triggerveiligheid voordat je het aanmaken en implementeren van het doel goedkeurt. Een succesvolle validatie-only migratie betekent niet dat productieverkeer of triggers worden omgezet.

  • Bekijk alle verzamelde informatie: doorloop alle notities, configuratiedetails en toepassingsinstellingen die u in de vorige secties voor evaluatie en voormigratie hebt gedocumenteerd. Als er iets onduidelijk is, voert u de Azure CLI opdrachten opnieuw uit of haalt u de informatie op uit de portal.

  • Definieer uw migratieplan: Maak op basis van uw bevindingen een controlelijst voor uw migratie waarin het volgende wordt gemarkeerd:

    • Instellingen die speciale aandacht nodig hebben
    • Triggers en bindingen of andere afhankelijkheden die mogelijk worden beïnvloed tijdens de migratie
    • Teststrategie voor validatie na migratie
    • Plan voor terugdraaien als er onverwachte problemen zijn
  • Planning van downtime: overweeg wanneer u de oorspronkelijke functie-app stopt om zowel gegevensverlies als dubbele verwerking van gebeurtenissen te voorkomen en hoe deze migratie van invloed kan zijn op uw gebruikers of downstreamsystemen. In sommige gevallen moet u mogelijk specifieke functies uitschakelen voordat u de hele app stopt.

Een zorgvuldige laatste beoordeling zorgt voor een soepeler migratieproces en minimaliseert het risico van het bekijken van belangrijke configuraties.

Een app maken in het Flex Consumption-abonnement

U kunt op verschillende manieren een functie-app maken in het Flex Consumption-abonnement, samen met andere vereiste Azure resources:

Optie Maken Naslagartikelen
GitHub Copilot Gebruik de Windows-prompt in Start de migratie. Copilot bevestigt de doelbronnen en maakt de app als onderdeel van de begeleide workflow.
Azure CLI Een Flex Consumption-app maken
Azure portal Maak een functie-app in de Azure-portal
Infrastructuur als code ARM-sjabloon
azd
Bicep
Terraform
Visual Studio Code Visual Studio Code implementatie
Visual Studio Visual Studio-implementatie

Aanbeveling

Gebruik indien mogelijk Microsoft Entra ID voor verificatie in plaats van verbindingsreeksen, die gedeelde sleutels bevatten. Het gebruik van beheerde identiteiten is een best practice die de beveiliging verbetert door de noodzaak om gedeelde geheimen rechtstreeks in toepassingsinstellingen op te slaan te elimineren. Als uw oorspronkelijke app verbindingsreeksen heeft gebruikt, ondersteunt het Flex Consumption-abonnement beheerde identiteiten. De meeste van deze koppelingen laten zien hoe u beheerde identiteiten kunt inschakelen in uw functie-app.

Gemigreerde app-instellingen toepassen in de nieuwe app

Voordat u uw code implementeert, configureert u de nieuwe app met de relevante app-instellingen voor flexverbruiksabonnementen van uw oorspronkelijke functie-app.

Belangrijk

Niet alle app-instellingen voor verbruiksabonnementen worden ondersteund wanneer ze worden uitgevoerd in een Flex Consumption-abonnement. Raadpleeg Uitfaseringen van het flexverbruiksabonnement voor meer informatie.

Na goedkeuring kopieert Copilot de ondersteunde app-instellingen zonder ruwe geheime waarden weer te geven of te behouden. Doel-eigen opslag en Application Insights-instellingen blijven behouden. Het controleert ook de naamconversies van : naar __ die op Linux vereist zijn en stopt als bronnamen niet eenduidig kunnen worden toegewezen.

Andere app-configuraties toepassen

Zoek de lijst met andere app-configuraties van uw oude app die u tijdens de premigratie hebt verzameld en stel deze in de nieuwe app in.

Opmerking

Er is geen post-quantum TLS-instelling om toe te passen. Consumption- en Flex Consumption-apps gebruiken beide platformbeheerde onderhandeling met compatibele clienttoepassingen; het migreren van certificaten of aangepaste domeinen verandert de geschiktheid voor post-quantumsleuteluitwisseling niet. Minimale TLS- en cipher-suite-instellingen bepalen de ondersteunde groepen niet. Voor details, zie Post-quantum hybride sleuteluitwisseling in Azure App Service.

Copilot past compatibele siteconfiguratie toe uit de inventaris en verifieert de doelcomputer. Niet-ondersteunde instellingen en items die handmatig moeten worden behandeld, blijven expliciet vervolgwerk in plaats van stilletjes te worden gekopieerd.

Instellingen voor schaal en gelijktijdigheid configureren

Het Flex Consumption-abonnement maakt gebruik van schaalaanpassing per functie. Elke functie binnen uw app wordt onafhankelijk geschaald op basis van de workload. Schalen is strikter gerelateerd aan gelijktijdigheidsinstellingen. Deze instellingen helpen u bij het nemen van schaalbeslissingen op basis van de huidige gelijktijdige uitvoeringen. Zie zowel schaalaanpassing per functie als gelijktijdigheid in het artikel van het Flex Consumption-abonnement voor meer informatie.

Als u wilt dat uw nieuwe app wordt geschaald zoals uw oorspronkelijke app, moet u rekening houden met de gelijktijdigheidsinstellingen. Als u hogere gelijktijdigheidswaarden instelt, kunnen er minder exemplaren worden gemaakt om dezelfde belasting te verwerken.

Als u een aangepaste uitschaallimiet instelt in uw oorspronkelijke app, kunt u deze toepassen op uw nieuwe app. Ga anders naar de volgende sectie.

Het maximumaantal exemplaren is standaard 100. Stel deze in op een waarde tussen 1 en 1000.

Opmerking

Als het maximumaantal exemplaren voor HTTP-functie-apps tot onder de 40 wordt verlaagd, kunnen er frequente aanvraagfouten en langdurige beperkingsvensters optreden wanneer het verkeer de capaciteit overschrijdt. Deze instelling is alleen bedoeld voor geavanceerde scenario's waarbij beperkte uitschaling acceptabel is en volledig wordt getest.

Copilot controleert elke broninstelling voor maximale uitschaling aan de hand van het ondersteunde Flex Consumption-bereik voordat deze wordt toegepast. Als de bron geen aangepaste limiet heeft ingesteld, behoudt het de standaardwaarde van het doel. Bekijk workload-specifieke concurrency-tuning na migratie.

Aangepaste domeinen en CORS-toegang configureren

Als uw oorspronkelijke app afhankelijke aangepaste domeinen of CORS-instellingen heeft, maakt u deze opnieuw in uw nieuwe app. Zie Set up an existing custom domain in Azure App Service voor meer informatie over aangepaste domeinen.

Copilot maakt de compatibele CORS-configuratie opnieuw en begeleidt de instelling van een aangepast domein. Elke wijziging aan source bindings, DNS of production routing vereist aparte goedkeuring; het maken van de doel-app voltooit geen traffic cutover.

Beheerde identiteiten configureren en rollen toewijzen

Hoe u beheerde identiteiten in uw nieuwe app configureert, is afhankelijk van het type beheerde identiteit:

Type beheerde identiteit Identiteit maken Roltoewijzingen
Door de gebruiker toegewezen Optioneel U kunt dezelfde door de gebruiker toegewezen beheerde identiteiten blijven gebruiken met de nieuwe app. U moet deze identiteiten opnieuw toewijzen aan uw Flex Consumption-app en controleren of ze nog steeds de juiste roltoewijzingen hebben in externe services. Als u ervoor kiest om nieuwe identiteiten voor de nieuwe app te maken, moet u dezelfde rollen toewijzen als de bestaande identiteiten.
Door het systeem toegewezen Ja Omdat elke functie-app een eigen door het systeem toegewezen beheerde identiteit heeft, moet u de door het systeem toegewezen beheerde identiteit inschakelen in de nieuwe app en dezelfde rollen toewijzen als in de oorspronkelijke app.

Het opnieuw maken van de roltoewijzingen is essentieel om ervoor te zorgen dat uw functie-app dezelfde toegang heeft tot Azure resources na de migratie.

Aanbeveling

Als uw oorspronkelijke app verbindingsreeksen of andere gedeelde geheimen voor verificatie heeft gebruikt, is dit een uitstekende gelegenheid om de beveiliging van uw app te verbeteren door over te schakelen naar het gebruik van Microsoft Entra ID verificatie met beheerde identiteiten. Voor meer informatie, zie Verbindingen configureren naar externe diensten in Azure Functions.

Copilot maakt een door het systeem toegewezen identiteit mogelijk op het doel en maakt de vereiste roltoewijzingen opnieuw voor de nieuwe principal. Het verifieert de toegang ten opzichte van de doelbronnen in plaats van de bronprincipal opnieuw te gebruiken.

Netwerktoegangsbeperkingen configureren

Als uw oorspronkelijke app binnenkomende toegangsbeperkingen op basis van IP had, maakt u dezelfde regels voor binnenkomende toegang die u in de nieuwe app wilt behouden.

Aanbeveling

Het Flex Consumption-abonnement biedt volledige ondersteuning voor integratie van virtuele netwerken. Vanwege deze ondersteuning kunt u na de migratie ook binnenkomende privé-eindpunten gebruiken. Zie Privé-eindpunten voor meer informatie.

Copilot recreëert compatibele toegangsbeperkingen voor de bron en verifieert deze. Als die beperkingen directe HTTP-tests voorkomen, registreert het validatie als uitgesteld in plaats van automatisch toegang te openen.

Bewaking inschakelen

Voordat u uw nieuwe app in het Flex Consumption-abonnement start, moet u ervoor zorgen dat Application Insights is ingeschakeld. Wanneer u Application Insights configureert, kunt u eventuele problemen oplossen die optreden tijdens de implementatie en het opstarten van de code.

Implementeer een uitgebreide bewakingsstrategie die betrekking heeft op metrische gegevens, logboeken en kosten van apps. Met deze strategie kunt u het succes van uw migratie valideren, eventuele problemen snel identificeren en de prestaties en kosten van uw nieuwe app optimaliseren.

Als u van plan bent om deze nieuwe app te vergelijken met uw huidige app, moet u ervoor zorgen dat uw schema ook de vereiste benchmarks voor vergelijking verzamelt. Zie Bewaking configureren voor meer informatie.

Bij gebruik van Copilot verifieert de skill de Application Insights-configuratie van het doel vóór de inzet. Het bewaart Microsoft Entra-geauthenticeerde ingestie wanneer de bron het gebruikte en valideert telemetrie na implementatie.

Ingebouwde verificatie configureren

Als uw oorspronkelijke app ingebouwde clientverificatie heeft gebruikt (ook wel Easy Auth genoemd), maakt u deze opnieuw in uw nieuwe app. Als u van plan bent om dezelfde clientregistratie opnieuw te gebruiken, moet u ervoor zorgen dat de geverifieerde eindpunten van de nieuwe app in de verificatieprovider worden ingesteld.

De Copilot migratievaardigheid voor Linux automatiseert geen ingebouwde verificatieconfiguratie. Gebruik de tabbladen Azure CLI of Azure portal om de verificatie-instellingen handmatig opnieuw te maken.

Copilot begeleidt de configuratie en verificatie per provider op het doelsysteem. Je moet provider-geheimen direct configureren via het portaal, een bestaande geheim-dragende instelling, of een Key Vault-referentie, en de doel-callback URI registreren. Als authenticatie wordt uitgesteld, stopt Copilot voordat code wordt uitgerold, zodat het doelwit eerder beschermde eindpunten niet zonder authenticatie blootlegt.

Uw app-code implementeren in de nieuwe Flex Consumption-resource

Nadat u de nieuwe Flex Consumption-abonnements-app hebt geconfigureerd op basis van de instellingen van de oorspronkelijke app, implementeert u uw code in de nieuwe app-resources in Azure.

Waarschuwing

Na een succesvolle implementatie kunnen ingeschakelde triggers in je nieuwe app direct beginnen met het verwerken van gegevens van verbonden diensten. Als u dubbele gegevens wilt minimaliseren en gegevensverlies wilt voorkomen tijdens het starten van de nieuwe app en de oorspronkelijke app wilt afsluiten, bekijkt u de strategieën die u hebt gedefinieerd in oplossingen per triggertype.

Voor de implementatie classificeert Copilot elke trigger en biedt aan om niet-HTTP-functies uit te schakelen die productiegebeurtenissen kunnen verwerken of volgens een planning worden uitgevoerd. Als je de uitschakeling goedkeurt, schrijft en verifieert het de uitschakelingsinstellingen vóór de uitrol, en verifieert het de effectieve functiestatus na de uitrol. HTTP-functies blijven ingeschakeld omdat clients moeten worden omgeleid naar de nieuwe hostnaam.

Functienamen met een koppelteken (-) kunnen niet worden uitgeschakeld op Linux via app-instellingen per functie. Voor deze functies vereist Copilot een aparte veiligheidsbeslissing: afhankelijkheden isoleren, hernoemen en herverpakken, een source-first cutover goedkeuren, of actieve verwerking expliciet accepteren. Het behandelt een ineffectieve deactivatie-vlag niet als bescherming.

Plan de functietoets-afhandeling vóór HTTP-cutover. De nieuwe app heeft zijn eigen hostsysteem- en functietoetsen. Voor aanroepers die deze sleutels gebruiken, behoud ofwel compatibele source host- en HTTP-functiesleutels of werk de aanroepers bij om de sleutels van de doel-app te gebruiken voordat het verkeer wordt omgeleid. Copilot vraagt welke strategie te gebruiken en, als je voor behoud kiest, kopieert en verifieert hij de geselecteerde sleutels na de inzet. Valideer geauthenticeerde verzoeken ten opzichte van het doelendpoint vóór de cutover.

Copilot kopieert de _master toets of de door extensies beheerde systeemsleutels niet. Update webhook-integraties die door het doelsysteem gegenereerde systeemsleutels vereisen, apart. Het behouden van clientsleutels betekent dat die inloggegevens beide apps autoriseren terwijl ze naast elkaar bestaan.

Kies bij het gebruik van Copilot of je je CI/CD-pijplijn bijwerkt, een voorbereid lokaal project publiceert, of een compatibel opgehaald pakket uitrolt. Na validatie begeleidt Copilot de productie-overgang en vraagt om expliciete goedkeuring voordat het de bron-app wijzigt.

Functions biedt verschillende manieren om uw code te implementeren, hetzij vanuit het codeproject of als een kant-en-klaar implementatiepakket.

Aanbeveling

Als u uw projectcode in een broncodeopslagplaats onderhoudt, is het nu de perfecte tijd om een pijplijn voor continue implementatie te configureren. Met continue implementatie kunt u toepassingsupdates automatisch implementeren op basis van wijzigingen in een verbonden opslagplaats.

Werk uw bestaande implementatiewerkstromen bij om uw broncode te implementeren in uw nieuwe app:

U kunt ook een nieuwe werkstroom voor continue implementatie maken voor uw nieuwe app. Zie Continuous-implementatie voor Azure Functions voor meer informatie.

Taken na migratie

🎉 Gefeliciteerd! Uw app wordt nu uitgevoerd op Flex Consumption. Als u optimaal gebruik wilt maken van uw nieuwe plan, kunt u deze optionele vervolgtaken overwegen:

Basisfunctionaliteit controleren

  1. Controleer of de nieuwe app wordt uitgevoerd in een Flex Consumption-abonnement:

    De Copilot-migratievaardigheid valideert je nieuwe app na de uitrol, inclusief het hostingplan en de functiestatus. HTTP-tests kunnen uitgesteld blijven wanneer opzettelijke toegangsbeperkingen dit verhinderen. Bekijk eventuele uitgestelde tests en valideer niet-HTTP-verwerking vóór de productieovergang. Als u opnieuw moet worden gevalideerd, gebruikt u deze prompt:

    verify my flex consumption app <APP_NAME> is running correctly
    
  2. Gebruik een HTTP-client om ten minste één HTTP-triggereindpunt aan te roepen in uw nieuwe app om ervoor te zorgen dat deze reageert zoals verwacht.

Prestatiebenchmarks vastleggen

Wanneer uw nieuwe app wordt uitgevoerd, voert u dezelfde prestatiebenchmarks uit die u hebt verzameld van uw oorspronkelijke app, zoals:

Voorgestelde benchmark Opmerking
Cold-start Meet de tijd van de eerste aanvraag naar het eerste antwoord na een niet-actieve periode.
Doorvoer Meet het maximum aantal aanvragen per seconde met behulp van hulpprogramma's voor belastingtests om te bepalen hoe de app gelijktijdige aanvragen verwerkt.
latentie Houd de P50, P95en P99 reactietijden bij onder verschillende belastingsomstandigheden. U kunt deze metrische gegevens bewaken in Application Insights.

Gebruik deze Kusto-query om de voorgestelde reactietijden voor latentie in Application Insights te bekijken:

requests
| where timestamp > ago(1d)
| summarize percentiles(duration, 50, 95, 99) by bin(timestamp, 1h)
| render timechart

Opmerking

De metrische gegevens van het Flex Consumption-abonnement verschillen van de metrische gegevens van het verbruiksabonnement. Houd er rekening mee dat u bij het vergelijken van prestaties voor en na de migratie verschillende metrische gegevens moet gebruiken om vergelijkbare prestatiekenmerken bij te houden. Zie Bewaking configureren voor meer informatie.

Aangepaste dashboards maken

Met behulp van Azure Monitor metrische gegevens en Application Insights kunt u dashboards maken in de Azure-portal die grafieken uit metrische platformgegevens en runtimelogboeken en analyses weergeven.

U kunt dashboards en waarschuwingen instellen voor uw belangrijkste metrische gegevens in de Azure-portal. Zie Monitor uw app in Azure voor meer informatie.

Planinstellingen verfijnen

Werkelijke prestatieverbeteringen en gevolgen voor de kosten van de migratie kunnen variëren op basis van uw app-specifieke workloads en configuratie. Het Flex Consumption-abonnement biedt verschillende instellingen die u kunt aanpassen om de prestaties van uw app te verfijnen. Mogelijk wilt u aanpassingen aanbrengen zodat deze beter overeenkomen met het gedrag van de oorspronkelijke app of om kosten en prestaties te verdelen. Zie uw app verfijnen in het artikel Flex Consumption voor meer informatie.

Uw resource-implementatiebestanden bijwerken

Als u de infrastructuur van uw functie-app beheert met behulp van Bicep of Terraform, werkt u uw implementatiebestanden bij zodat deze nu zijn gericht op het Flex Consumption-abonnement. In deze sectie ziet u de belangrijkste verschillen tussen resourcedefinities voor verbruiks- en Flexverbruiksabonnementen.

Belangrijk

U kunt een bestaande verbruiksabonnement-app niet converteren naar Flex Consumption. U moet nieuwe resources maken met een nieuwe naam of de bestaande resources verwijderen voordat u de equivalenten flexverbruik implementeert.

Belangrijkste verschillen

Houd rekening met de volgende belangrijke wijzigingen bij het migreren van uw resource-implementaties van Consumption naar Flex Consumption:

Kenmerk Verbruiksplan Flexibel Consumptieplan
SKU voor hostingabonnement Y1 (Dynamisch) FC1 (FlexVerbruik)
Plan vereist Optioneel (automatisch gemaakt) Vereist (moet expliciet zijn)
besturingssysteem Windows of Linux Alleen Linux
Configuratie App-instellingen functionAppConfig afdeling
Opslaginhoudsshare WEBSITE_CONTENTSHARE instelling deployment.storage Inch functionAppConfig

In de volgende voorbeelden ziet u de belangrijkste verschillen tussen resourcedefinities voor verbruiks- en Flexverbruiksabonnementen. Ze gebruiken door het systeem toegewezen beheerde identiteit, maar zijn niet voltooid. Ze bevatten niet alle vereiste resources, zoals opslagaccounts, Application Insights of alle benodigde roltoewijzingen. Bekijk de Flex Consumption IaC-voorbeelden voor volledige voorbeelden die gereed zijn voor productie.

Verbruiksabonnement (vóór):

// Consumption plan (optional - auto-created if omitted)
resource hostingPlan 'Microsoft.Web/serverfarms@2022-03-01' = {
  name: hostingPlanName
  location: location
  sku: {
    name: 'Y1'
    tier: 'Dynamic'
  }
  properties: {
    reserved: true // Linux
  }
}

resource functionApp 'Microsoft.Web/sites@2022-03-01' = {
  name: functionAppName
  location: location
  kind: 'functionapp,linux'
  properties: {
    serverFarmId: hostingPlan.id
    siteConfig: {
      linuxFxVersion: 'DOTNET-ISOLATED|8.0'
      appSettings: [
        { name: 'FUNCTIONS_EXTENSION_VERSION', value: '~4' }
        { name: 'FUNCTIONS_WORKER_RUNTIME', value: 'dotnet-isolated' }
        { name: 'AzureWebJobsStorage__accountName', value: storageAccount.name }
        { name: 'WEBSITE_CONTENTAZUREFILECONNECTIONSTRING__accountName', value: storageAccount.name }
        { name: 'WEBSITE_CONTENTSHARE', value: functionAppName }
        { name: 'APPLICATIONINSIGHTS_CONNECTION_STRING', value: appInsights.properties.ConnectionString }
        { name: 'APPLICATIONINSIGHTS_AUTHENTICATION_STRING', value: 'Authorization=AAD' }
      ]
    }
  }
  identity: {
    type: 'SystemAssigned'
  }
}

Flex Consumption-abonnement (na):

// Flex Consumption plan (required)
resource hostingPlan 'Microsoft.Web/serverfarms@2023-12-01' = {
  name: hostingPlanName
  location: location
  sku: {
    name: 'FC1'
    tier: 'FlexConsumption'
  }
  kind: 'functionapp'
  properties: {
    reserved: true
  }
}

// Deployment storage container (required)
resource deploymentContainer 'Microsoft.Storage/storageAccounts/blobServices/containers@2023-05-01' = {
  name: '${storageAccount.name}/default/deployments'
}

resource functionApp 'Microsoft.Web/sites@2023-12-01' = {
  name: functionAppName
  location: location
  kind: 'functionapp,linux'
  properties: {
    serverFarmId: hostingPlan.id
    functionAppConfig: {
      deployment: {
        storage: {
          type: 'blobContainer'
          value: '${storageAccount.properties.primaryEndpoints.blob}deployments'
          authentication: {
            type: 'SystemAssignedIdentity'
          }
        }
      }
      scaleAndConcurrency: {
        maximumInstanceCount: 100
        instanceMemoryMB: 2048
      }
      runtime: {
        name: 'dotnet-isolated'
        version: '8.0'
      }
    }
    siteConfig: {
      appSettings: [
        { name: 'AzureWebJobsStorage__accountName', value: storageAccount.name }
        { name: 'APPLICATIONINSIGHTS_CONNECTION_STRING', value: appInsights.properties.ConnectionString }
        { name: 'APPLICATIONINSIGHTS_AUTHENTICATION_STRING', value: 'Authorization=AAD' }
      ]
    }
  }
  identity: {
    type: 'SystemAssigned'
  }
}

Opmerking

Wanneer u APPLICATIONINSIGHTS_AUTHENTICATION_STRING met Authorization=AAD gebruikt, moet u ook de rol Monitoring Metrics Publisher toewijzen aan de beheerde identiteit van de functie-app in de Application Insights-resource.

Zie de Flex Consumption Bicep-voorbeelden voor volledige Bicep-voorbeelden.

Het afstemmen van resource-inzettingen na migratie

Als u infrastructuur als code gebruikt om uw Azure resource-implementaties te beheren, werkt u uw implementatiebestanden bij nadat u naar Flex Consumption bent gemigreerd om configuratiedrift te voorkomen. Hier volgt een aanbevolen benadering:

  1. Meng geen handmatige en resourcegebaseerde implementaties: Als u de Azure CLI of portal hebt gebruikt om uw Flex Consumption-app te maken tijdens de migratie, werk dan uw resourcebestanden bij voor de volgende implementatie. Anders proberen uw implementaties mogelijk de oude resources van het consumptieplan opnieuw te maken.

  2. Resourcenamen bijwerken of levenscyclusbeheer gebruiken: omdat u een Verbruiks-app niet kunt converteren naar Flex Consumption, hebt u twee opties:

    • Nieuwe resourcenamen: werk uw implementatiecode bij om nieuwe namen te gebruiken voor het hostingabonnement en de functie-app. Met deze benadering blijven uw oude resources intact totdat u zeker weet dat de migratie is geslaagd.
    • Bestaande resources importeren: Als u dezelfde namen wilt behouden, verwijdert u eerst de oude resources, laat u de implementatie de nieuwe Flex Consumption-resources maken. U kunt ook de handmatig gemaakte resources importeren in uw Terraform-status door gebruik te maken van terraform import of door naar bestaande resources in Bicep te verwijzen.
  3. Statusuitlijning controleren: voer na het bijwerken van uw implementatiebestanden een plan of preview-bewerking (terraform plan of az deployment group what-if) uit om te bevestigen dat er geen onverwachte wijzigingen optreden.

  4. CI/CD-pijplijnen bijwerken: als uw implementatiepijplijnen verwijzen naar de oude configuratie van het verbruiksabonnement, werkt u deze bij om de nieuwe resourcedefinities en implementatiemethoden voor Flex Consumption te gebruiken.

Aanbeveling

Als u onderbrekingen wilt minimaliseren, kunt u overwegen om zowel de oude App Verbruik als de nieuwe Flex Consumption-app parallel uit te voeren tijdens een overgangsperiode. Werk uw implementatie bij om de nieuwe Flex Consumption-app te beheren, controleer of deze correct werkt en verwijder vervolgens de oude resources van de verbruiks-app uit zowel Azure als uw implementatiebestanden.

De oorspronkelijke app verwijderen (optioneel)

Aanbeveling

Geen haast hier. Bewaar uw oorspronkelijke app een paar dagen of weken terwijl u controleert of alles werkt. Het verbruiksplan brengt alleen kosten in rekening voor het werkelijke gebruik, dus het behouden van de oude app (met uitgeschakelde triggers) kost weinig.

Wanneer u zeker weet dat de nieuwe app correct werkt, kunt u het origineel opschonen. Deze stap is optioneel: sommige teams behouden de oude app als referentie- of terugdraaioptie.

Belangrijk

Met deze actie verwijdert u de oorspronkelijke functie-app. Het Verbruiksabonnement blijft intact als andere apps het gebruiken. Voordat u verder gaat, moet u ervoor zorgen dat u:

  • Migreer alle functionaliteit naar de nieuwe Flex Consumption-app.
  • Controleer of er geen verkeer is omgeleid naar de oorspronkelijke app.
  • Er is een back-up gemaakt van alle relevante logboeken, configuratie of gegevens die mogelijk nodig zijn voor referentie.

De Copilot-migratieskill kan de originele app verwijderen nadat de productie-overgang en de validatie van het doelsysteem zijn voltooid. Als het readiness-werk nog steeds wordt uitgesteld of de bron nog steeds productieworkloads verwerkt, behoud dan de bron-app. Copilot altijd om uw expliciete bevestiging vraagt voordat u iets verwijdert. Gebruik deze prompt:

delete my original consumption app <ORIGINAL_APP_NAME>

Strategieën voor probleemoplossing en herstel

De meeste migraties worden zonder problemen voltooid. Als iets niet werkt zoals verwacht, kunt u deze oplossingen proberen voor veelvoorkomende problemen:

Probleem Oplossing
Prestatieproblemen met koude start • Gelijktijdigheidsinstellingen controleren
• Controleren op ontbrekende afhankelijkheden
Ontbrekende bindingen • Uitbreidingsbundels controleren
• Bindingsconfiguraties bijwerken
Machtigingsfouten • Identiteitstoewijzingen en rolmachtigingen controleren
Problemen met de netwerkverbinding • Toegangsbeperkingen en netwerkinstellingen valideren
Ontbrekende Application Insights • Maak de Application Insights-verbinding opnieuw
App kan niet worden gestart Zie de algemene stappen voor probleemoplossing
Triggers verwerken geen gebeurtenissen Zie de algemene stappen voor probleemoplossing

Als u problemen ondervindt bij het migreren van een productie-app, kunt u overwegen om de migratie naar de oorspronkelijke app terug te draaien terwijl u problemen oplost.

Algemene stappen voor probleemoplossing

Gebruik deze stappen voor gevallen waarin de nieuwe app niet kan worden gestart of functietriggers geen gebeurtenissen verwerken:

  1. Selecteer op de nieuwe app-pagina in de Azure portalDiagnose en los problemen op in het linkerdeelvenster van de app-pagina. Selecteer Beschikbaarheid en prestaties en bekijk de Functie-App Niet Beschikbaar of Fouten Rapporteren-detector. Zie Azure Functions diagnostics overview voor meer informatie.

  2. Selecteer op de app-pagina Monitoring>Application Insights>Application Insights-gegevens bekijken, selecteer dan Onderzoeken>Fouten en controleer op eventuele foutevenementen.

  3. SelecteerBewakingslogboeken> en voer deze Kusto-query uit om deze tabellen op fouten te controleren:

    traces
        | where severityLevel == 3
        | where cloud_RoleName == "<APP_NAME>"
        | where timestamp > ago(1d)
        | project timestamp, message, operation_Name, customDimensions
        | order by timestamp desc
    

    Vervang in deze query's door <APP_NAME> de naam van uw nieuwe app. Deze queries controleren op fouten in de afgelopen dag (where timestamp > ago(1d)).

  4. Ga terug naar de app-pagina, selecteer Instellingen>Omgevingsvariabelen en controleer of alle kritieke toepassingsinstellingen correct zijn overgedragen. Zoek naar afgeschafte instellingen die mogelijk onjuist zijn gemigreerd of typfouten of onjuiste verbindingsreeksen. Controleer de standaardopslagverbinding voor de host.

  5. Selecteer Instellingenidentiteit>en controleer of de verwachte identiteiten bestaan en of deze zijn toegewezen aan de juiste rollen.

  6. Controleer in uw code of alle bindingsconfiguraties juist zijn, met name aandacht voor verbindingsreeks namen, opslagwachtrij- en containernamen en instellingen voor consumentengroepen in Event Hubs-triggers.

Stappen voor het terugdraaien van kritieke productie-apps

Als u het probleem niet kunt oplossen, kunt u overwegen om terug te keren naar uw oorspronkelijke app terwijl u doorgaat met het oplossen van problemen.

  1. Als de oorspronkelijke app is gestopt, start u deze opnieuw op:

    Vraag Copilot om de oorspronkelijke app opnieuw op te starten en de migratie ongedaan te maken.

    restart my original consumption app <ORIGINAL_APP_NAME>
    
  2. Als u nieuwe wachtrijen, onderwerpen of containers hebt gemaakt, moet u ervoor zorgen dat clients worden omgeleid naar de oorspronkelijke resources.

  3. Als u DNS- of aangepaste domeinen hebt gewijzigd, kunt u deze wijzigingen herstellen zodat deze verwijzen naar de oorspronkelijke app.

Feedback geven

Als u problemen ondervindt met uw migratie met behulp van dit artikel of andere feedback wilt geven over deze richtlijnen, gebruikt u een van deze methoden om hulp te krijgen of uw feedback te geven: