Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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.Webresursprovider) plus en containerapp bakom kulisserna.Functions v2: Intern modell som skapar en enda Azure Container App-resurs (
Microsoft.App) medkind=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
- Identifiera att din aktuella distribution är en Functions v1-app.
- Exportera alla konfigurationsdata, inklusive miljövariabler, hemligheter, anslutningssträngar och anpassade bindningar.
- Granska miljökvoter (CPU, minne, maximalt antal instanser) och justera vid behov.
- Bekräfta avbildningstillgängligheten i registret.
2. Skapa v2-app
Skapa eller återanvända en Azure Container Apps-miljö.
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>Använd konfigurationsinformationen igen, inklusive hemligheter, miljövariabler, identitet och nätverk.
Aktivera autentisering eller anpassad domän om det behövs.
Definiera en skaleringsregel (HTTP, CPU, köutlösarkorrelation efter behov).
3. Verifiera
Anropa HTTP-utlösta funktioner (curl eller webbläsare).
Testa varje utlösartyp (Event Hubs, Service Bus, timer).
Bekräfta Application Insights-telemetri- och Log Analytics-loggar.
Kontrollera skalningsbeteendet under belastning (autoskalningsregler som aktiveras).
Kontrollera att hemligheter och anslutningssträngar bearbetas korrekt.
Bekräfta status för hälsoprob och detaljer om containerrevision.
4. Uppdatera DNS eller anpassade domäner (valfritt)
Om du använder en anpassad domän, mappa den till det nya v2-värdnamnet (CNAME- eller A-post).
Koppla om SSL/TLS-certifikat (hanterade eller uppladdade).
Testa domänupplösning och TLS-handskakning.
Kommunicera slutpunktsändringar internt.
5. Migrera
Flytta produktionstrafik (uppdatera DNS TTL eller routningsregler).
Övervaka svarstider, fel och antal anrop.
Justera skalningsparametrar om det behövs (cooldown, min/max-instanser).
Övervaka loggar för avvikelser under de första få timmarna.
6. Städa upp
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.
Ta bort oanvända hemligheter eller lagringsreferenser.
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:
- Lägga till aviseringsregler
- Justera autoskala
- Framtvinga användning av hanterad identitet
- Centralisera hemligheter