Azure Functions-premiumplan
Azure Functions Elastic Premium-planen är ett värdalternativ för dynamisk skalning för funktionsappar. Andra alternativ för värdplaner finns i artikeln värdplan.
Viktigt!
Azure Functions kan köras på Azure App Service-plattformen. På App Service-plattformen kallas planer som är värdar för Funktionsappar för Premium-plan elastic premium-planer, med SKU-namn som EP1
. Om du väljer att köra funktionsappen på en Premium-plan ska du skapa en plan med ett SKU-namn som börjar med "E", till exempel EP1
. App Service-plan-SKU-namn som börjar med "P", till exempel P1V2
(Premium V2 Small Plan), är faktiskt dedikerade värdplaner. Eftersom de är dedikerade och inte Elastic Premium skalas inte planer med SKU-namn som börjar med "P" dynamiskt och kan öka dina kostnader.
Premium-planvärd ger följande fördelar för dina funktioner:
- Undvik kyla börjar med varma instanser.
- Anslutning till virtuellt nätverk.
- Stöder längre körningsvaraktighet.
- Val av Premium-instansstorlekar.
- Mer förutsägbar prissättning jämfört med förbrukningsplanen.
- Appallokering med hög densitet för planer med flera funktionsappar.
- Stöder Linux-containerdistributioner.
När du använder Premium-planen läggs instanser av Azure Functions-värden till och tas bort baserat på antalet inkommande händelser, precis som förbrukningsplanen. Flera funktionsappar kan distribueras till samma Premium-plan, och med planen kan du konfigurera beräkningsinstansens storlek, basplansstorlek och maximal planstorlek.
Fakturering
Faktureringen för Premium-planen baseras på antalet kärnsekunder och mängden allokerat minne på instanserna. Den här faktureringen skiljer sig från förbrukningsplanen, som faktureras baserat på resursförbrukning och körningar per sekund. Det finns ingen körningsavgift med Premium-planen. Den här faktureringen resulterar i en minsta månadskostnad per aktiv plan, oavsett om funktionen är aktiv eller inaktiv. Tänk på att alla funktionsappar i en Premium-plan delar allokerade instanser. Mer information finns på prissättningssidan för Azure Functions.
Kommentar
Varje premiumplan har minst en aktiv (fakturerad) instans hela tiden.
Skapa en Premium-plan
När du skapar en funktionsapp i Azure Portal är förbrukningsplanen standard. Om du vill skapa en funktionsapp som körs i en Premium-plan måste du uttryckligen skapa eller välja en Azure Functions Premium-värdplan med någon av Elastic Premium-SKU :erna. Funktionsappen som du skapar finns sedan i den här planen. Med Azure Portal är det enkelt att skapa både Premium-planen och funktionsappen samtidigt. Du kan köra mer än en funktionsapp i samma Premium-plan, men båda måste köras på samma operativsystem (Windows eller Linux).
Följande artiklar visar hur du programmatiskt skapar en funktionsapp med en Premium-plan:
Eliminera kallstarter
När händelser eller körningar inte inträffar i förbrukningsplanen kan appen skalas till noll instanser. När nya händelser kommer in måste en ny instans med appen som körs på den vara specialiserad. Det tar tid att specialisera nya instanser, beroende på appen. Den här extra svarstiden för det första anropet kallas ofta för appkylstart.
Premium-planen innehåller två funktioner som fungerar tillsammans för att effektivt eliminera kallstarter i dina funktioner: alltid redo instanser och förvärmda instanser. Alltid redo instanser är en kategori av förallokerade instanser som inte påverkas av skalning, och de förinställda är en buffert när du skalar på grund av HTTP-händelser.
När händelser börjar utlösa appen dirigeras de först till de alltid redo instanserna. När funktionen blir aktiv på grund av HTTP-händelser värms andra instanser upp som en buffert. Dessa buffrade instanser kallas förvärmda instanser. Den här bufferten minskar kallstarten för nya instanser som krävs under skalning.
Alltid redo instanser
I Premium-planen kan du alltid ha din app redo för ett angivet antal instanser. Appen körs kontinuerligt på dessa instanser, oavsett belastning. Om belastningen överskrider vad dina alltid redo-instanser kan hantera läggs fler instanser till efter behov, upp till det angivna maxvärdet.
Den här inställningen på appnivå styr även planens minsta instanser. Överväg till exempel att ha tre funktionsappar i samma Premium-plan. När två av dina appar alltid har antalet redo instanser inställt på en och i en tredje instans är det inställt på fem, det minsta antalet för hela planen är fem. Detta återspeglar också det minsta antalet instanser som din plan faktureras för. Det maximala antalet alltid redo instanser som vi stöder per app är 20.
Du kan konfigurera antalet alltid redo instanser i Azure Portal genom att välja funktionsappen, gå till fliken Plattformsfunktioner och välja alternativen Skala ut. I funktionsappens redigeringsfönster är alltid redo instanser specifika för den appen.
Förinställda instanser
Inställningen för antalet förvärmda instanser ger varma instanser som en buffert under HTTP-skalnings- och aktiveringshändelser. Förinställda instanser fortsätter att buffrar tills den maximala utskalningsgränsen har nåtts. Standardantalet för förvärmd instans är 1 och för de flesta scenarier bör det här värdet förbli som 1.
Överväg ett mindre vanligt scenario, till exempel en app som körs i en anpassad container. Eftersom anpassade containrar har en lång uppvärmning kan du överväga att öka den här bufferten med förvärmade instanser. En förinstans blir aktiv först när alla aktiva instanser används.
Du kan också definiera en uppvärmningsutlösare som körs under förvärmningsprocessen. Du kan använda en uppvärmningsutlösare för att förinstallera anpassade beroenden under förvarningsprocessen så att dina funktioner är redo att börja bearbeta begäranden omedelbart. Mer information finns i Uppvärmningsutlösaren för Azure Functions.
Tänk på det här exemplet på hur alltid redo-instanser och förvärmade instanser fungerar tillsammans. En Premium-funktionsapp har två alltid redo instanser konfigurerade och standardvärdet för en förvärmd instans.
- När appen är inaktiv och inga händelser utlöses etableras appen och körs med två instanser. För närvarande debiteras du för de två alltid redo instanserna men debiteras inte för en förvärmd instans eftersom ingen fördefinierad instans allokeras.
- När ditt program börjar ta emot HTTP-trafik lastbalanseras begäranden över de två alltid redo instanserna. Så snart dessa två instanser börjar bearbeta händelser läggs en instans till för att fylla den förvärmde bufferten. Appen körs nu med tre etablerade instanser: de två alltid redo instanserna och den tredje förinställda och inaktiva bufferten. Du debiteras för de tre instanserna.
- När belastningen ökar och appen behöver fler instanser för att hantera HTTP-trafik växlas den förvärmda instansen till en aktiv instans. HTTP-belastningen dirigeras nu till alla tre instanserna och en fjärde instans etableras omedelbart för att fylla den förvärmda bufferten.
- Den här sekvensen av skalning och förvarning fortsätter tills det maximala instansantalet för appen har nåtts eller belastningen minskar vilket gör att plattformen skalar in igen efter en period. Inga instanser är förinställda eller aktiverade utöver det maximala.
Du kan inte ändra inställningen för förvärmt antal instanser i portalen. Du måste i stället använda Azure CLI eller Azure PowerShell.
Maximalt antal funktionsappinstanser
Utöver planens maximala antal bursts kan du konfigurera ett maximalt antal per app. Appens maxgräns kan konfigureras med hjälp av appens skalningsgräns. Den maximala gränsen för utskalning av appar får inte överskrida planens maximala burst-instanser.
Anslutning till privat nätverk
Funktionsappar som distribueras till en Premium-plan kan dra nytta av integrering av virtuella nätverk för webbappar. När den är konfigurerad kan din app kommunicera med resurser i ditt virtuella nätverk eller skyddas via tjänstslutpunkter. IP-begränsningar är också tillgängliga i appen för att begränsa inkommande trafik.
När du tilldelar ett undernät till din funktionsapp i en Premium-plan behöver du ett undernät med tillräckligt med IP-adresser för varje potentiell instans. Vi kräver ett IP-block med minst 100 tillgängliga adresser.
Mer information finns i integrera funktionsappen med ett virtuellt nätverk.
Snabb elastisk skalning
Fler beräkningsinstanser läggs automatiskt till för din app med samma snabba skalningslogik som förbrukningsplanen. Appar i samma App Service-plan skalas oberoende av varandra baserat på behoven hos en enskild app. Functions-appar i samma App Service-plan delar dock vm-resurser för att minska kostnaderna när det är möjligt. Antalet appar som är associerade med en virtuell dator beror på fotavtrycket för varje app och storleken på den virtuella datorn.
Mer information om hur skalning fungerar finns i Händelsedriven skalning i Azure Functions.
Varaktighet för längre körning
Funktioner i en förbrukningsplan är begränsade till 10 minuter för en enda körning. I Premium-planen är körningstiden som standard 30 minuter för att förhindra körning av skenande körningar. Du kan dock ändra konfigurationen för host.json så att varaktigheten blir obundna för Premium-planappar, med följande begränsningar:
- Plattformsuppgraderingar kan utlösa en hanterad avstängning och stoppa funktionskörningen med en respitperiod på 10 minuter.
- Det finns en inaktiv timer som stoppar arbetaren efter 60 minuter utan nya körningar.
- Inskalningsbeteende kan orsaka arbetsavstängning efter 60 minuter.
- Fackbyten kan avsluta körningar på käll- och målplatserna under växlingen.
Migrering
Om du har en befintlig funktionsapp kan du använda Azure CLI-kommandon för att migrera din app mellan en förbrukningsplan och en Premium-plan i Windows. De specifika kommandona beror på migreringens riktning. Mer information finns i Planera migrering.
Den här migreringen stöds inte i Linux.
Inställningar för Premium-plan
När du skapar planen finns det två inställningar för planstorlek: det minsta antalet instanser (eller planstorlek) och den maximala burst-gränsen.
Om din app kräver instanser utöver de alltid redo instanserna kan den fortsätta att skalas ut tills antalet instanser når planens maximala burst-gräns eller appens maximala utskalningsgräns om den konfigureras. Du debiteras endast för instanser när de körs och allokeras till dig per sekund. Plattformen gör sitt bästa för att skala ut din app till de definierade maxgränserna.
Du kan konfigurera planens storlek och max i Azure Portal genom att välja alternativen Skala ut under Inställningar för en funktionsapp som distribueras till planen.
Minimivärdet för varje Premium-plan är minst en instans. Det faktiska minsta antalet instanser bestäms för dig baserat på de alltid redo instanser som begärs av appar i planen. Om app A till exempel begär fem alltid redo instanser och app B begär två alltid redo instanser i samma plan bestäms den minsta planstorleken som fem. App A körs på alla fem och app B körs bara på 2.
Viktigt!
Du debiteras för varje instans som allokeras i minsta antal instanser oavsett om funktionerna körs eller inte.
I de flesta fall räcker detta autoberäknade minimum. Skalning utöver minimum sker dock på bästa sätt. Det är möjligt, även om det är osannolikt, att utskalning vid en viss tidpunkt kan fördröjas om andra instanser inte är tillgängliga. Genom att ange ett minimum som är högre än det autoberäknade minimumet reserverar du instanser före utskalning.
Du kan konfigurera de minsta instanserna i Azure Portal genom att välja skalningsalternativen under Inställningar för en funktionsapp som distribuerats till planen.
Tillgängliga instans-SKU:er
När du skapar eller skalar din plan kan du välja mellan tre instansstorlekar. Du debiteras för det totala antalet kärnor och allokerat minne per sekund som varje instans allokeras till dig. Din app kan automatiskt skalas ut till flera instanser efter behov.
SKU | Kärnor | Minne | Storage |
---|---|---|---|
EP1 | 1 | 3,5 GB | 250 GB |
EP2 | 2 | 7 GB | 250 GB |
EP3 | 4 | 14 GB | 250 GB |
Överväganden för minnesanvändning
Att köra på en dator med mer minne innebär inte alltid att funktionsappen använder allt tillgängligt minne.
Till exempel begränsas en JavaScript-funktionsapp av standardminnesgränsen i Node.js. Om du vill öka den här fasta minnesgränsen lägger du till appinställningen languageWorkers:node:arguments
med värdet --max-old-space-size=<max memory in MB>
.
Och för planer med mer än 4 GB minne kontrollerar du att 64 Bit
Bitness Platform-inställningen är inställd på under Allmänna inställningar.
Maximal utskalning för region
Det här är de högsta utskalningsvärden som stöds för en enskild plan i varje region och os-konfiguration:
Region | Windows | Linux |
---|---|---|
Australien, centrala | 100 | 20 |
Australien, centrala 2 | 100 | Inte tillgänglig |
Australien, östra | 100 | 40 |
Sydöstra Australien | 100 | 20 |
Brasilien, södra | 100 | 20 |
Kanada, centrala | 100 | 100 |
Indien, centrala | 100 | 20 |
Centrala USA | 100 | 100 |
Östra Kina 2 | 20 | 20 |
Norra Kina 2 | 20 | 20 |
Norra Kina 3 | 20 | 20 |
Asien, östra | 100 | 20 |
USA, östra | 100 | 100 |
USA, östra 2 | 80 | 100 |
Centrala Frankrike | 100 | 60 |
Tyskland, västra centrala | 100 | 20 |
Israel, centrala | 100 | 20 |
Italien, norra | 100 | 20 |
Japan, östra | 100 | 20 |
Västra Japan | 100 | 20 |
Jio Västra Indien | 100 | 20 |
Sydkorea, centrala | 100 | 20 |
Södra Korea | 40 | 20 |
Mexiko, centrala | 20 | 20 |
Norra centrala USA | 100 | 20 |
Europa, norra | 100 | 100 |
Norge, östra | 100 | 20 |
Sydafrika, norra | 100 | 20 |
Sydafrika, västra | 20 | 20 |
USA, södra centrala | 100 | 100 |
Södra Indien | 100 | Inte tillgänglig |
Sydostasien | 100 | 20 |
Spanien, centrala | 20 | 20 |
Schweiz, norra | 100 | 20 |
Schweiz, västra | 100 | 20 |
Förenade Arabemiraten, norra | 100 | 20 |
Södra Storbritannien | 100 | 100 |
Västra Storbritannien | 100 | 20 |
USGov Arizona | 20 | 20 |
USGov Texas | 20 | Inte tillgänglig |
USGov Virginia | 80 | 20 |
Västra centrala USA | 100 | 20 |
Västeuropa | 100 | 100 |
Västra Indien | 100 | 20 |
Västra USA | 100 | 100 |
Västra USA 2 | 100 | 20 |
USA, västra 3 | 100 | 20 |
Mer information finns i den fullständiga regionala tillgängligheten för Azure Functions.