Azure Functions Flex Consumption Plan hosting
Flex Consumption är en Linux-baserad Azure Functions-värdplan som bygger på förbrukningslönen för det du använder en serverlös faktureringsmodell. 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.
Viktigt!
Flex Consumption-planen är för närvarande i förhandsversion. En lista över aktuella begränsningar när du använder den här värdplanen finns i Överväganden. Aktuell information om fakturering under förhandsversionen finns i Fakturering.
Du kan granska exempel från slutpunkt till slutpunkt som innehåller Flex Consumption-planen på lagringsplatsen flexförbrukningsplanexempel.
Förmåner
Flex Consumption-planen bygger på fördelarna med förbrukningsplanen, som omfattar dynamisk skalning och körningsbaserad fakturering. Med Flex Consumption får du även följande extra funktioner:
- Alltid redo instanser
- Integrering med virtuellt nätverk
- Snabb skalning baserat på samtidighet för både HTTP- och icke-HTTP-appar
- Flera alternativ för minnesstorlekar för instanser
Den här tabellen hjälper dig att direkt jämföra funktionerna i Flex Consumption med förbrukningsvärdplanen:
Funktion | Förbrukning | Flex-förbrukning |
---|---|---|
Skala till noll | ✅ Ja | ✅ Ja |
Skalningsbeteende | Händelsedriven | Händelsedriven (snabb) |
Virtuella nätverk | ❌ Stöds inte | ✅ Stödd |
Dedikerad beräkning (minimera kallstarter) | ❌ Ingen | ✅ Alltid redo instanser (valfritt) |
Fakturering | Endast körningstid | Körningstid + alltid redo instanser |
Skalbara instanser (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.
Virtual Network-integration
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.
Instansminne
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 alternativ för minnesstorlek för instanser på både 2 048 MB och 4 096 MB.
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. Använd minnesstorleken 4 096 MB för scenarier där din app kräver mer samtidighet eller högre 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 funktionskoden och Functions-värden.
- 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 |
Bestående funktioner | 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 instanser
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. Det här ä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, till exempel för att 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.
Information om hur du konfigurerar alltid redo-instanser finns i Ange antal alltid redo-instanser.
Samtidighet
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. Mer information finns i HTTP-utlösarens samtidighet.
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.
Distribution
Distributioner i Flex Consumption-planen följer en enda sökväg. 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. När du effektiviserar distributionssökvägen behöver appinställningarna inte längre påverka distributionsbeteendet.
Fakturering
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 | beskrivning |
---|---|
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 kunna 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 körningar. I alltid redo fakturering finns det inga kostnadsfria bidrag. |
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.
Den senaste informationen om körningspriser, alltid redo baslinjekostnader och kostnadsfria bidrag för körningar på begäran finns på prissättningssidan för Azure Functions.
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 |
Java | Java 11, Java 17 |
Node.js | Nod 20 |
PowerShell | PowerShell 7.4 |
Python | Python 3.10, Python 3.11 |
1C# i processläge stöds inte. I stället måste du migrera .NET-kodprojektet för att köras i den isolerade arbetsmodellen.
2Krä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.
Minneskvoter för regionala prenumerationer
För närvarande har varje region i en viss prenumeration en minnesgräns 512,000 MB
för alla instanser av appar som körs i Flex Consumption-abonnemang. Det 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änsen. Vart och ett av följande exempel skulle till exempel innebära att kvoten har nåtts och att apparna slutar skala:
- 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 2 048 MB-app 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
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 en supportbegäran.
Inaktuella egenskaper och inställningar
I Flex Consumption är många av de standardprograminställningar och platskonfigurationsegenskaper som används i Bicep, ARM-mallar och övergripande kontrollplan inaktuella eller har flyttats och bör inte användas när funktionsappens resursskapande automatiseras. Mer information finns i Utfasningar av flexförbrukningsplan.
Att tänka på
Tänk på följande när du använder Flex Consumption-planen under den aktuella förhandsversionen:
- Värd: Det finns en tidsgräns på 30 sekunder för initieringen av appen. Om det tar längre tid än 30 sekunder att starta din funktionsapp visas gRPC-relaterade System.TimeoutException-poster. Den här tidsgränsen kan konfigureras och ett tydligare undantag implementeras som en del av det här värdarbetsobjektet.
- Durable Functions: På grund av skalningen per funktion för Flex Consumption rekommenderar vi att du anger antalet Always Ready-instanser
durable
för gruppen till1
för att säkerställa bästa prestanda för Durable Functions. Med Azure Storage-providern bör du också överväga att minska köns avsökningsintervall till 10 sekunder eller mindre. Endast Azure Storage stöds som en serverdelslagringsproviders för Flex Consumption-värdbaserade varaktiga funktioner. - VNet-integrering Se till att
Microsoft.App
Azure-resursprovidern är aktiverad för din prenumeration genom att följa dessa instruktioner. Delegering av undernät som krävs av Flex Consumption-appar ärMicrosoft.App/environments
. - Utlösare: Alla utlösare stöds fullt ut förutom Kafka- och Azure SQL-utlösare. 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 i förhandsversionen är
40
. Det högsta värdet som stöds för närvarande är1000
. - Hanterade beroenden: Hanterade beroenden i PowerShell stöds inte av Flex-förbrukning. Du måste i stället definiera dina egna anpassade moduler.
- Diagnostikinställningar: Diagnostikinställningar stöds inte för närvarande.
- Certifikat: Inläsning av certifikat med inställningen WEBSITE_LOAD_CERTIFICATES app stöds för närvarande inte.
- Key Vault-referenser: Key Vault-referenser i appinställningar fungerar inte när Key Vault är nätverksåtkomsten begränsad, även om funktionsappen har integrering av virtuellt nätverk. Den aktuella lösningen är att direkt referera till Key Vault i koden och läsa de nödvändiga hemligheterna.
- Montering av Azure Files-filresurs: Montering av en Azure Files-filresurs fungerar inte när funktionsappen har integrering av virtuellt nätverk.
Relaterade artiklar
Värdalternativför Azure Functions Skapa och hantera funktionsappar i Flex Consumption-planen