Dela via


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

När du planerar och utvecklar dina enskilda funktioner som ska köras i Azure Functions fokuserar du vanligtvis på själva koden. Azure Functions gör det enkelt att bara distribuera kodprojektet till en funktionsapp i Azure. När du distribuerar kodprojektet till en funktionsapp som körs på Linux körs projektet i en container som skapas automatiskt. Den här containern hanteras av Functions.

Functions stöder även distribution av containerbaserade funktionsappar. I en containerbaserad distribution skapar du en egen funktionsappinstans i en lokal Docker-container från en baserad avbildning som stöds. 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.

Viktigt!

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 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. Du bör regelbundet uppdatera containern från den senaste basavbildningen och distribuera om den uppdaterade versionen av containern.

Värdalternativ för containrar

Det finns flera alternativ för att vara värd för dina containerbaserade funktionsappar i Azure:

Värdalternativ Förmåner
Azure Container Apps Azure Functions ger integrerat stöd för att utveckla, distribuera och hantera containerbaserade funktionsappar i Azure Container Apps. På så sätt kan du hantera dina appar med samma Functions-verktyg och -sidor i Azure Portal. Använd Azure Container Apps för att vara värd för dina funktionsappcontainrar när du behöver köra dina händelsedrivna funktioner i Azure i samma miljö som andra mikrotjänster, API:er, webbplatser, arbetsflöden eller alla värdbaserade containerprogram. Med Container Apps-värd kan du köra dina funktioner i en hanterad Kubernetes-baserad miljö med inbyggt stöd för övervakning med öppen källkod, mTLS, Dapr och KEDA. Stöder skalning till noll och tillhandahåller en servless pay-for-what-you-use-värdmodell. Du kan också begära dedikerad maskinvara, även GPU:er, med hjälp av arbetsbelastningsprofiler. Rekommenderat värdalternativ för att köra containerbaserade funktionsappar i Azure.
Azure Arc-aktiverade Kubernetes-kluster (förhandsversion) Du kan vara värd för dina funktionsappar i Azure Arc-aktiverade Kubernetes-kluster som antingen en kodbaserad distribution eller i en anpassad Linux-container. Med Azure Arc kan du koppla Kubernetes-kluster så att du kan hantera och konfigurera dem i Azure. Att vara värd för Azure Functions-containrar i Azure Arc-aktiverade Kubernetes-kluster är för närvarande i förhandsversion.
Azure Functions Du kan vara värd för dina containerbaserade funktionsappar i Azure Functions genom att köra containern i antingen en Elastic Premium-plan eller en dedikerad plan. Premium-planvärdar ger dig fördelarna med dynamisk skalning. Du kanske vill använda Dedikerad planvärd för att dra nytta av befintliga oanvända App Service-planresurser.
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. Tänk bara på att köra dina containerbaserade funktionsappar på Kubernetes, antingen med hjälp av KEDA eller genom direkt distribution, är en insats med öppen källkod som du kan använda utan kostnad, med bästa möjliga support från deltagare och från communityn. Du ansvarar för att underhålla dina egna funktionsappcontainrar i ett kluster, även när du distribuerar 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.

Funktion/beteende Container Apps (integrerade) Container Apps (direkt) Premium-plan Dedikerad plan Kubernetes
Produktsupport Ja No Ja Ja Nej
Integrering av Functions-portalen Ja Nej Ja Ja Nej
Händelsedriven skalning Ja5 Ja (skalningsregler) Ja Nej Nej
Maximal skala (instanser) 10001  10001  1002  10-303  Varierar beroende på kluster
Skala till noll-instanser Ja Ja Nej Nej KEDA
Tidsgräns för körning Obundna6 Obundna6 Obundna7 Obundna8 Ingen
Core Tools-distribution func azurecontainerapps Nej Nej Nej func kubernetes 
Revideringar Nej Ja Nej Nej Nej
Distributionsplatser  Nej Nej Ja Ja Nej
Direktuppspelningsloggar  Ja Ja  Ja Ja Nej
Konsolåtkomst  Inte tillgängligför närvarande 4  Ja Ja (med Kudu) Ja (med Kudu) Ja (i poddar med )kubctl
Minskning av kallstart Minsta antal repliker Skalningsregler  Alltid redo/förvärmda instanser  saknas n/a
App Service-autentisering  Inte tillgängligför närvarande 4  Ja Ja Ja Nej
Egna domännamn  Inte tillgängligför närvarande 4  Ja Ja Ja Nej
Certifikat för privat nyckel  Inte tillgängligför närvarande 4  Ja Ja Ja Nej
Virtuella nätverk Ja Ja Ja Ja Ja
Tillgänglighetszoner Ja Ja Ja Ja Ja
Diagnostik Inte tillgängligför närvarande 4  Ja Ja  Ja  Nej
Dedikerad maskinvara Ja (arbetsbelastningsprofiler) Ja (arbetsbelastningsprofiler) Nej Ja Ja
Dedikerade GPU:er Ja (arbetsbelastningsprofiler) Ja (arbetsbelastningsprofiler) Nej Nej Ja
Konfigurerbart minne/CPU-antal Ja Ja Nej Nej Ja
Alternativet "Kostnadsfri beviljande" Ja Ja Nej Nej Nej
Prisinformation Fakturering för Container Apps Fakturering för Container Apps Fakturering av Premium-plan Fakturering av dedikerad plan AKS-priser
Krav för tjänstnamn 2–32 tecken: begränsat till gemener, siffror och bindestreck. Måste börja med en bokstav och sluta med ett alfanumeriskt tecken. 2–32 tecken: begränsat till gemener, siffror och bindestreck. Måste börja med en bokstav och sluta med ett alfanumeriskt tecken. Mindre än 64 tecken: begränsat till alfanumeriska tecken och bindestreck. Det går inte att börja med eller sluta med ett bindestreck. Mindre än 64 tecken: begränsat till alfanumeriska tecken och bindestreck. Det går inte att börja med eller sluta med ett bindestreck. Mindre än 253 tecken: begränsat till alfanumeriska tecken och bindestreck. Måste börja och sluta med ett alfanumeriskt tecken.
  1. 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 tillgängliga kärnor. När du skapar din funktionsapp från Azure Portal är du begränsad till 300 instanser.
  2. I vissa regioner kan Linux-appar på en Premium-plan skalas till 100 instanser. Mer information finns i artikeln premiumplan.
  3. Specifika gränser för de olika App Service-planalternativen finns i Gränserna för App Service-planen.
  4. Funktionsparitet är ett mål för integrerad värd på Azure Container Apps.
  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. Tidsgränsen för maximal körning har inte tillämpats. 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.

Komma igång

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

Jag vill... Se artikel:
Skapa mina första containerbaserade funktioner Skapa en funktionsapp i en lokal Linux-container
Skapa och distribuera funktioner till Azure Container Apps Skapa dina första containerbaserade funktioner i Azure Container Apps
Skapa och distribuera containerbaserade funktioner till Azure Functions Skapa dina första containerbaserade Azure Functions
Skapa och distribuera funktioner till Azure Arc-aktiverade Kubernetes Skapa dina första containerbaserade Azure Functions på Azure Arc (förhandsversion)