Azure Functions skala och vara värdAzure Functions scale and hosting

När du skapar en Function-app i Azure måste du välja en värd plan för din app.When you create a function app in Azure, you must choose a hosting plan for your app. Det finns tre värd planer för Azure Functions: förbruknings plan, Premium planoch App Service plan.There are three hosting plans available for Azure Functions: Consumption plan, Premium plan, and App Service plan.

Värd planen du väljer styr följande beteenden:The hosting plan you choose dictates the following behaviors:

  • Hur din Function-app skalas.How your function app is scaled.
  • De resurser som är tillgängliga för varje funktions program instans.The resources available to each function app instance.
  • Stöd för avancerade funktioner, t. ex. VNET-anslutning.Support for advanced features, such as VNET connectivity.

Både förbruknings-och Premium planer lägger automatiskt till beräknings kraft när koden körs.Both Consumption and Premium plans automatically add compute power when your code is running. Din app skalas ut när det behövs för att hantera belastningen och skalas ned när kod slutar köras.Your app is scaled out when needed to handle load, and scaled down when code stops running. För förbruknings planen behöver du inte heller betala för inaktiva virtuella datorer eller reserv kapacitet i förväg.For the Consumption plan, you also don't have to pay for idle VMs or reserve capacity in advance.

Premium-prenumerationen innehåller ytterligare funktioner, till exempel Premium Compute-instanser, möjligheten att hålla instanserna varmt under obestämd tid och VNet-anslutning.Premium plan provides additional features, such as premium compute instances, the ability to keep instances warm indefinitely, and VNet connectivity.

Med App Service plan kan du dra nytta av dedikerad infrastruktur som du hanterar.App Service plan allows you to take advantage of dedicated infrastructure, which you manage. Din Function-app skalar inte baserat på händelser, vilket innebär att aldrig skalas ned till noll.Your function app doesn't scale based on events, which means is never scales down to zero. (Kräver att Always on är aktiverat.)(Requires that Always on is enabled.)

Support Plans supportHosting plan support

Funktions stödet ingår i följande två kategorier:Feature support falls into the following two categories:

  • Allmänt tillgänglig (ga) : fullständigt stöd för och godkänd användning av produktion.Generally available (GA): fully supported and approved for production use.
  • För hands version: stöds ännu inte fullt ut och godkänts för produktions användning.Preview: not yet fully supported and approved for production use.

Följande tabell visar den aktuella support nivån för de tre värd planerna, när de körs på antingen Windows eller Linux:The following table indicates the current level of support for the three hosting plans, when running on either Windows or Linux:

FörbrukningsplanConsumption plan Premium-planPremium plan Dedikerad planDedicated plan
WindowsWindows Allmänt tillgängligGA Allmänt tillgängligGA Allmänt tillgängligGA
LinuxLinux Allmänt tillgängligGA Allmänt tillgängligGA Allmänt tillgängligGA

FörbrukningsplanConsumption plan

När du använder förbruknings planen läggs instanser av Azure Functions-värden dynamiskt till och tas bort baserat på antalet inkommande händelser.When you're using the Consumption plan, instances of the Azure Functions host are dynamically added and removed based on the number of incoming events. Den här serverlösa planen skalas automatiskt och du debiteras bara för beräkningsresurser när dina funktioner körs.This serverless plan scales automatically, and you're charged for compute resources only when your functions are running. I en förbrukningsplan får en funktions körningstid timeout efter en konfigurerbar tidsperiod.On a Consumption plan, a function execution times out after a configurable period of time.

Fakturering baseras på antalet körningar, körningstid och använt minne.Billing is based on number of executions, execution time, and memory used. Fakturering slås samman över alla funktioner inom en funktionsapp.Billing is aggregated across all functions within a function app. Mer information finns på sidan med Azure Functions priser.For more information, see the Azure Functions pricing page.

Förbruknings planen är standard värd planen och ger följande fördelar:The Consumption plan is the default hosting plan and offers the following benefits:

  • Betala endast när funktionerna körsPay only when your functions are running
  • Skala ut automatiskt, även under perioder med hög belastningScale out automatically, even during periods of high load

Function-appar i samma region kan tilldelas samma förbruknings plan.Function apps in the same region can be assigned to the same Consumption plan. Det finns ingen nack delar eller påverkan på att flera appar körs i samma förbruknings plan.There's no downside or impact to having multiple apps running in the same Consumption plan. Tilldelning av flera appar till samma förbruknings plan påverkar inte återhämtning, skalbarhet eller tillförlitlighet för varje app.Assigning multiple apps to the same consumption plan has no impact on resilience, scalability, or reliability of each app.

Mer information om hur du beräknar kostnader när du kör i en förbruknings plan finns i förstå förbruknings plan kostnader.To learn more about how to estimate costs when running in a Consumption plan, see Understanding Consumption plan costs.

Premium-planPremium plan

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örbruknings planen.When you're using the Premium plan, instances of the Azure Functions host are added and removed based on the number of incoming events just like the Consumption plan. Premium-planen stöder följande funktioner:Premium plan supports the following features:

  • Ständigt varma instanser för att undvika kall startPerpetually warm instances to avoid any cold start
  • VNet-anslutningVNet connectivity
  • Obegränsad körnings tidUnlimited execution duration
  • Premium-instans storlekar (en kärna, två kärnor och fyra kärn instanser)Premium instance sizes (one core, two core, and four core instances)
  • Mer förutsägbar prissättningMore predictable pricing
  • App-allokering med hög densitet för planer med flera Function-apparHigh-density app allocation for plans with multiple function apps

Information om hur du kan konfigurera de här alternativen finns i Azure Functions Premium plan-dokumentet.Information on how you can configure these options can be found in the Azure Functions premium plan document.

I stället för fakturering per körning och använt minne baseras faktureringen för Premium-prenumerationen på det antal kärn sekunder och minne som används för alla nödvändiga och förvärmade instanser.Instead of billing per execution and memory consumed, billing for the Premium plan is based on the number of core seconds and memory used across needed and pre-warmed instances. Minst en instans måste vara varm vid alla tidpunkter per plan.At least one instance must be warm at all times per plan. Det innebär att det finns en lägsta månatlig kostnad per aktiv plan, oavsett antalet körningar.This means that there is a minimum monthly cost per active plan, regardless of the number of executions. Tänk på att alla funktions program i en Premium plan delar förvärmade och aktiva instanser.Keep in mind that all function apps in a Premium plan share pre-warmed and active instances.

Överväg Azure Functions Premium-planen i följande situationer:Consider the Azure Functions premium plan in the following situations:

  • Dina Function-appar körs kontinuerligt eller nästan kontinuerligt.Your function apps run continuously, or nearly continuously.
  • Du har ett stort antal små körningar och har en hög körnings faktura men låg GB andra fakturor i förbruknings planen.You have a high number of small executions and have a high execution bill but low GB second bill in the consumption plan.
  • Du behöver fler processor-eller minnes alternativ än vad som tillhandahålls av förbruknings planen.You need more CPU or memory options than what is provided by the Consumption plan.
  • Din kod måste köras längre än den maximala körnings tiden som tillåts i förbruknings planen.Your code needs to run longer than the maximum execution time allowed on the Consumption plan.
  • Du behöver funktioner som bara är tillgängliga i en Premium-plan, till exempel VNET/VPN-anslutning.You require features that are only available on a Premium plan, such as VNET/VPN connectivity.

När du kör JavaScript-funktioner i en Premium-plan bör du välja en instans som har färre virtuella processorer.When running JavaScript functions on a Premium plan, you should choose an instance that has fewer vCPUs. Mer information finns i Premium-planerna för att välja en enda kärna.For more information, see the Choose single-core Premium plans.

Dedikerad (App Service) planDedicated (App Service) plan

Dina Function-appar kan också köras på samma dedikerade virtuella datorer som andra App Service appar (Basic, standard, Premium och isolerade SKU: er).Your function apps can also run on the same dedicated VMs as other App Service apps (Basic, Standard, Premium, and Isolated SKUs).

Överväg ett App Service plan i följande situationer:Consider an App Service plan in the following situations:

  • Du har befintliga, underutnyttjade virtuella datorer som redan kör andra App Service instanser.You have existing, underutilized VMs that are already running other App Service instances.
  • Du vill ange en anpassad avbildning som dina funktioner ska köras på.You want to provide a custom image on which to run your functions.

Du betalar samma för functions-appar i en App Service planera precis som för andra App Service resurser, t. ex. Web Apps.You pay the same for function apps in an App Service Plan as you would for other App Service resources, like web apps. Mer information om hur App Service plan fungerar finns i Översikt över Azure App Service planer.For details about how the App Service plan works, see the Azure App Service plans in-depth overview.

Med en App Service plan kan du manuellt skala ut genom att lägga till fler VM-instanser.With an App Service plan, you can manually scale out by adding more VM instances. Du kan också aktivera autoskalning.You can also enable autoscale. Mer information finns i skala antalet instanser manuellt eller automatiskt.For more information, see Scale instance count manually or automatically. Du kan också skala upp genom att välja en annan App Service plan.You can also scale up by choosing a different App Service plan. Mer information finns i skala upp en app i Azure.For more information, see Scale up an app in Azure.

När du kör JavaScript-funktioner på en App Service plan bör du välja en plan som har färre virtuella processorer.When running JavaScript functions on an App Service plan, you should choose a plan that has fewer vCPUs. Mer information finns i välj App Service planer med en kärna.For more information, see Choose single-core App Service plans.

Always onAlways On

Om du kör på en App Service plan bör du aktivera inställningen Always on så att din funktions app fungerar som den ska.If you run on an App Service plan, you should enable the Always on setting so that your function app runs correctly. På en App Service plan aktive ras funktions körningen efter några minuter av inaktivitet, så endast HTTP-utlösare kommer att aktivera dina funktioner.On an App Service plan, the functions runtime goes idle after a few minutes of inactivity, so only HTTP triggers will "wake up" your functions. Always On är bara tillgängligt på en App Service plan.Always on is available only on an App Service plan. I en förbruknings plan aktiverar plattformen automatiskt funktions appar.On a Consumption plan, the platform activates function apps automatically.

Varaktighet för Function-appenFunction app timeout duration

Tids gränsen för en Function-app definieras av egenskapen functionTimeout i projekt filen Host. JSON .The timeout duration of a function app is defined by the functionTimeout property in the host.json project file. I följande tabell visas standard-och max värden i minuter för båda planerna och i båda körnings versionerna:The following table shows the default and maximum values in minutes for both plans and in both runtime versions:

PlanPlan Körnings versionRuntime Version StandardDefault MaximalMaximum
FörbrukningConsumption 1.x1.x 55 1010
FörbrukningConsumption 2x2.x 55 1010
FörbrukningConsumption 3.x3.x 55 1010
App ServiceApp Service 1.x1.x ObegränsatUnlimited ObegränsatUnlimited
App ServiceApp Service 2x2.x 3030 ObegränsatUnlimited
App ServiceApp Service 3.x3.x 3030 ObegränsatUnlimited

Anteckning

Oavsett inställningen för funktionen app-timeout är 230 sekunder den maximala tid som en HTTP-utlöst funktion kan utföra för att svara på en begäran.Regardless of the function app timeout setting, 230 seconds is the maximum amount of time that an HTTP triggered function can take to respond to a request. Detta beror på förvalda tids gräns för inaktivitet för Azure Load Balancer.This is because of the default idle timeout of Azure Load Balancer. För längre bearbetnings tider kan du överväga att använda Durable Functions asynkrona mönstret eller skjuta upp det faktiska arbetet och returnera ett omedelbart svar.For longer processing times, consider using the Durable Functions async pattern or defer the actual work and return an immediate response.

Även om Always On är aktiverat, kontrol leras tids gränsen för körningar för enskilda funktioner av functionTimeout inställningen i Host. JSON -projektfilen.Even with Always On enabled, the execution timeout for individual functions is controlled by the functionTimeout setting in the host.json project file.

Fastställa värd planen för ett befintligt programDetermine the hosting plan of an existing application

För att avgöra vilken värd plan som används av din Function-app, se App Service plan/pris nivå på fliken Översikt för function-appen i Azure Portal.To determine the hosting plan used by your function app, see App Service plan / pricing tier in the Overview tab for the function app in the Azure portal. För App Service planer anges även pris nivån.For App Service plans, the pricing tier is also indicated.

Visa skalnings plan i portalen

Du kan också använda Azure CLI för att fastställa planen enligt följande:You can also use the Azure CLI to determine the plan, as follows:

appServicePlanId=$(az functionapp show --name <my_function_app_name> --resource-group <my_resource_group> --query appServicePlanId --output tsv)
az appservice plan list --query "[?id=='$appServicePlanId'].sku.tier" --output tsv

När utdata från det här kommandot är dynamicär din Function-app i förbruknings planen.When the output from this command is dynamic, your function app is in the Consumption plan. När utdata från det här kommandot är ElasticPremium, är din Function-app i Premium-planen.When the output from this command is ElasticPremium, your function app is in the Premium plan. Alla andra värden indikerar olika nivåer för en App Service plan.All other values indicate different tiers of an App Service plan.

Krav för lagringskontoStorage account requirements

I alla planer kräver en Function-app ett allmänt Azure Storage konto, som stöder Azure Blob, Queue, Files och table Storage.On any plan, a function app requires a general Azure Storage account, which supports Azure Blob, Queue, Files, and Table storage. Detta beror på att funktioner förlitar sig på Azure Storage för åtgärder som att hantera utlösare och loggning av funktions körningar, men vissa lagrings konton stöder inte köer och tabeller.This is because Functions relies on Azure Storage for operations such as managing triggers and logging function executions, but some storage accounts do not support queues and tables. Dessa konton, som inkluderar BLOB-endast lagrings konton (inklusive Premium Storage) och allmänna lagrings konton med zon-redundant lagrings replikering, filtreras bort från dina befintliga lagrings konto val när du skapar en Function-app.These accounts, which include blob-only storage accounts (including premium storage) and general-purpose storage accounts with zone-redundant storage replication, are filtered-out from your existing Storage Account selections when you create a function app.

Samma lagrings konto som används av din Function-app kan också användas av utlösare och bindningar för att lagra program data.The same storage account used by your function app can also be used by your triggers and bindings to store your application data. För lagrings intensiva åtgärder bör du dock använda ett separat lagrings konto.However, for storage-intensive operations, you should use a separate storage account.

Mer information om lagrings konto typer finns i Introduktion till Azure Storage-tjänsterna.To learn more about storage account types, see Introducing the Azure Storage services.

Så här fungerar förbruknings-och Premium planernaHow the consumption and premium plans work

I förbruknings-och Premium-planerna skalar Azure Functions-infrastrukturen processor-och minnes resurser genom att lägga till ytterligare instanser av Functions-värden, baserat på antalet händelser som dess funktioner aktive ras på.In the consumption and premium plans, the Azure Functions infrastructure scales CPU and memory resources by adding additional instances of the Functions host, based on the number of events that its functions are triggered on. Varje instans av Functions-värden i förbruknings planen är begränsad till 1,5 GB minne och en processor.Each instance of the Functions host in the consumption plan is limited to 1.5 GB of memory and one CPU. En instans av värden är hela Function-appen, vilket innebär att alla funktioner i en Function-resurs resurs i en instans och skalas på samma gång.An instance of the host is the entire function app, meaning all functions within a function app share resource within an instance and scale at the same time. Function-appar som delar samma förbruknings plan skalas oberoende av varandra.Function apps that share the same consumption plan are scaled independently. I Premium-planen avgör din Plans storlek det tillgängliga minnet och CPU: n för alla appar i planen på den instansen.In the premium plan, your plan size will determine the available memory and CPU for all apps in that plan on that instance.

Funktions kod filen lagras på Azure Files resurser på funktionens huvud lagrings konto.Function code files are stored on Azure Files shares on the function's main storage account. När du tar bort huvud lagrings kontot för Function-appen tas funktions kod filerna bort och kan inte återställas.When you delete the main storage account of the function app, the function code files are deleted and cannot be recovered.

Körnings skalningRuntime scaling

Azure Functions använder en komponent som kallas för skalnings styrenheten för att övervaka händelse frekvensen och bestämma om du vill skala ut eller skala in.Azure Functions uses a component called the scale controller to monitor the rate of events and determine whether to scale out or scale in. Skalnings styrenheten använder heuristik för varje utlösnings typ.The scale controller uses heuristics for each trigger type. Om du till exempel använder en Azure Queue Storage-utlösare, skalas den baserat på köns längd och ålder för det äldsta Queue meddelandet.For example, when you're using an Azure Queue storage trigger, it scales based on the queue length and the age of the oldest queue message.

Skalnings enheten för Azure Functions är Function-appen.The unit of scale for Azure Functions is the function app. När funktions programmet skalas ut allokeras ytterligare resurser för att köra flera instanser av den Azure Functions värden.When the function app is scaled out, additional resources are allocated to run multiple instances of the Azure Functions host. I takt med att Compute demand minskas, tar skalnings kontrollen bort funktions värd instanser.Conversely, as compute demand is reduced, the scale controller removes function host instances. Antalet instanser skalas slutligen till noll när inga funktioner körs i en Function-app.The number of instances is eventually scaled in to zero when no functions are running within a function app.

Skala övervakning av kontroll händelser och skapa instanser

Förstå skalnings beteendenUnderstanding scaling behaviors

Skalning kan variera beroende på ett antal faktorer och skala på olika sätt beroende på vilken utlösare och vilket språk som valts.Scaling can vary on a number of factors, and scale differently based on the trigger and language selected. Det finns några erna för skalnings beteenden som kan vara medvetna om:There are a few intricacies of scaling behaviors to be aware of:

  • En enskild funktionsapp skalar bara upp till högst 200 instanser.A single function app only scales up to a maximum of 200 instances. En enskild instans kan bearbeta mer än ett meddelande eller en begäran i taget, så det finns ingen angiven gräns för antalet samtidiga körningar.A single instance may process more than one message or request at a time though, so there isn't a set limit on number of concurrent executions.
  • För HTTP-utlösare allokeras nya instanser bara högst en gång var 1: a sekund.For HTTP triggers, new instances will only be allocated at most once every 1 second.
  • För icke-HTTP-utlösare allokeras nya instanser bara högst en gång var 30: e sekund.For non-HTTP triggers, new instances will only be allocated at most once every 30 seconds.

Olika utlösare kan också ha olika skalnings gränser samt dokumenterade nedan:Different triggers may also have different scaling limits as well as documented below:

Metod tips och mönster för skalbara apparBest practices and patterns for scalable apps

Det finns många aspekter av en Function-app som påverkar hur väl den kommer att skalas, inklusive värd konfiguration, körnings miljö och resurs effektivitet.There are many aspects of a function app that will impact how well it will scale, including host configuration, runtime footprint, and resource efficiency. Mer information finns i avsnittet om skalbarhet i artikeln om prestanda överväganden.For more information, see the scalability section of the performance considerations article. Du bör också vara medveten om hur anslutningar fungerar när din Function-app skalar.You should also be aware of how connections behave as your function app scales. Mer information finns i hantera anslutningar i Azure Functions.For more information, see How to manage connections in Azure Functions.

FaktureringsmodellBilling model

Faktureringen för olika planer beskrivs i detalj på sidan Azure Functions prissättning.Billing for the different plans is described in detail on the Azure Functions pricing page. Användningen sammanställs på Function-app-nivå och räknar bara den tid som funktions koden körs.Usage is aggregated at the function app level and counts only the time that function code is executed. Följande är enheter för fakturering:The following are units for billing:

  • Resursförbrukning i GB-sekunder (GB-s) .Resource consumption in gigabyte-seconds (GB-s). Beräknad som en kombination av minnes storlek och körnings tid för alla funktioner i en Function-app.Computed as a combination of memory size and execution time for all functions within a function app.
  • Körningar.Executions. Räknas varje gången en funktion körs som svar på en händelse utlösare.Counted each time a function is executed in response to an event trigger.

Användbara frågor och information om hur du förstår din förbruknings faktura finns i vanliga frågor och svar om fakturering.Useful queries and information on how to understand your consumption bill can be found on the billing FAQ.

TjänstbegränsningarService limits

I följande tabell visas de begränsningar som gäller för Function-appar när de körs i de olika värd planerna:The following table indicates the limits that apply to function apps when running in the various hosting plans:

ResourceResource Förbruknings planConsumption plan Premium-planPremium plan App Service plan1App Service plan1
Skala utScale out Händelse drivenEvent driven Händelse drivenEvent driven Manuell/autoskalningManual/autoscale
Max. antal instanserMax instances 200200 100100 10-2010-20
Tids gräns för standard tid (min)Default time out duration (min) 55 3030 302302
Max time-out-varaktighet (min)Max time out duration (min) 1010 6060 obegränsat3unbounded3
Max. utgående anslutningar (per instans)Max outbound connections (per instance) 600 aktiv (1200 totalt)600 active (1200 total) unboundedunbounded unboundedunbounded
Max storlek för begäran (MB)4Max request size (MB)4 100100 100100 100100
Max. frågesträngs längd4Max query string length4 40964096 40964096 40964096
Max. URL-längd för begäran4Max request URL length4 81928192 81928192 81928192
ACU per instansACU per instance 100100 210-840210-840 100-840100-840
Maximalt minne (GB per instans)Max memory (GB per instance) 1.51.5 3.5-143.5-14 1,75-141.75-14
Function-appar per planFunction apps per plan 100100 100100 obegränsad5unbounded5
App Service-planerApp Service plans 100 per region100 per region 100 per resurs grupp100 per resource group 100 per resurs grupp100 per resource group
Lagring6Storage6 1 GB1 GB 250 GB250 GB 50-1000 GB50-1000 GB
Anpassade domäner per appCustom domains per app 50075007 500500 500500
Stöd för anpassad domän- SSLCustom domain SSL support en obunden SNI SSL anslutning ingårunbounded SNI SSL connection included obegränsade SNI SSL och 1 IP SSL anslutningar ingårunbounded SNI SSL and 1 IP SSL connections included obegränsade SNI SSL och 1 IP SSL anslutningar ingårunbounded SNI SSL and 1 IP SSL connections included

1 vissa gränser för de olika App Service plan alternativen finns i App Service plan gränser.1 For specific limits for the various App Service plan options, see the App Service plan limits.
2 som standard är tids gränsen för funktioner 1. x-körningsmiljön i en app service plan obegränsad.2 By default, the timeout for the Functions 1.x runtime in an App Service plan is unbounded.
3 kräver att App Service plan anges till Always on.3 Requires the App Service plan be set to Always On. Betala enligt standardpriser.Pay at standard rates.
4 de här gränserna anges på värden.4 These limits are set in the host.
5 det faktiska antalet funktions program som du kan vara värd för beror på aktivitetens appar, storleken på dator instanserna och motsvarande resursutnyttjande.5 The actual number of function apps that you can host depends on the activity of the apps, the size of the machine instances, and the corresponding resource utilization.
6 lagrings gränsen är den totala innehålls storleken i tillfällig lagring över alla appar i samma app service plan.6 The storage limit is the total content size in temporary storage across all apps in the same App Service plan. Förbruknings planen använder Azure Files för tillfällig lagring.Consumption plan uses Azure Files for temporary storage.
7 när din Function-app finns i en förbruknings planstöds endast alternativet CNAME.7 When your function app is hosted in a Consumption plan, only the CNAME option is supported. För Function-appar i en Premium-plan eller en App Service plankan du mappa en anpassad domän med antingen en CNAME-eller en a-post.For function apps in a Premium plan or an App Service plan, you can map a custom domain using either a CNAME or an A record.