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:

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-portalen ä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. Azure-portalen gör det enkelt att skapa både Premium-planen och funktionsappen på samma gång. 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-portalen 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.

Inställningar för elastisk skalning i portalen

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.

Skala ut graf

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  • Plattformsavbrott kan orsaka en ohanterad avstängning och stoppa funktionskörningen.
  • 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 planstorleken och maxgränsen i Azure-portalen genom att välja alternativen Skala ut under Inställningar för en funktionsapp som distribuerats till planen.

Storleksinställningar för elastisk plan i portalen

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-portalen genom att välja alternativen Skala ut under Inställningar för en funktionsapp som distribuerats till planen.

Minsta instansinställningar i portalen

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 Lagring
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 bitnessplattformsinställningen är inställd på under Allmänt 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 100 20
Norra Kina 2 100 20
Asien, östra 100 20
USA, östra 100 100
USA, östra 2 100 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
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
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 100 20
USGov Texas 100 Inte tillgänglig
USGov Virginia 100 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
Västra USA 3 100 20

Mer information finns i den fullständiga regionala tillgängligheten för Azure Functions.

Nästa steg