Stöd för Linux-container i Azure Functions

När du planerar och utvecklar dina individuella funktioner för att köras i Azure Functions, fokusera på själva koden. Azure Functions gör det enkelt att bara distribuera kodprojektet till en funktionsapp i Azure. När du distribuerar ditt projekt till en Linux-funktionsapp körs din kod i en container som Azure Functions automatiskt skapar åt dig. Denna container integreras sömlöst med funktioners hanteringsverktyg.

Functions stöder även distribution av containerbaserade funktionsappar. I en containeriserad distribution skapar du din egen funktionsappinstans i en lokal Docker-container från en stödd basavbild. Du kan sedan distribuera den här containerbaserade funktionsappen till en värdmiljö i Azure. Genom att skapa en egen container för funktionsappen kan du anpassa eller på annat sätt styra den omedelbara körningsmiljön för din funktionskod.

Important

När du skapar egna containrar måste du hålla basavbildningen av containern uppdaterad till den senaste basavbildningen som stöds. Basavbildningar som stöds för Azure Functions är språkspecifika. Se Lagringsplatser för Azure Functions-basavbildningar.

Functions-teamet har åtagit sig att publicera månatliga uppdateringar för dessa basavbildningar. Regelbundna uppdateringar omfattar de senaste delversionsuppdateringarna och säkerhetskorrigeringarna för både Functions-körningen och språken. Du bör regelbundet uppdatera containern från den senaste basavbildningen och distribuera om den uppdaterade versionen av containern. För mer information, se Underhåll av anpassade containrar.

Hostingsalternativ för containrar

Tip

För de flesta containeriserade arbetsbelastningar, hosta dina funktionsappar i Azure Container Apps. Container Apps erbjuder en fullt hanterad, serverlös Kubernetes-baserad miljö med inbyggd händelsedriven skalning, skalning till noll och GPU-stöd. För att komma igång, se Azure Functions on Azure Container Apps.

Du har flera alternativ för att hosta dina containeriserade funktionsappar i Azure:

Hostingalternativ Benefits
Azure Container Apps (Rekommenderas) Azure Container Apps hostar och hanterar dina funktionsapp-containrar nativt genom att använda resursleverantörenMicrosoft.App. Kör dina funktioner i en fullt hanterad, serverlös Kubernetes-baserad miljö med inbyggt stöd för öppen källkodsövervakning, mTLS, Dapr och KEDA. Stöder skalbar till noll, serverlös betala-för-det-du-använder-fakturering, dedikerad hårdvara och GPU:er via arbetsbelastningsprofiler. Du drar nytta av samma Functions-programmeringsmodell och triggers samtidigt som du får hela funktionsuppsättningen av Container Apps. Rekommenderat hostingalternativ för containeriserade funktionsappar i Azure.
Azure Container Apps (legacy) Azure Functions erbjuder integrerat stöd för att distribuera containeriserade funktionsappar till en Container Apps-miljö genom att använda resursleverantörenMicrosoft.Web. Även om det för närvarande stöds är detta alternativ planerat för framtida avveckling. För nya arbetsbelastningar, använd istället det rekommenderade alternativet Container Apps hosting.
Azure Functions Du kan vara värd för dina containerbaserade funktionsappar i Azure Functions genom att köra containern i en Elastic Premium- eller apptjänstplan (dedikerad). Premium-planvärdar ger dig fördelarna med dynamisk skalning. Du kanske vill använda en dedikerad hostingplan för att dra nytta av befintliga oanvända resurser i App Service-planen.
Kubernetes Eftersom Azure Functions-körningen ger flexibilitet när det gäller att vara värd för var och hur du vill kan du vara värd för och hantera dina funktionsappcontainrar direkt i Kubernetes-kluster. KEDA (Kubernetes-baserad händelsedriven autoskalning) parar sömlöst med Azure Functions-körningen och verktygen för att tillhandahålla händelsedriven skalning i Kubernetes. Viktig: Kubernetes-värdtjänster för dina containerbaserade funktionsappar, antingen med hjälp av KEDA eller direktdistribution, är ett arbete med öppen källkod som du kan använda utan kostnad. Bästa möjliga stöd för det här värdscenariot tillhandahålls endast av deltagare och av communityn. Du ansvarar för att underhålla dina egna funktionsappcontainrar i ett kluster, även när du distribuerar dem till Azure Kubernetes Service (AKS).

Jämförelse av funktionsstöd

I vilken utsträckning olika funktioner och beteenden i Azure Functions stöds när du kör funktionsappen i en container beror på vilket värdalternativ för containrar du väljer.

Feature/behavior Containerappar (rekommenderas) Container Apps (legacy)1 Premium-plan Dedikerad plan Kubernetes
Produktsupport Yes Yes Yes Yes No
Integration av funktionsportaler Yes No Yes Yes No
Händelsedriven skalbarhet Ja (skala regler) Yes5 Yes No No
Maximal skala (instanser) 10002 10002 1003 10-304 Varierar beroende på kluster
Instanser som skalas till noll Yes Yes No No KEDA
Exekveringstidsgräns Unbounded6 Unbounded6 Unbounded7 Unbounded8 None
Distribuering av Kärnverktyg No No No No func kubernetes
Revisions Yes Yes No No No
Implementeringsplatser No No Yes Yes No
Strömningsloggar Yes Yes Yes Yes No
Konsolåtkomst Yes Yes Ja (använder Kudu) Ja (använder Kudu) Ja (i poddar med användning avkubectl)
Minskning av kallstart Skaleringsregler Minsta antal repliker Alltid redo/förvärmda instanser n/a n/a
App Service-autentisering Yes Yes Yes Yes No
Egna domännamn Yes Yes Yes Yes No
Certifikat för privat nyckel Yes Yes Yes Yes No
Virtuella nätverk Yes Yes Yes Yes Yes
Tillgänglighetszoner Yes Yes Yes Yes Yes
Diagnostics Yes Yes Yes Yes No
Dedikerad maskinvara Ja (arbetsbelastningsprofiler) Ja (arbetsbelastningsprofiler) No Yes Yes
Dedikerade GPU:er Ja (arbetsbelastningsprofiler) Ja (arbetsbelastningsprofiler) No No Yes
Konfigurerbart minne/CPU-antal Yes Yes No No Yes
"Gratis bidrag"-alternativet Yes Yes No No No
Prisinformation Container Apps-fakturering Container Apps-fakturering Fakturering av Premium-plan Fakturering av dedikerad tjänst AKS-priser
Krav för tjänstnamn 2–32 tecken: begränsat till små bokstäver, siffror och bindestreck. Måste börja med en bokstav och sluta med ett alfanumeriskt tecken. 2–32 tecken: begränsat till små bokstäver, siffror och bindestreck. Måste börja med en bokstav och sluta med ett alfanumeriskt tecken. Färre än 64 tecken: begränsat till alfanumeriska tecken och bindestreck. Det går inte att börja med eller sluta med ett bindestreck. Färre än 64 tecken: begränsat till alfanumeriska tecken och bindestreck. Det går inte att börja med eller sluta med ett bindestreck. Färre än 253 tecken: begränsat till alfanumeriska tecken och bindestreck. Måste börja och sluta med ett alfanumeriskt tecken.
  1. Planerat för framtida avskrivning. Använd istället native Container Apps hosting.
  2. I Container Apps är standardvärdet 10 instanser, men du kan ange det maximala antalet repliker, som totalt har högst 1 000. Den här inställningen respekteras så länge det finns tillräckligt med kvot av tillgängliga kärnor. När du skapar din funktionsapp från Azure Portal är du begränsad till 300 instanser.
  3. I vissa regioner kan Linux-appar på en Premium-plan skalas till 100 instanser. Mer information finns i artikeln premiumplan.
  4. Specifika gränser för de olika App Service-planalternativen finns i Gränserna för App Service-planen.
  5. Kräver KEDA, som stöds av de flesta utlösare. Information om vilka utlösare som stöder händelsedriven skalning finns i Överväganden för värdtjänster för Container Apps.
  6. När det minsta antalet repliker är inställt på noll beror standardtimeouten på de specifika utlösare som används i appen.
  7. Det finns ingen tillämpad maximal tidsgräns för körning. Respitperioden som ges till en funktionskörning är dock 60 minuter under inskalning och en respitperiod på 10 minuter ges under plattformsuppdateringar.
  8. Kräver att App Service-planen är inställd på AlwaysOn. En respitperiod på 10 minuter ges under plattformsuppdateringar.

Underhålla anpassade containrar

När du skapar dina egna containrar, håll basavbilden för din container uppdaterad till den senaste stödda basavbilden. Basavbildningar som stöds för Azure Functions är språkspecifika och finns i basavbildningslagringarna för Azure Functions.

Functions-teamet har åtagit sig att publicera månatliga uppdateringar för dessa basavbildningar. Regelbundna uppdateringar omfattar de senaste delversionsuppdateringarna och säkerhetskorrigeringarna för både Functions-körningen och språken. Uppdatera regelbundet din container från den senaste basavbilden och distribuera om den uppdaterade versionen av din container.

Välj basavbildningen baserat på språkstacken som du använder i funktionsappen. Följande tabell innehåller exempel för varje stack. Generellt börjar taggen med 4- för att ange V4 Functions-körtiden. När nya mindre versioner släpps uppdateras denna tagg för att peka på den nya versionen. När du periodvis bygger om din anpassade image drar du de nya versionerna genom samma tagg, så att din app får samma uppdateringar. Använd inte taggar som specificerar mindre runtime-versioner, eftersom dessa taggar inte får några uppdateringar. Din app kan potentiellt finnas kvar i en opatchad version, oavsett hur ofta du bygger om din anpassade image.

Språkstacken Exempel på rekommenderade basavbildningstaggar
.NET (isolerad arbetsmodell) mcr.microsoft.com/azure-functions/dotnet-isolated:4-dotnet-isolated8.0 eller
mcr.microsoft.com/azure-functions/dotnet-isolated:4-dotnet-isolated8.0-appservice

(De här exemplen riktar sig mot .NET 8. Välj lämplig avbildning för den .NET-version du behöver.)
.NET (äldre processmodell) mcr.microsoft.com/azure-functions/dotnet:4-dotnet8.0 eller
mcr.microsoft.com/azure-functions/dotnet:4-dotnet8.0-appservice

(Stödet för den pågående modellen upphör den 10 november 2026. Migrera till modellen för isolerad arbetare så snart som möjligt.)
Java mcr.microsoft.com/azure-functions/java:4-java21 eller
mcr.microsoft.com/azure-functions/java:4-java21-appservice

(De här exemplen riktar sig mot Java 21. Välj lämplig avbildning för den Java-version du behöver.)
Node.js (JavaScript eller TypeScript) mcr.microsoft.com/azure-functions/node:4-node22 eller
mcr.microsoft.com/azure-functions/node:4-node22-appservice

(Dessa exempel är inriktade på Node.js 22. Välj den lämpliga bilden för den Node.js-version du behöver.)
PowerShell mcr.microsoft.com/azure-functions/powershell:4-powershell7.4 eller
mcr.microsoft.com/azure-functions/powershell:4-powershell7.4-appservice

(De här exemplen riktar sig mot PowerShell 7.4. Välj lämplig avbildning för den PowerShell-version du behöver.)
python mcr.microsoft.com/azure-functions/python:4-python3.12 eller
mcr.microsoft.com/azure-functions/python:4-python3.12-appservice

(De här exemplen riktar sig mot Python 3.12. Välj lämplig avbildning för den Python-version du behöver.)
Anpassade hanterare och annat mcr.microsoft.com/azure-functions/base:4 eller
mcr.microsoft.com/azure-functions/base:4-appservice

Basavbildningar som slutar med -appservice aktivera SSH och fjärrfelsökning från plattformen. Om du inte behöver dessa funktioner, använd basbilderna utan suffixet -appservice .

Important

Det räcker inte att bara ha en av de föregående taggarna i din Dockerfile. Du måste regelbundet hämta den senaste avbildningen från taggen så att din anpassade avbildning kan återskapas så att den innehåller de senaste uppdateringarna. Om du inte hämtar den senaste avbilden och bygger om fortsätter din app att köras på den gamla basavbilden.

När du skapar eller distribuerar din egen containeriserade app med en anpassad image är du ansvarig för att se till att din anpassade image förblir up-todatum med de släppta basavbilderna. Förutom nya funktioner och förbättringar kan dessa basavbildningsuppdateringar även innehålla säkerhetsuppdateringar som är viktiga för din app. Kontrollera att appen är skyddad genom att hålla dig uppdaterad. Hämta regelbundet den senaste versionen av basavbilden, bygg om din anpassade containeravbildning och distribuera din app igen för att använda den.

I vissa fall krävs det att Microsoft gör plattformsnivåändringar som kan innebära att en app i en anpassad container som använder en gammal basimage slutar fungera korrekt. För sådana stora förändringar rullar Microsoft ut uppdaterade bilder i god tid så att appar som tar emot regelbundna uppdateringar inte påverkas negativt. För att undvika potentiella problem med dina appar som körs i anpassade containrar kontrollerar du att du inte ligger för långt efter den senaste delversionen som släppts. Under ett supportärende, om Microsoft upptäcker att din app har problem eftersom den är på en äldre eller ej stödd version, ber Microsoft dig uppdatera din container till den senaste basavbildningsversionen innan du fortsätter med supporten.

Komma igång

Använd dessa länkar för att komma igång med Azure Functions i Linux-containrar:

Jag vill... Se artikel:
Distribuera funktioner till Azure Container Apps (rekommenderas) Skapa dina första containerbaserade funktioner i Azure Container Apps
Skapa mina första containeriserade funktioner lokalt Skapa en funktionsapp i en lokal Linux-container
Distribuera containeriserade funktioner till en Premium- eller dedikerad plan Skapa dina första containerbaserade Azure Functions