Azure Functions Premium plan

Den Azure Functions Elastic Premium är ett värdalternativ för dynamisk skalning för funktionsappar. Andra alternativ för värdplan finns i artikeln om värdplan.

Viktigt

Azure Functions körs på Azure App Service plattformen. I App Service-plattformen kallas planer Premium värd för planfunktionsappar för Elastic Premium-planer, med SKU-namn som EP1 . Om du väljer att köra funktionsappen på en Premium plan måste 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 (Premium V2 Small-plan), är i själva P1V2 verket dedikerade värdplaner. Eftersom de är dedikerade och inte elastic Premium skalas planer med SKU-namn som börjar med "P" inte dynamiskt och kan öka dina kostnader.

Premium värdtjänster ger följande fördelar till dina funktioner:

  • Undvik kallstarter med kontinuerligt varma instanser
  • Virtuell nätverksanslutning.
  • Obegränsad körningstid, med 60 minuter garanterat.
  • Premium instansstorlekar: en kärna, två kärnor och fyra kärninstanser.
  • Mer förutsägbar prissättning jämfört med förbrukningsplanen.
  • Högdensitetsappallokering för planer med flera funktionsappar.

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, basplanstorlek och maximal planstorlek.

Fakturering

Faktureringen för Premium plan baseras på antalet kärnsekunder och allokerat minne mellan instanser. Den här faktureringen skiljer sig från förbrukningsplanen, som faktureras per körning och förbrukat minne. Det finns ingen körningsavgift med Premium plan. Minst en instans måste alltid allokeras per plan. 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 delar allokerade instanser. Mer information finns på Azure Functions prissättningssidan.

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 en App Service plan med någon av SKU:erna för Elastic Premium. Funktionsappen som du skapar finns sedan i den här planen. Den Azure Portal gör det enkelt att skapa både Premium-planen och funktionsappen på samma gång. Du kan köra fler än en funktionsapp i samma Premium plan, men de körs oftast på samma operativsystem (Windows eller Linux).

Följande artiklar visar hur du skapar en funktionsapp med en Premium plan, antingen programmässigt eller i Azure Portal:

Eliminera kallstarter

När händelser eller körningar inte inträffar i förbrukningsplanen kan din app skalas till noll instanser. När nya händelser inträffar måste en ny instans med appen köras på den vara specialiserad. Det kan ta lite tid att specialisera nya instanser beroende på appen. Den här ytterligare svarstiden för det första anropet kallas ofta för kallstart för appar.

Premium plan innehåller två funktioner som fungerar tillsammans för att effektivt eliminera kallstarter i dina funktioner: alltid redo instanser och förinstallerade instanser.

Instanser som alltid är redo

I Premium kan du alltid ha appen redo på ett angivet antal instanser. Det maximala antalet always ready-instanser är 20. När händelser börjar utlösa appen dirigeras de först till instanserna som alltid är redo. När funktionen blir aktiv, kommer ytterligare instanser att värmas upp som en buffert. Den här bufferten förhindrar kallstart för nya instanser som krävs under skalning. Dessa buffrade instanser kallas förför varma instanser. Med en kombination av instanserna som alltid är redo och en förvarad buffert kan din app effektivt eliminera kallstart.

Anteckning

Varje Premium-plan har minst en aktiv (fakturerad) instans hela tiden.

Du kan konfigurera antalet always ready-instanser i Azure Portal genom att välja funktionsappen, gå till fliken Plattformsfunktioner och välja alternativen för Att skala ut. I funktionsappens redigeringsfönster är alltid redo-instanser specifika för den appen.

Elastisk skalning Inställningar

Förinstallerade instanser

Förhettade instanser är instanser som värmes upp som en buffert under skalnings- och aktiveringshändelser. Förhettade instanser fortsätter att buffra tills den maximala utskalningsgränsen har nåtts. Standardantalet för förinstallerade instanser är 1, och i de flesta fall bör det här värdet vara 1.

När en app har en lång uppvärmning (till exempel en anpassad containeravbildning) kan du behöva öka den här bufferten. En förinstallerad instans blir aktiv först när alla aktiva instanser har använts tillräckligt.

Ta det här exemplet som exempel på hur alltid redo instanser och förinstallerade instanser fungerar tillsammans. En premiumfunktionsapp har fem alltid redo instanser konfigurerade och standardvärdet för en förinstallerad instans. När appen är inaktiv och inga händelser utlöses etableras appen och körs med fem instanser. För närvarande debiteras du inte för en förinstallerad instans eftersom instanserna som alltid är redo inte används och ingen förinstallerad instans allokeras.

Så snart den första utlösaren kommer blir de fem instanserna som alltid är redo aktiva och en förinstallerad instans allokeras. Appen körs nu med sex etablerade instanser: de fem nu aktiva instanserna som alltid är redo och den sjätte förinstallerade och inaktiva bufferten. Om körningstakten fortsätter att öka används slutligen de fem aktiva instanserna. När plattformen bestämmer sig för att skala bortom fem instanser skalas den till den förhettade instansen. När det händer finns det nu sex aktiva instanser och en sjunde instans etableras omedelbart och fyller den förinstallerade bufferten. Den här sekvensen av skalning och förför uppvärmning fortsätter tills det maximala antalet instanser för appen har uppnåtts. Inga instanser är förinstallerade eller aktiverade längre än maxvärdet.

Du kan ändra antalet förinstallerade instanser för en app med hjälp av Azure CLI.

az resource update -g <resource_group> -n <function_app_name>/config/web --set properties.preWarmedInstanceCount=<desired_prewarmed_count> --resource-type Microsoft.Web/sites

Maximalt antal funktionsappinstanser

Förutom det maximala antalet instanser för planenkan du konfigurera ett maxantal per app. Appens maxgräns kan konfigureras med hjälp av appens skalningsgräns.

Privat nätverksanslutning

Funktionsappar som distribueras till en Premium plan kan dra nytta av VNet-integrering för webbappar. När appen har konfigurerats kan den kommunicera med resurser i ditt VNet 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 behöver ett IP-block med minst 100 tillgängliga adresser.

Mer information finns i integrera funktionsappen med ett VNet.

Snabb elastisk skalning

Ytterligare beräkningsinstanser läggs automatiskt till för din app med samma logik för snabb skalning som förbrukningsplanen. Appar i samma App Service plan skalas oberoende av varandra baserat på behoven för en enskild app. Functions-appar i samma plan delar dock App Service VM-resurser för att minska kostnaderna när det är möjligt. Antalet appar som är associerade med en virtuell dator beror på storleken på varje app och storleken på den virtuella datorn.

Mer information om hur skalning fungerar finns i Händelsedriven skalning i Azure Functions.

Längre körningstid

Azure Functions i en förbrukningsplan är begränsade till 10 minuter för en enskild körning. I Premium är körningens varaktighet som standard 30 minuter för att förhindra skenande körningar. Du kan dock ändra konfigurationen host.jsatt göra varaktigheten obegränsad för Premium planera appar. När det är inställt på en obegränsad varaktighet körs funktionsappen i minst 60 minuter.

Planera och SKU-inställningar

När du skapar planen finns det två inställningar för planstorlek: det minsta antalet instanser (eller planstorlek) och den maximala gränsen för burst.

Om din app kräver instanser utöver de instanser som alltid är redo kan den fortsätta att skala ut tills antalet instanser når den maximala burst-gränsen. Du debiteras bara för instanser utöver din planstorlek när de körs och allokeras till dig per sekund. Plattformen gör det bästa sättet att skala ut appen till den definierade maxgränsen.

Du kan konfigurera planens storlek och maxstorlek i Azure Portal genom att välja alternativen för att skala ut i planen eller en funktionsapp som distribueras till planen (under Plattformsfunktioner).

Du kan också öka den maximala burst-gränsen från Azure CLI:

az functionapp plan update -g <resource_group> -n <premium_plan_name> --max-burst <desired_max_burst>

Minimikravet för varje plan är minst en instans. Det faktiska minsta antalet instanser konfigureras automatiskt åt 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 beräknas den minsta planstorleken som fem. App A körs på alla 5 och app B körs bara på 2.

Viktigt

Du debiteras för varje instans som allokerats i det lägsta instansantalet oavsett om funktionerna körs eller inte.

I de flesta fall räcker detta automatiskt beräknat minimum. Skalning utöver det minsta sker dock efter bästa försök. Det är möjligt, även om det är osannolikt, att utskalningen vid en viss tidpunkt kan fördröjas om ytterligare instanser inte är tillgängliga. Genom att ange ett minimum som är högre än det automatiskt räknade minimiantalet reserverar du instanser före utskalning.

Du kan öka det beräknade minimiantalet för en plan med hjälp av Azure CLI.

az functionapp plan update -g <resource_group> -n <premium_plan_name> --min-instances <desired_min_instances>

Tillgängliga instans-SKU:er

När du skapar eller skalar planen kan du välja mellan tre instansstorlekar. Du debiteras för det totala antalet kärnor och allokerat minne per sekund som varje instans har allokerats till dig. Din app kan automatiskt skala 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 är en JavaScript-funktionsapp begränsad av standardminnesgränsen i Node.js. Om du vill öka den här fasta minnesgränsen lägger du till languageWorkers:node:arguments appinställningen med värdet --max-old-space-size=<max memory in MB> .

Och för planer med mer än 4 GB minne ser du till att Bitness Platform-inställningen är inställd 64 Bit på under Allmänt Inställningar.

Maximal utskalning för region

Nedan visas de maximala utskalningsvärden som för närvarande stöds för en enskild plan i varje region och os-konfiguration.

Se den fullständiga regionala tillgängligheten för Functions på Azure-webbplatsen.

Region Windows Linux
Australien, centrala 100 Inte tillgängligt
Australien, centrala 2 100 Inte tillgängligt
Australien, östra 100 20
Australien, sydöstra 100 20
Brasilien, södra 100 20
Kanada, centrala 100 20
Central US 100 20
Kina, östra 2 100 20
Kina, norra 2 100 20
Asien, östra 100 20
East US 100 20
USA, östra 2 100 20
Frankrike, centrala 100 20
Tyskland, västra centrala 100 Inte tillgängligt
Japan, östra 100 20
Japan, västra 100 20
Sydkorea, centrala 100 20
Sydkorea, södra Inte tillgängligt 20
USA, norra centrala 100 20
Europa, norra 100 20
Mellanöstern 100 20
USA, södra centrala 100 20
Indien, södra 100 Inte tillgängligt
Sydostasien 100 20
Schweiz, norra 100 Inte tillgängligt
Schweiz, västra 100 Inte tillgängligt
Storbritannien, södra 100 20
Storbritannien, västra 100 20
USGov Arizona 100 20
USGov Virginia 100 20
USA, östra 100 Inte tillgängligt
USA, västra 100 Inte tillgängligt
Europa, västra 100 20
Indien, västra 100 20
USA, västra centrala 100 20
USA, västra 100 20
USA, västra 2 100 20

Nästa steg