Dela via


Migrera till Azure Functions v2 i Azure Container Apps

Använd den här guiden om du vill flytta Azure Functions som körs på den äldre Functions v1-modellen till den rekommenderade Functions v2-modellen i Azure Container Apps. Du lär dig varför du migrerar, vilka ändringar och hur du kör övergången med minimal risk.

Du kan vara värd för Azure Functions i Azure Container Apps med hjälp av två distributionsmodeller:

  • Functions v1: Äldre proxymodell som använder en funktionsapp (Microsoft.Web resursprovider) plus en containerapp bakom kulisserna.

  • Functions v2: Intern modell som skapar en enda Azure Container App-resurs (Microsoft.App) med kind=functionapp.

När du flyttar till v2 förenklar du hanteringen, låser upp inbyggda funktioner och följer den framtida översikten över Azure Functions.

Modelljämförelse

Area v1 (äldre) v2 (rekommenderas)
Resursmodell Proxy Functions-appen paras ihop med en dold containerapp Enskild intern containerapp (kind=functionapp)
Inbyggda funktioner

(revisioner, hemligheter, hälsokontroller, anpassade domäner, sidecars)
Stöds inte Understödd
Skalningskontroller

(nedkylning, avsökningsintervall)
Limited Skalningsalternativ för fullständig containerapp
Loggning och felsökning Indirekt. Ingen livekonsol Direkt. Innehåller liveloggar och diagnostik
Dapr-integrering Problematiskt i vissa isolerade .NET-scenarier Stöds med standardmönster
Autentisering (enkel autentiseringstjänst) Ej tillgänglig Tillgängligt
Certifikat och anpassade domäner Ej tillgänglig Tillgängligt
Mått och aviseringar Grundläggande Fullständiga interna mått och aviseringar
Framtida översikt

(funktionslista, nycklar, antal anrop)
Inte planerad Planerat
Driftkomplexitet Hantering med dubbla resurser Enskild resurs
Rekommenderas för nya distributioner Nej Yes

Begränsningar för Functions v1

Functions v1 i Azure Container Apps har flera begränsningar som påverkar skalbarhet, hantering och funktionstillgänglighet. Att förstå dessa begränsningar hjälper till att klargöra fördelarna med att migrera till v2-modellen.

Funktionsbrister

Följande funktioner är inte tillgängliga för Functions v1-appar:

  • Enkel autentisering
  • Hälsoundersökningar
  • Anpassade domäner
  • Sidovagnscontainrar
  • Hanterade certifikat
  • Hemligheter för containerappar
  • Finkorniga skalningsinställningar
  • Trafikuppdelning med flera revisioner

Felsökningsbegränsningar

Med Functions v1-appar har du inte direkt containeråtkomst eller konsolutdata i realtid. I stället måste du använda Log Analytics för infrastrukturdiagnostik och Application Insights för programloggar.

Problem med Dapr-integrering

Dapr- och .NET-isolerade funktioner kan vara i konflikt under bygget eller körningen på grund av beroende- och initieringsordningsbegränsningar.

Fördelar med Functions v2

Functions v2 skapar en intern containerappresurs direkt. Den här metoden tar bort indirekt proxy och aktiverar fullständiga Azure Container Apps-funktioner.

Viktiga fördelar:

  • Aktivera Easy Auth för avlastning av identitet.
  • Konfigurera hälsoprob för att förbättra flexibiliteten.
  • Ange anpassade domäner och använd hanterade certifikat.
  • Minska driftkostnaderna med en enskild resurs.
  • Lagra hemligheter internt och montera sidovagnscontainrar.
  • Få tydligare mått, aviseringar och direktuppspelning av loggar.
  • Använd flera versionsdistributioner och fördela trafiken säkert.
  • Tillämpa detaljerade skalningsregler (avsökningsintervall, nedkylning).

Anmärkning

Inga kodändringar krävs. Du kan återanvända din befintliga containeravbildning.

Distribuering av legacy-avbildningar (stöds inte)

Vissa distributioner använder en standardcontainerapp utan kind=functionapp och kör en Functions-avbildning manuellt.

Viktigt!

Den här metoden stöds inte. Den saknar regler för automatisk skalning och får inte kommande v2-plattformsfunktioner som funktionslista, nycklar och antal anrop.

Rekommendation: Migrera till Functions v2 i Azure Container Apps.

Förutsättningar

Innan du migrerar:

  • Azure-prenumeration och behörighet att skapa resurser.
  • [Azure CLI](/cli/azure/install-azure-cli-windows?view=azure-cli-latest) har installerats (senaste).
  • Nödvändiga tillägg: az extension add --name containerapp, az extension add --name functionapp (om tillämpligt).
  • Åtkomst till containeravbildningen som används av v1-distributionen.
  • Inventering av miljövariabler, hemligheter, lagringsbindningar och nätverksinställningar.

Migreringsprocedur

1. Förbered

  1. Identifiera att din aktuella distribution är en Functions v1-app.
  2. Exportera alla konfigurationsdata, inklusive miljövariabler, hemligheter, anslutningssträngar och anpassade bindningar.
  3. Granska miljökvoter (CPU, minne, maximalt antal instanser) och justera vid behov.
  4. Bekräfta avbildningstillgängligheten i registret.

2. Skapa v2-app

  1. Skapa eller återanvända en Azure Container Apps-miljö.

  2. Distribuera en ny v2-containerapp med samma avbildning.

    az containerapp create \
      --name my-func-v2 \
      --resource-group <RESOURCE_GROUP_NAME> \
      --environment <ENVRONMENT_NAME> \
      --image myregistry.azurecr.io/<IMAGE_NAME>:<TAG_NAME> \
      --kind functionapp \
      --ingress external --target-port <TARGET_PORT>
    
  3. Använd konfigurationsinformationen igen, inklusive hemligheter, miljövariabler, identitet och nätverk.

  4. Aktivera autentisering eller anpassad domän om det behövs.

  5. Definiera en skaleringsregel (HTTP, CPU, köutlösarkorrelation efter behov).

3. Verifiera

  1. Anropa HTTP-utlösta funktioner (curl eller webbläsare).

  2. Testa varje utlösartyp (Event Hubs, Service Bus, timer).

  3. Bekräfta Application Insights-telemetri- och Log Analytics-loggar.

  4. Kontrollera skalningsbeteendet under belastning (autoskalningsregler som aktiveras).

  5. Kontrollera att hemligheter och anslutningssträngar bearbetas korrekt.

  6. Bekräfta status för hälsoprob och detaljer om containerrevision.

4. Uppdatera DNS eller anpassade domäner (valfritt)

  1. Om du använder en anpassad domän, mappa den till det nya v2-värdnamnet (CNAME- eller A-post).

  2. Koppla om SSL/TLS-certifikat (hanterade eller uppladdade).

  3. Testa domänupplösning och TLS-handskakning.

  4. Kommunicera slutpunktsändringar internt.

5. Migrera

  1. Flytta produktionstrafik (uppdatera DNS TTL eller routningsregler).

  2. Övervaka svarstider, fel och antal anrop.

  3. Justera skalningsparametrar om det behövs (cooldown, min/max-instanser).

  4. Övervaka loggar för avvikelser under de första få timmarna.

6. Städa upp

  1. Inaktivera den gamla v1 Functions-appen och relaterade resurser.

    Försiktighet

    Kontrollera att ingen produktionstrafik fortfarande riktar sig mot v1-slutpunkten innan den tas bort.

  2. Ta bort oanvända hemligheter eller lagringsreferenser.

  3. Uppdatera intern dokumentation och operativa runbooks.

Checklista för verifiering

Objekt Godkända kriterier
Utlösare aktiveras Alla konfigurerade utlösare körs korrekt
Loggar och telemetri Application Insights visar anrop; liveloggström
Scaling Antalet instanser anpassas enligt regelkonfigurationen
Autentisering (om aktiverad) Skyddade slutpunkter returnerar förväntade statuskoder
Domäner Anpassad domän matchas med giltigt certifikat
Secrets Känsliga värden läses in utan fel

Driftförbättringar (valfritt)

Förbättra tillförlitligheten efter migreringen: