Dela via


Azure Functions Flex konsumtionsplan-värdtjänst

Flex Consumption är en Linux-baserad Azure Functions-värdplan som bygger på en serverlös faktureringsmodell där du betalar för det du använder. Det ger dig mer flexibilitet och anpassningsbarhet genom att introducera privata nätverk, val av minnesstorlek för instanser och snabba/stora utskalningsfunktioner som fortfarande baseras på en serverlös modell.

Du kan granska fullständiga exempel som innehåller Flex Consumption-planen på exempellagringsplatsen för Flex Consumption-planen.

Benefits

Flex Consumption-planen bygger på styrkan i den serverlösa förbrukningsplanen, som omfattar dynamisk skalning och körningsbaserad fakturering. Med Flex Consumption får du även följande extra funktioner:

  • Kortare kalla starttider: Aktivera alltid redo instanser för att uppnå snabbare kallstartstider jämfört med förbrukningsplanen.
  • Stöd för virtuellt nätverk: Integrering av virtuellt nätverk gör att din serverlösa app kan köras i ett virtuellt nätverk.
  • Per-Function Skalning: Varje funktion i din app skalas separat baserat på dess arbetsbelastning, vilket kan leda till effektivare resursallokering.
  • Förbättrad samtidighetshantering: Bättre hantering av samtidiga körningar med konfigurerbara samtidighetsinställningar per funktion.
  • Flexibel minneskonfiguration: Flex Consumption erbjuder storleksalternativ för flera instansstorlekar , så att du kan optimera för dina specifika arbetsbelastningskrav.

Den här tabellen hjälper dig att direkt jämföra funktionerna i Flex Consumption med värdplanen för förbrukning.

Feature Consumption Flex Consumption
Skala till noll ✅ Ja ✅ Ja
Skalningsbeteende Händelsedriven Händelsedriven (snabb)
Virtuella nätverk ❌ Stöds inte ✅ Stödd
Dedikerad beräkningsresurs (lindra kallstarter) ❌ Ingen ✅ Alltid färdiga instanser (valfritt)
Billing Endast körningstid Körningstid + alltid redo instanser
Utökningsinstanser (max) 200 1000

En fullständig jämförelse av Flex Consumption-planen mot förbrukningsplanen och alla andra plan- och värdtyper finns i funktionsskala och värdalternativ.

Integrering av virtuellt nätverk

Flex Consumption utökar de traditionella fördelarna med förbrukningsplanen genom att lägga till stöd för integrering av virtuella nätverk. När dina appar körs i en Flex Consumption-plan kan de ansluta till andra Azure-tjänster som skyddas i ett virtuellt nätverk. Samtidigt som du fortfarande kan dra nytta av serverlös fakturering och skalning, tillsammans med skalnings- och dataflödesfördelarna med Flex Consumption-planen. Mer information finns i Aktivera integrering av virtuella nätverk.

Instansstorlekar

När du skapar din funktionsapp i en Flex Consumption-plan kan du välja minnesstorleken för de instanser som appen körs på. Se Fakturering för att lära dig hur minnesstorlekar för instanser påverkar kostnaderna för din funktionsapp.

För närvarande erbjuder Flex Consumption följande alternativ för instansstorlek:

Instansminne (MB) CPU-kärnor
512 0.25
2048 1
4096 2

Anmärkning

De cpu-kärnvärden som visas är typiska allokeringar för instanser med den angivna minnesstorleken. Initiala instanser kan dock beviljas något olika kärnallokeringar för att förbättra prestandan.

När du bestämmer vilken minnesstorlek för instansen som ska användas med dina appar bör du tänka på följande:

  • Minnesstorleken på 2 048 MB är standard och bör användas för de flesta scenarier. Minnesstorlekarna 512 MB och 4 096 MB är tillgängliga för scenarier som bäst passar programmets krav på samtidighet eller bearbetningskraft. Mer information finns i Konfigurera instansminne.
  • Du kan ändra minnesstorleken för instansen när som helst. Mer information finns i Konfigurera instansminne.
  • Instansresurser delas mellan din funktionskod och funktionstjänsten.
  • Ju större minnesstorlek för instansen, desto mer kan varje instans hantera när det gäller samtidiga körningar eller mer intensiva CPU- eller minnesarbetsbelastningar. Specifika skalningsbeslut är arbetsbelastningsspecifika.
  • Standardkonkurrensen för HTTP-utlösare beror på instansens minnesstorlek. Mer information finns i HTTP-utlösarens samtidighet.
  • Tillgängliga processorer och nätverksbandbredd tillhandahålls proportionellt mot en specifik instansstorlek.

Skalning per funktion

Samtidighet är en nyckelfaktor som avgör hur Flex Consumption-funktionsappar skalar. För att förbättra skalningsprestanda för appar med olika utlösartyper ger Flex Consumption-planen ett mer deterministiskt sätt att skala din app per funktion.

Det här skalningsbeteendet per funktion är en del av värdplattformen, så du behöver inte konfigurera din app eller ändra koden. Mer information finns i Artikeln om skalning per funktion i artikeln Händelsedriven skalning.

Vid skalning per funktion fattas beslut för vissa funktionsutlösare baserat på gruppaggregeringar. Den här tabellen visar den definierade uppsättningen funktionsskalningsgrupper:

Skala grupper Utlösare i grupp Inställningsvärde
HTTP-utlösare HTTP-utlösare
SignalR-utlösare
http
Blob Storage-utlösare
(Event Grid-baserad)
Blob Storage-utlösare blob
Durable Functions Orkestreringsutlösare
Aktivitetsutlösare
Entitetsutlösare
durable

Alla andra funktioner i appen skalas individuellt i sin egen uppsättning instanser, som refereras med hjälp av konventionen function:<NAMED_FUNCTION>.

Alltid redo enheter

Flex Consumption innehåller en alltid redo funktion som gör att du kan välja instanser som alltid körs och tilldelas till var och en av dina skalningsgrupper eller funktioner per funktion. Alltid redo är ett bra alternativ för scenarier där du måste ha ett minsta antal instanser som alltid är redo att hantera begäranden. Du kan till exempel minska programmets svarstid för kallstart. Standardvärdet är 0 (noll).

Om du till exempel alltid ställer in redo till 2 för din HTTP-grupp med funktioner, ser plattformen till att två instanser alltid körs och tilldelas till din app för dina HTTP-funktioner i appen. Dessa instanser bearbetar dina funktionskörningar, men beroende på samtidighetsinställningar skalar plattformen bortom dessa två instanser med instanser på begäran.

Inte mindre än två alltid redo instanser kan konfigureras per funktion eller funktionsgrupp medan zonredundans är aktiverat.

Information om hur du konfigurerar alltid redo-instanser finns i Ange antal alltid redo-instanser.

Concurrency

Samtidighet avser antalet parallella körningar av en funktion på en instans av din app. Du kan ange ett maximalt antal samtidiga körningar som varje instans ska hantera vid en viss tidpunkt. Samtidighet har en direkt effekt på hur appen skalar eftersom du på lägre samtidighetsnivåer behöver fler instanser för att hantera den händelsedrivna efterfrågan på en funktion. Även om du kan kontrollera och finjustera samtidigheten tillhandahåller vi standardvärden som fungerar i de flesta fall.

Information om hur du anger samtidighetsgränser för HTTP-utlösarfunktioner finns i Ange HTTP-samtidighetsgränser. Information om hur du anger samtidighetsgränser för icke-HTTP-utlösarfunktioner finns i Målbasskalning.

Deployment

Distributioner i Flex Consumption-planen följer en enda sökväg och appinställningarna behöver inte längre påverka distributionsbeteendet. När projektkoden har skapats och zippads i ett programpaket distribueras den till en bloblagringscontainer. Vid start hämtar appen paketet och kör funktionskoden från det här paketet. Som standard används samma lagringskonto som används för att lagra interna värdmetadata (AzureWebJobsStorage) som distributionscontainer. Du kan dock använda ett alternativt lagringskonto eller välja önskad autentiseringsmetod genom att konfigurera appens distributionsinställningar.

Distributioner med noll stilleståndstid

Anmärkning

Distributioner med noll stilleståndstid med löpande uppdateringar är för närvarande i offentlig förhandsversion.

Flex Consumption tillhandahåller distributioner utan stilleståndstid via löpande uppdateringar som platsuppdateringsstrategi, vilket gör att koddistributioner och konfigurationsändringar kan tillämpas gradvis över instanser utan att avbryta funktionskörningen. Andra värdplaner använder distributionsplatser för att minimera driftstopp under distributioner. Distributionsalternativ för alla värdplaner finns i optimera distributioner.

Billing

Det finns två lägen där dina kostnader bestäms när du kör dina appar i Flex Consumption-planen. Varje läge bestäms per instans.

Faktureringsläge Description
På begäran När du kör i läget på begäran debiteras du endast under den tid som funktionskoden körs på dina tillgängliga instanser. I läget på begäran krävs inget minsta antal instanser. Du debiteras för:

• Den totala mängden minne som etablerats medan varje instans på begäran aktivt kör funktioner (i GB-sekunder), minus ett kostnadsfritt beviljande av GB per månad.
• Det totala antalet körningar, minus ett kostnadsfritt bidrag (antal) körningar per månad.
Alltid redo Du kan konfigurera en eller flera instanser, tilldelade till specifika utlösartyper (HTTP/Durable/Blob) och enskilda funktioner, som alltid är tillgängliga för att hantera begäranden. När du har aktiverat alla alltid redo instanser debiteras du för:

• Den totala mängden minne som har etablerats för alla dina alltid klara instanser, så kallad baslinje (i GB-sekunder).
• Den totala mängden minne som har etablerats under den tid då varje alltid redo instans aktivt kör funktioner (i GB-sekunder).
• Det totala antalet utföranden.

Vid alltid redo fakturering finns det inga kostnadsfria bidrag.

Den mest up-todatuminformation om körningspriser, alltid redo baslinjekostnader och kostnadsfria bidrag för körningar på begäran finns på sidan med priser för Azure Functions.

Den minsta fakturerbara körningsperioden för båda körningslägena är 1 000 ms. Efter det avrundas den fakturerbara aktivitetsperioden upp till närmaste 100 ms. Du hittar information om faktureringsmätare för Flex Consumption Plan i övervakningsreferensen.

Mer information om hur kostnader beräknas när du kör en Flex Consumption-plan, inklusive exempel, finns i Förbrukningsbaserade kostnader och Visa kostnadsrelaterade data.

Språkstackversioner som stöds

Den här tabellen visar de språkstackversioner som för närvarande stöds för Flex Consumption-appar:

Språkstacken Nödvändig version
C# (isolerat processläge)1 .NET 82, .NET 93
Java Java 11, Java 17, Java 21
Node.js Node.js 20, Node.js 22
PowerShell PowerShell 7.4
Python Python 3.10, Python 3.11, Python 3.12
  1. C#-läget i processen stöds inte. I stället måste du migrera .NET-kodprojektet för att köras i den isolerade arbetsmodellen.
  2. Kräver version 1.20.0 eller senare av Microsoft.Azure.Functions.Worker och version 1.16.2 eller senare av Microsoft.Azure.Functions.Worker.Sdk.
  3. Kräver version 2.0.0 eller senare av både Microsoft.Azure.Functions.Worker och Microsoft.Azure.Functions.Worker.Sdk.

Minneskvoter för regionala prenumerationer

Flex Consumption-planen har en minnesbaserad kvot som begränsar hur mycket beräkning alla dina Flex Consumption-appar kan använda samtidigt i en viss region och prenumeration. Anta att du har en bucket med minne mätt i GB eller CPU-kärnor för hela prenumerationen i en region. Alla dina Flex Consumption-appar i den regionen delar den här bucketen. Om dina Flex Consumption-appar försöker använda mer än vad kvoten tillåter, kan vissa körningar fördröjas eller begränsas i skalning, men du kommer inte att blockeras från att skapa eller distribuera appar.

För närvarande har varje region i en given prenumeration en standardkvot på det lägre av antingen 512,000 MB eller 250 kärnor för alla instanser av appar som körs på Flex Consumption-planer. Dessa kvoter innebär att du i en viss prenumeration och region kan ha valfri kombination av minnesstorlekar och antal instanser, så länge de håller sig under kvotgränserna. I vart och ett av dessa scenarier uppnås till exempel kvoten och appar i regionen slutar skala:

  • Du har en 512 MB-app skalad till 250 instanser och en andra 512 MB-app skalad till 750 instanser.
  • Du har en 512-MB-app som är skalad till 1 000 instanser.
  • Du har en app på 2 048 MB skalad till 100 och en andra 2 048 MB-app skalad till 150 instanser
  • Du har en app på 2 048 MB som skalas ut till 250 instanser
  • Du har en app på 4 096 MB som skalas ut till 125 instanser
  • Du har en app på 4 096 MB skalad till 100 och en 2 048 MB-app skalad till 50 instanser

Flex Consumption-appar som skalas till noll eller instanser som markerats för att skalas in och tas bort räknas inte mot kvoten. Den här kvoten kan ökas så att dina Flex Consumption-appar kan skalas ytterligare, beroende på dina krav. Om dina appar kräver en större kvot skapar du ett supportärende.

Inaktuella egenskaper och inställningar

I Flex Consumption-planen är många av standardprograminställningarna och platskonfigurationsegenskaperna inaktuella eller har flyttats och bör inte användas när funktionsappens resursskapande automatiseras. Mer information finns i Utfasningar av flexförbrukningsplan.

Considerations

Tänk på följande när du använder Flex Consumption Plan:

  • Appar per plan: Endast en app tillåts per Flex Consumption-plan.
  • Värd: Det finns en tidsgräns på 30 sekunder för appinitiering. När funktionsappen tar mer än 30 sekunder att starta kan du se gRPC-relaterade System.TimeoutException-poster loggas. Du kan för närvarande inte konfigurera den här tidsgränsen. Mer information finns i det här värdarbetsobjektet.
  • Durable Functions: Azure Storage är för närvarande den enda lagringsprovider som stöds för Durable Functions när den finns i Flex Consumption-planen. Se rekommendationer när du är värd för Durable Functions i Flex Consumption-planen.
  • Integrering av virtuellt nätverk Kontrollera att Microsoft.App Azure-resursprovidern är aktiverad för din prenumeration genom att följa dessa instruktioner. Delegeringen av undernät som krävs för Flex Consumption-appar är Microsoft.App/environments.
  • Utlösare: Alla utlösare stöds fullt ut i en Flex Consumption-plan, men Blob Storage-utlösaren stöder endast Event Grid-källan. Icke-C#-funktionsappar måste använda versionen [4.0.0, 5.0.0) av tilläggspaketet eller en senare version.
  • Regioner: För närvarande stöds inte alla regioner. Mer information finns i Visa regioner som stöds för närvarande.
  • Distributioner: Distributionsplatser stöds inte för närvarande.
  • Skala: Den lägsta maximala skalan är för närvarande 40. Det högsta värdet som stöds för närvarande är 1000.
  • Hanterade beroenden: Hanterade beroenden i PowerShell stöds inte av Flex-förbrukning. Du måste i stället ladda upp moduler med appinnehåll.
  • Certifikat: Inläsning av certifikat med inställningen WEBSITE_LOAD_CERTIFICATES app, hanterade certifikat, apptjänstcertifikat och andra plattformscertifikatbaserade funktioner som endToEndEncryptionEnabled stöds för närvarande inte.
  • Tidszoner: WEBSITE_TIME_ZONE och TZ appinställningar stöds för närvarande inte när de körs i Flex Consumption Plan.

Värdalternativ för Azure FunctionsSkapa och hantera funktionsappar i Flex Consumption-planen