Dela via


Värdalternativ för Azure Functions

När du skapar en funktionsapp i Azure måste du välja ett värdalternativ för din app. Azure tillhandahåller följande värdalternativ för din funktionskod:

Värdalternativ Tjänst Tillgänglighet Stöd för containrar
Förbrukningsplan Azure Functions Allmänt tillgängliga (GA) Ingen
Flex-förbrukningsplan Azure Functions Förhandsversion Ingen
Premium-plan Azure Functions Allmän tillgänglighet Linux
Dedikerad plan Azure Functions Allmän tillgänglighet Linux
Container Apps Azure Container Apps Allmän tillgänglighet Linux

Värdalternativ för Azure Functions underlättas av Azure App Service-infrastrukturen på både virtuella Linux- och Windows-datorer. Det värdalternativ som du väljer avgör följande beteenden:

  • Hur funktionsappen skalas.
  • De resurser som är tillgängliga för varje funktionsappinstans.
  • Stöd för avancerade funktioner, till exempel Azure Virtual Network-anslutning.
  • Stöd för Linux-containrar.

Den plan du väljer påverkar också kostnaderna för att köra funktionskoden. Mer information finns i Fakturering.

Den här artikeln innehåller en detaljerad jämförelse mellan de olika värdalternativen. Mer information om hur du kör och hanterar din funktionskod i Linux-containrar finns i Stöd för Linux-container i Azure Functions.

Översikt över planer

Följande är en sammanfattning av fördelarna med de olika alternativen för Azure Functions-värdtjänster:

Alternativ Förmåner
Förbrukningsplan Betala endast för beräkningsresurser när dina funktioner körs (betala per användning) med automatisk skalning.

I en förbrukningsplan läggs instanser av Functions-värden till och tas bort dynamiskt baserat på antalet inkommande händelser.

✔ Standardvärdplan som tillhandahåller sann serverlös värd.
✔ Betala endast när dina funktioner körs.
✔ Skalas automatiskt, även under perioder med hög belastning.
Flex-förbrukningsplan Få hög skalbarhet med beräkningsalternativ, virtuella nätverk och betala per användning-fakturering.

I Flex Consumption-planen läggs instanser av Functions-värden till dynamiskt och tas bort baserat på den konfigurerade samtidigheten per instans och antalet inkommande händelser.

✔ Minska kalla starter genom att ange ett antal företablerade (alltid redo) instanser.
✔ Stöder virtuella nätverk för ökad säkerhet.
✔ Betala när funktionerna körs.
✔ Skalas automatiskt, även under perioder med hög belastning.
Premium-plan Skalar automatiskt baserat på efterfrågan med hjälp av förvärmda arbetare, som kör program utan fördröjning efter inaktivitet, körs på kraftfullare instanser och ansluter till virtuella nätverk.

Överväg Azure Functions Premium-planen i följande situationer:

✔ Dina funktionsappar körs kontinuerligt eller nästan kontinuerligt.
✔ Du vill ha mer kontroll över dina instanser och vill distribuera flera funktionsappar på samma plan med händelsedriven skalning.
✔ Du har ett stort antal små körningar och en hög körningsfaktura, men låga GB-sekunder i förbrukningsplanen.
✔ Du behöver fler processor- eller minnesalternativ än vad som anges i förbrukningsplanerna.
✔ Koden måste köras längre än den maximala körningstiden som tillåts i förbrukningsplanen.
✔ Du behöver anslutning till virtuella nätverk.
✔ Du vill ange en anpassad Linux-avbildning där du kan köra dina funktioner.
Dedikerad plan Kör dina funktioner i en App Service-plan till vanliga App Service-planpriser.

Bäst för långvariga scenarier där Durable Functions inte kan användas. Överväg en App Service-plan i följande situationer:

✔ Du har befintliga och underutnytttagna virtuella datorer som redan kör andra App Service-instanser.
✔ Du måste ha en helt förutsägbar fakturering, eller så måste du skala instanser manuellt.
✔ Du vill köra flera webbappar och funktionsappar på samma plan
✔ Du behöver åtkomst till större val av beräkningsstorlek.
✔ Fullständig beräkningsisolering och säker nätverksåtkomst som tillhandahålls av en App Service Environment (ASE).
✔ Mycket hög minnesanvändning och hög skalning (ASE).
Container Apps Skapa och distribuera containerbaserade funktionsappar i en fullständigt hanterad miljö som hanteras av Azure Container Apps.

Använd Azure Functions-programmeringsmodellen för att skapa händelsedrivna, serverlösa, molnbaserade funktionsappar. Kör dina funktioner tillsammans med andra mikrotjänster, API:er, webbplatser och arbetsflöden som värdbaserade program för containrar. Överväg att vara värd för dina funktioner i Container Apps i följande situationer:

✔ Du vill paketera anpassade bibliotek med din funktionskod för att stödja verksamhetsspecifika appar.
✔ Du måste migrera kodkörning från lokala eller äldre appar till molnbaserade mikrotjänster som körs i containrar.
✔ När du vill undvika omkostnaderna och komplexiteten i att hantera Kubernetes-kluster och dedikerad beräkning.
✔ Dina funktioner behöver avancerad bearbetningskraft som tillhandahålls av dedikerade GPU-beräkningsresurser.

De återstående tabellerna i den här artikeln jämför värdalternativ baserat på olika funktioner och beteenden.

Stöd för operativsystem

Den här tabellen visar operativsystemsstöd för värdalternativen.

Värd Linux1-distribution Windows2-distribution
Förbrukningsplan ✅ Endast kod
❌ Container (stöds inte)
✅ Endast kod
Flex-förbrukningsplan ✅ Endast kod
❌ Container (stöds inte)
❌ Stöds inte
Premium-plan ✅ Endast kod
✅ Behållare
✅ Endast kod
Dedikerad plan ✅ Endast kod
✅ Behållare
✅ Endast kod
Container Apps ✅ Endast container ❌ Stöds inte
  1. Linux är det enda operativsystem som stöds för Python-körningsstacken.
  2. Windows-distributioner är endast kod. Functions stöder för närvarande inte Windows-containrar.

Varaktighet för tidsgräns för funktionsapp

Tidsgränsen för funktioner i en funktionsapp definieras av functionTimeout egenskapen i host.json-projektfilen. Den här egenskapen gäller specifikt för funktionskörningar. När utlösaren startar funktionskörningen måste funktionen returnera/svara inom tidsgränsen. Mer information finns i Förbättra Prestanda och tillförlitlighet för Azure Functions.

I följande tabell visas standardvärdena och maxvärdena (i minuter) för specifika planer:

Planera Standardvärde Maximalt1
Förbrukningsplan 5 10
Flex-förbrukningsplan 30 Obegränsad3
Premium-plan 302 Obegränsad3
Dedikerad plan 302 Obegränsad3
Container Apps 305 Obegränsad3
  1. Oavsett tidsgränsinställningen för funktionsappen är 230 sekunder den maximala tid som en HTTP-utlöst funktion kan ta för att svara på en begäran. Detta beror på den inaktiva tidsgränsen som är standard för Azure Load Balancer. För längre bearbetningstider bör du överväga att använda mönstret Durable Functions-asynkronisering eller skjuta upp det faktiska arbetet och returnera ett omedelbart svar.
  2. Standardtimeouten för version 1.x av Functions-körningen är obegränsad.
  3. Garanterat i upp till 60 minuter. Os- och körningskorrigeringar, sårbarhetskorrigeringar och skalning i beteenden kan fortfarande avbryta funktionskörningar så att du kan skriva robusta funktioner.
  4. I en Flex Consumption-plan tillämpar värden inte någon tidsgräns för körning. Det finns dock för närvarande inga garantier eftersom plattformen kan behöva avsluta dina instanser under inskalning, distributioner eller för att tillämpa uppdateringar.
  5. När det minsta antalet repliker är inställt på noll beror standardtimeouten på de specifika utlösare som används i appen.

Språkstöd

Mer information om aktuellt stöd för interna språkstackar i Functions finns i Språk som stöds i Azure Functions.

Skala

I följande tabell jämförs skalningsbeteendena för de olika värdplanerna.
Maximalt antal instanser ges per funktionsapp (Förbrukning) eller per plan (Premium/Dedikerad) om inget annat anges.

Planera Skala ut Maximalt antal instanser
Förbrukningsplan Händelsedriven. Skalas ut automatiskt, även under perioder med hög belastning. Functions-infrastrukturen skalar cpu- och minnesresurser genom att lägga till fler instanser av Functions-värden, baserat på antalet inkommande utlösarhändelser. Windows: 200
Linux: 1001
Flex-förbrukningsplan Skalning per funktion. Händelsedrivna skalningsbeslut beräknas per funktion, vilket ger ett mer deterministiskt sätt att skala funktionerna i din app. Med undantag för HTTP, Blob Storage (Event Grid) och Durable Functions skalas alla andra funktionsutlösartyper i din app på oberoende instanser. Alla HTTP-utlösare i din app skalas tillsammans som en grupp på samma instanser, liksom alla Blob Storage-utlösare (Event Grid). Alla Durable Functions-utlösare delar också instanser och skalar tillsammans. Begränsas endast av total minnesanvändning för alla instanser i en viss region. Mer information finns i Instansminne.
Premium-plan Händelsedriven. Skala ut automatiskt, även under perioder med hög belastning. Azure Functions-infrastrukturen skalar cpu- och minnesresurser genom att lägga till fler instanser av Functions-värden, baserat på antalet händelser som dess funktioner utlöses på. Windows: 100
Linux: 20-1002
Dedikerad plan3 Manuell/autoskalning 10-30
100 (ASE)
Container Apps Händelsedriven. Skala ut automatiskt, även under perioder med hög belastning. Azure Functions-infrastrukturen skalar cpu- och minnesresurser genom att lägga till fler instanser av Functions-värden, baserat på antalet händelser som dess funktioner utlöses på. 10-3004
  1. Under utskalning finns det för närvarande en gräns på 500 instanser per prenumeration per timme för Linux-appar i en förbrukningsplan.
  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. I Container Apps kan du ange det maximala antalet repliker, vilket respekteras så länge det finns tillräckligt med tillgängliga kärnor.

Beteende för kallstart

Planera Details
Förbrukningsplan Appar kan skalas till noll när de är inaktiva, vilket innebär att vissa begäranden kan ha mer svarstid vid start. Förbrukningsplanen har vissa optimeringar för att minska kallstartstiden, inklusive att hämta från förvärmda platshållarfunktioner som redan har värd- och språkprocesserna igång.
Flex-förbrukningsplan Stöder alltid redo instanser för att minska fördröjningen vid etablering av nya instanser.
Premium-plan Stöder alltid redo instanser för att undvika kallstarter genom att du kan underhålla en eller flera ständigt varma instanser.
Dedikerad plan När den körs i en dedikerad plan kan Functions-värden köras kontinuerligt på ett föreskrivet antal instanser, vilket innebär att kallstart egentligen inte är ett problem.
Container Apps Beror på det minsta antalet repliker:
• När värdet är noll: appar kan skalas till noll när de är inaktiva och vissa begäranden kan ha mer svarstid vid start.
• När värdet är inställt på en eller flera: värdprocessen körs kontinuerligt, vilket innebär att kallstart inte är ett problem.

Tjänstbegränsningar

Resurs Förbrukningsplan Flex consumption plan12 Premium-plan Dedikerad plan-ASE/ Container Apps
Standardtidslängd för tidsgräns (min) 5 30 30 301 3016
Maximal tidsgränsvaraktighet (min) 10 obundna15 obundna7 obundna2 obundna17
Maximalt antal utgående anslutningar (per instans) 600 aktiva (totalt 1 200) Obegränsad Obegränsad Obegränsad Obegränsad
Maximal storlek på begäran (MB)3 100 100 100 100 100
Maximal frågesträngslängd3 4096 4096 4096 4096 4096
Maximal url-längdför begäran 3 8192 8192 8192 8192 8192
ACU per instans 100 Varierar 210-840 100-840/210-2508 Varierar
Maximalt minne (GB per instans) 1.5 413 3.5-14 1.75-14/3.5-14 Varierar
Maximalt antal instanser (Windows/Linux) 200/100 1000 14 100/20 varierar beroende på SKU/1009 10-30018
Funktionsappar per plan11 100 100 100 obundna4 obundna4
App Service-planer 100 per region saknas 100 per resursgrupp 100 per resursgrupp saknas
Distributionsfack per app10 2 saknas 3 1-209 stöds inte
Lagring5 5 GB 250 GB 250 GB 50–1 000 GB saknas
Anpassade domäner per app 5006 500 500 500 stöds inte
SSL-stöd för anpassad domän Obundna SNI SSL-anslutningar ingår Obundna SNI SSL- och 1 IP SSL-anslutningar ingår Obundna SNI SSL- och 1 IP SSL-anslutningar ingår Obundna SNI SSL- och 1 IP SSL-anslutningar ingår stöds inte

Anmärkningar om tjänstbegränsningar:

  1. Som standard är tidsgränsen för Functions 1.x-körningen i en App Service-plan obundna.
  2. Kräver att App Service-planen är inställd på AlwaysOn. Betala till standardpriser.
  3. Dessa gränser anges i värden.
  4. Det faktiska antalet funktionsappar som du kan vara värd för beror på apparnas aktivitet, storleken på datorinstanserna och motsvarande resursanvändning.
  5. Lagringsgränsen är den totala innehållsstorleken i tillfällig lagring för alla appar i samma App Service-plan. Förbrukningsplanen använder Azure Files för tillfällig lagring.
  6. När din funktionsapp finns i en förbrukningsplan stöds endast CNAME-alternativet. För funktionsappar i en Premium-plan eller en App Service-plan kan du mappa en anpassad domän med antingen en CNAME- eller A-post.
  7. Garanterat i upp till 60 minuter.
  8. Arbetare är roller som är värdar för kundappar. Arbetare är tillgängliga i tre fasta storlekar: En vCPU/3,5 GB RAM-minne; Två vCPU/7 GB RAM-minne; Fyra vCPU/14 GB RAM-minne.
  9. Mer information finns i Begränsningar för App Service.
  10. Inklusive produktionsplatsen.
  11. Det finns för närvarande en gräns på 5 000 funktionsappar i en viss prenumeration.
  12. Flex Consumption-planen är för närvarande i förhandsversion.
  13. Instansstorlekar för Flex Consumption Plan definieras för närvarande som antingen 2 048 MB eller 4 096 MB. Mer information finns i Instansminne.
  14. Flex Consumption Plan under förhandsversionen har en regional prenumerationskvot som begränsar den totala minnesanvändningen för alla instanser i en viss region. Mer information finns i Instansminne.
  15. I en Flex Consumption-plan tillämpar värden inte någon tidsgräns för körning. Det finns dock för närvarande inga garantier eftersom plattformen kan behöva avsluta dina instanser under inskalning, distributioner eller för att tillämpa uppdateringar.
  16. När det minsta antalet repliker är inställt på noll beror standardtimeouten på de specifika utlösare som används i appen.
  17. När det minsta antalet repliker är inställt på en eller flera.
  18. I Container Apps kan du ange det maximala antalet repliker, vilket respekteras så länge det finns tillräckligt med tillgängliga kärnor.

Nätverksfunktioner

Funktion Förbrukningsplan Flex-förbrukningsplan Premium-plan Dedikerad plan-ASE/ Container Apps*
Inkommande IP-begränsningar ✅Ja ✅Ja ✅Ja ✅Ja ❌Nej
Inkommande privata slutpunkter ❌Nej ✅Ja ✅Ja ✅Ja ❌Nej
Integrering med virtuellt nätverk ❌Nej ✅Ja (regional) ✅Ja (regional) ✅Ja (regional och gateway) ✅Ja
Utlösare för virtuellt nätverk (icke-HTTP) ❌Nej ✅Ja ✅Ja ✅Ja ✅Ja
Hybridanslutningar (endast Windows) ❌Nej ❌ Nej ✅Ja ✅Ja ❌Nej
Utgående IP-begränsningar ❌Nej ✅Ja ✅Ja ✅Ja ❌Nej

*Mer information finns i Nätverk i Azure Container Apps-miljön.

Fakturering

Planera Details
Förbrukningsplan Betala bara för den tid som dina funktioner körs. Fakturering baseras på antalet körningar, körningstid och använt minne.
Flex-förbrukningsplan Faktureringen baseras på antalet körningar, minnet av instanser när de aktivt kör funktioner, plus kostnaden för alla alltid redo instanser. Mer information finns i Fakturering av flexförbrukningsplan.
Premium-plan Premium-planen baseras på antalet kärnsekunder och minne som används i de nödvändiga och förvärmda instanserna. Minst en instans per plan måste alltid hållas varm. Den här planen ger den mest förutsägbara prissättningen.
Dedikerad plan Du betalar samma för funktionsappar i en App Service-plan som för andra App Service-resurser, till exempel webbappar.

För en ASE finns det en fast månadskostnad som betalar för infrastrukturen och som inte ändras med miljöns storlek. Det finns också en kostnad per App Service-plan vCPU. Alla appar som har en ASE som värd finns i SKU med isolerad prissättning. Mer information finns i ase-översiktsartikeln.
Container Apps Faktureringen i Azure Container Apps baseras på din plantyp. Mer information finns i Fakturering i Azure Container Apps.

En direkt kostnadsjämförelse mellan dynamiska värdplaner (Förbrukning, Flexförbrukning och Premium) finns på prissättningssidan för Azure Functions. Priser för de olika alternativen för dedikerade abonnemang finns på prissidan för App Service. Information om hur du prissätter Värdtjänster för Container Apps finns i Prissättning för Azure Container Apps.

Begränsningar för att skapa nya funktionsappar i en befintlig resursgrupp

I vissa fall kan du få något av följande fel när du försöker skapa en ny värdplan för funktionsappen i en befintlig resursgrupp:

  • Prisnivån tillåts inte i den här resursgruppen
  • <> SKU_name arbetare är inte tillgängliga i resursgruppen <resource_group_name>

Detta kan inträffa när följande villkor uppfylls:

  • Du skapar en funktionsapp i en befintlig resursgrupp som någonsin har innehållit en annan funktionsapp eller webbapp. Till exempel stöds inte Linux-förbrukningsappar i samma resursgrupp som Linux Dedicated- eller Linux Premium-abonnemang.
  • Den nya funktionsappen skapas i samma region som föregående app.
  • Den tidigare appen är på något sätt inte kompatibel med din nya app. Det här felet kan inträffa mellan SKU:er, operativsystem eller andra funktioner på plattformsnivå, till exempel stöd för tillgänglighetszoner.

Orsaken till detta beror på hur funktionsapps- och webbappsplaner mappas till olika resurspooler när de skapas. Olika SKU:er kräver en annan uppsättning infrastrukturfunktioner. När du skapar en app i en resursgrupp mappas och tilldelas den resursgruppen till en specifik resurspool. Om du försöker skapa en annan plan i resursgruppen och den mappade poolen inte har de resurser som krävs uppstår det här felet.

När det här felet inträffar skapar du i stället din funktionsapp och värdplan i en ny resursgrupp.

Nästa steg