Hostování a škálování Azure FunctionsAzure Functions scale and hosting

Když vytvoříte aplikaci Function App v Azure, musíte zvolit plán hostování pro vaši aplikaci.When you create a function app in Azure, you must choose a hosting plan for your app. K dispozici jsou tři základní plány hostování pro Azure Functions: plán spotřeby, Plán Premiuma vyhrazený plán (App Service).There are three basic hosting plans available for Azure Functions: Consumption plan, Premium plan, and Dedicated (App Service) plan. Všechny plány hostování jsou obecně dostupné (GA) na virtuálních počítačích se systémy Linux a Windows.All hosting plans are generally available (GA) on both Linux and Windows virtual machines.

Plán hostování, který zvolíte, bude určovat následující chování:The hosting plan you choose dictates the following behaviors:

  • Jak se škáluje aplikace Function AppHow your function app is scaled.
  • Prostředky dostupné pro jednotlivé instance aplikace Function App.The resources available to each function app instance.
  • Podpora pro pokročilé funkce, jako je například připojení k Azure Virtual Network.Support for advanced features, such as Azure Virtual Network connectivity.

Plány spotřeby i úrovně Premium automaticky přidávají výpočetní výkon, když je váš kód spuštěný.Both Consumption and Premium plans automatically add compute power when your code is running. Vaše aplikace se škáluje v případě potřeby na zpracování zatížení a při změně kapacity v době, kdy se kód přestane spouštět.Your app is scaled out when needed to handle load, and scaled in when code stops running. Pro plán spotřeby také nemusíte platit za nečinné virtuální počítače nebo rezervovat kapacitu předem.For the Consumption plan, you also don't have to pay for idle VMs or reserve capacity in advance.

Plán Premium poskytuje další funkce, jako jsou výpočetní instance Premium, schopnost udržet instance na neomezenou dobu a připojení k virtuální síti.Premium plan provides additional features, such as premium compute instances, the ability to keep instances warm indefinitely, and VNet connectivity.

App Service plán vám umožní využít výhod vyhrazené infrastruktury, kterou spravujete.App Service plan allows you to take advantage of dedicated infrastructure, which you manage. Vaše aplikace Function App se škáluje na základě událostí, což znamená, že se nikdy neškáluje na nulu.Your function app doesn't scale based on events, which means it never scales in to zero. (Vyžaduje, aby byla povolena možnost vždy zapnuto.)(Requires that Always on is enabled.)

Podrobné porovnání různých plánů hostování (včetně hostování založeného na Kubernetes) naleznete v části Porovnání plánů hostování.For a detailed comparison between the various hosting plans (including Kubernetes-based hosting), see the Hosting plans comparison section.

Plán ConsumptionConsumption plan

Pokud používáte plán spotřeby, instance Azure Functions hostitele se dynamicky přidávají a odstraňují na základě počtu příchozích událostí.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. Tento bezserverový plán se automaticky škáluje a výpočetní prostředky se vám účtují, jenom když vaše funkce běží.This serverless plan scales automatically, and you're charged for compute resources only when your functions are running. V plánu Spotřeba po nastavené době vyprší časový limit spuštění funkce.On a Consumption plan, a function execution times out after a configurable period of time.

Fakturace vychází z počtu spuštění, doby spuštění a použité paměti.Billing is based on number of executions, execution time, and memory used. Použití je agregované napříč všemi funkcemi v rámci aplikace Function App.Usage is aggregated across all functions within a function app. Další informace najdete na stránce s cenami Azure Functions.For more information, see the Azure Functions pricing page.

Plán spotřeby je výchozím plánem hostování a nabízí následující výhody:The Consumption plan is the default hosting plan and offers the following benefits:

  • Plaťte jenom v případě, že jsou vaše funkce spuštěné.Pay only when your functions are running
  • Horizontální navýšení kapacity i během období vysokého zatíženíScale out automatically, even during periods of high load

Aplikace Function App ve stejné oblasti se dají přiřadit ke stejnému plánu spotřeby.Function apps in the same region can be assigned to the same Consumption plan. Neexistuje žádný nevýhodou ani dopad na to, aby ve stejném plánu spotřeby běželo víc aplikací.There's no downside or impact to having multiple apps running in the same Consumption plan. Přiřazení více aplikací ke stejnému plánu spotřeby nemá žádný vliv na odolnost, škálovatelnost nebo spolehlivost každé aplikace.Assigning multiple apps to the same Consumption plan has no impact on resilience, scalability, or reliability of each app.

Další informace o odhadu nákladů při spuštění v plánu spotřeby najdete v tématu porozumění nákladům na plán spotřeby.To learn more about how to estimate costs when running in a Consumption plan, see Understanding Consumption plan costs.

Plán PremiumPremium plan

Pokud používáte plán Premium, instance Azure Functions hostitele se přidají a odeberou na základě počtu příchozích událostí stejně jako u plánu spotřeby.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. Plán Premium podporuje následující funkce:Premium plan supports the following features:

  • Trvalé zahřívání instancí, aby nedocházelo k žádnému studenému startuPerpetually warm instances to avoid any cold start
  • Připojení virtuální sítěVNet connectivity
  • Neomezené trvání spuštění (zaručené 60 minut)Unlimited execution duration (60 minutes guaranteed)
  • Velikosti instancí Premium (jedna jádro, dvě jádro a čtyři základní instance)Premium instance sizes (one core, two core, and four core instances)
  • Předvídatelné cenyMore predictable pricing
  • Přidělování aplikací s vysokou hustotou pro plány s více aplikacemi Function AppHigh-density app allocation for plans with multiple function apps

Informace o tom, jak můžete vytvořit aplikaci Function App v plánu Premium, najdete v tématu plán Azure Functions Premium.To learn how you can create a function app in a Premium plan, see Azure Functions Premium plan.

Fakturace plánu Premium vychází z počtu základních sekund a paměti přidělených napříč instancemi místo fakturace za spuštění a využité paměti.Instead of billing per execution and memory consumed, billing for the Premium plan is based on the number of core seconds and memory allocated across instances. S plánem Premium se neúčtují žádné poplatky za spuštění.There is no execution charge with the Premium plan. Nejméně jedna instance musí být každému plánu vždy přidělena.At least one instance must be allocated at all times per plan. Výsledkem je minimální měsíční cena za aktivní plán bez ohledu na to, jestli je funkce aktivní nebo nečinná.This results in a minimum monthly cost per active plan, regardless if the function is active or idle. Mějte na paměti, že všechny aplikace Function App v plánu Premium sdílí přidělené instance.Keep in mind that all function apps in a Premium plan share allocated instances.

Vezměte v úvahu plán Azure Functions Premium v následujících situacích:Consider the Azure Functions Premium plan in the following situations:

  • Vaše aplikace Function App běží nepřetržitě nebo téměř nepřetržitě.Your function apps run continuously, or nearly continuously.
  • Máte vysoký počet malých spuštění a máte vysoké náklady na spuštění, ale v plánu spotřeby se účtují za méně GB.You have a high number of small executions and have a high execution bill but low GB second bill in the Consumption plan.
  • Budete potřebovat více možností procesoru nebo paměti, než jaké je k dispozici v plánu spotřeby.You need more CPU or memory options than what is provided by the Consumption plan.
  • Váš kód musí běžet delší dobu, než je Maximální doba spuštění v plánu spotřeby.Your code needs to run longer than the maximum execution time allowed on the Consumption plan.
  • Vyžadujete funkce, které jsou k dispozici pouze v plánu Premium, například připojení k virtuální síti.You require features that are only available on a Premium plan, such as virtual network connectivity.

Vyhrazený plán (App Service)Dedicated (App Service) plan

Aplikace Function App můžete spustit taky na stejných vyhrazených virtuálních počítačích, jako jsou jiné App Service aplikace (Basic, Standard, Premium a izolované SKU).Your function apps can also run on the same dedicated VMs as other App Service apps (Basic, Standard, Premium, and Isolated SKUs).

Vezměte v úvahu App Service plán v následujících situacích:Consider an App Service plan in the following situations:

  • Máte existující a nevyužité virtuální počítače, které již spouštějí jiné instance App Service.You have existing, underutilized VMs that are already running other App Service instances.
  • Chcete zadat vlastní image, na které se mají spouštět vaše funkce.You want to provide a custom image on which to run your functions.

Totéž platí pro aplikace Function App v plánu App Service, stejně jako u jiných prostředků App Service, jako jsou například webové aplikace.You pay the same for function apps in an App Service Plan as you would for other App Service resources, like web apps. Podrobnosti o tom, jak plán App Service funguje, najdete v podrobném přehledu Azure App Service plány.For details about how the App Service plan works, see the Azure App Service plans in-depth overview.

Pomocí App Serviceho plánu můžete ruční horizontální navýšení kapacity přidáním dalších instancí virtuálních počítačů.Using an App Service plan, you can manually scale out by adding more VM instances. Můžete také povolit automatické škálování, i když automatické škálování bude pomalejší než Elastické škálování plánu Premium.You can also enable autoscale, though autoscale will be slower than the elastic scale of the Premium plan. Další informace najdete v tématu Ruční nebo automatické škálování počtu instancí.For more information, see Scale instance count manually or automatically. Horizontální navýšení kapacity můžete také škálovat tak, že vyberete jiný plán App Service.You can also scale up by choosing a different App Service plan. Další informace najdete v tématu horizontální navýšení kapacity aplikace v Azure.For more information, see Scale up an app in Azure.

Při spouštění funkcí JavaScriptu v plánu App Service byste měli zvolit plán, který má méně vCPU.When running JavaScript functions on an App Service plan, you should choose a plan that has fewer vCPUs. Další informace najdete v tématu Výběr plánů App Service s jedním jádrem.For more information, see Choose single-core App Service plans.

Spuštění v App Service Environment (pomocného programu) umožňuje plně izolovat vaše funkce a využívat větší počet instancí než plán App Service.Running in an App Service Environment (ASE) lets you fully isolate your functions and take advantage of higher number of instances than an App Service Plan.

Vždy zapnutoAlways On

Pokud spustíte v plánu App Service, měli byste povolit nastavení vždycky zapnuto , aby aplikace Function App běžela správně.If you run on an App Service plan, you should enable the Always on setting so that your function app runs correctly. V App Serviceovém plánu se modul runtime Functions po několika minutách nečinnosti neukončí, takže se vaše funkce vystaví jenom triggery HTTP.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 je k dispozici pouze v plánu App Service.Always on is available only on an App Service plan. V plánu spotřeby platforma automaticky aktivuje aplikace funkcí.On a Consumption plan, the platform activates function apps automatically.

Doba trvání časového limitu aplikace Function AppFunction app timeout duration

Doba trvání časového limitu aplikace Function App je definována functionTimeout vlastností v host.jsv souboru projektu.The timeout duration of a function app is defined by the functionTimeout property in the host.json project file. Následující tabulka ukazuje výchozí a maximální hodnoty v minutách pro oba plány i pro různé verze modulu runtime:The following table shows the default and maximum values in minutes for both plans and the different runtime versions:

PlánováníPlan Verze modulu runtimeRuntime Version VýchozíDefault MaximumMaximum
ConsumptionConsumption verze1.x 55 1010
ConsumptionConsumption 2.x2.x 55 1010
ConsumptionConsumption 3.x3.x 55 1010
PremiumPremium verze1.x 3030 UnlimitedUnlimited
PremiumPremium 2.x2.x 3030 UnlimitedUnlimited
PremiumPremium 3.x3.x 3030 UnlimitedUnlimited
App ServiceApp Service verze1.x UnlimitedUnlimited UnlimitedUnlimited
App ServiceApp Service 2.x2.x 3030 UnlimitedUnlimited
App ServiceApp Service 3.x3.x 3030 UnlimitedUnlimited

Poznámka

Bez ohledu na nastavení časového limitu aplikace Functions je 230 sekund maximální doba, po kterou může funkce aktivovaná protokolem HTTP reagovat na požadavek.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. Důvodem je, že výchozí časový limit nečinnosti Azure Load Balancer.This is because of the default idle timeout of Azure Load Balancer. Pro delší dobu zpracování zvažte použití Durable Functions asynchronního vzoru nebo odložte skutečnou práci a vraťte okamžitou odpověď.For longer processing times, consider using the Durable Functions async pattern or defer the actual work and return an immediate response.

I při zapnuté funkci Always On je časový limit spuštění pro jednotlivé funkce řízen functionTimeout nastavením v host.js v souboru projektu.Even with Always On enabled, the execution timeout for individual functions is controlled by the functionTimeout setting in the host.json project file.

Určení plánu hostování existující aplikaceDetermine the hosting plan of an existing application

Chcete-li určit plán hostování používaný vaší aplikací Function App, přečtěte si téma App Service plán na kartě Přehled aplikace Function App v Azure Portal.To determine the hosting plan used by your function app, see App Service plan in the Overview tab for the function app in the Azure portal. Pokud chcete zobrazit cenovou úroveň, vyberte název plánu App Servicea v levém podokně vyberte vlastnosti .To see the pricing tier, select the name of the App Service Plan, and then select Properties from the left pane.

Zobrazit plán škálování na portálu

Pomocí rozhraní příkazového řádku Azure můžete také určit plán následujícím způsobem: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

Když je výstup z tohoto příkazu dynamic , vaše aplikace Function App je v plánu spotřeby.When the output from this command is dynamic, your function app is in the Consumption plan. Když je výstup z tohoto příkazu ElasticPremium , vaše aplikace Function App je v plánu Premium.When the output from this command is ElasticPremium, your function app is in the Premium plan. Všechny ostatní hodnoty označují různé úrovně plánu App Service.All other values indicate different tiers of an App Service plan.

Požadavky na účet úložištěStorage account requirements

V jakémkoli plánu aplikace Function App vyžaduje účet obecné Azure Storage, který podporuje Azure Blob, Queue, soubory a Table Storage.On any plan, a function app requires a general Azure Storage account, which supports Azure Blob, Queue, Files, and Table storage. Důvodem je to, že Azure Functions spoléhá na Azure Storage pro operace, jako je Správa triggerů a spouštění funkcí protokolování, ale některé účty úložiště nepodporují fronty a tabulky.This is because Azure Functions relies on Azure Storage for operations such as managing triggers and logging function executions, but some storage accounts don't support queues and tables. Tyto účty, které zahrnují účty úložiště jen pro objekty BLOB (včetně služby Premium Storage) a účty úložiště pro obecné účely s replikací zóny redundantního úložiště, se při vytváření aplikace Function Filter odfiltrují ze stávajících výběrů účtu úložiště .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.

Stejný účet úložiště, který používá vaše aplikace Function App, můžete použít taky triggery a vazbami k uložení dat aplikace.The same storage account used by your function app can also be used by your triggers and bindings to store your application data. U operací náročných na úložiště byste ale měli použít samostatný účet úložiště.However, for storage-intensive operations, you should use a separate storage account.

Je možné, že více aplikací Function App sdílí stejný účet úložiště bez problémů.It's possible for multiple function apps to share the same storage account without any issues. (Dobrým příkladem toho je, když vyvíjíte více aplikací v místním prostředí pomocí emulátoru Azure Storage, který funguje jako jeden účet úložiště.)(A good example of this is when you develop multiple apps in your local environment using the Azure Storage Emulator, which acts like one storage account.)

Další informace o typech účtů úložiště najdete v tématu představení služby Azure Storage Services.To learn more about storage account types, see Introducing the Azure Storage services.

V oblasti data zasídlíIn Region Data Residency

Pokud je potřeba, aby všechna zákaznická data zůstala v rámci jedné oblasti, musí být účet úložiště přidružený k aplikaci Function App v oblasti redundance.When necessary for all customer data to remain within a single region, the storage account associated with the function app must be one with in region redundancy. Pro Durable Functions Azure Durable Functions se taky musí použít účet redundantního redundantního úložiště v oblasti.An in-region redundant storage account would also need to be used with Azure Durable Functions for Durable Functions.

Jiná zákaznická data spravovaná platformou se budou ukládat jenom v rámci této oblasti, když se bude hostovat v interní Load Balancer App Service Environment (nebo interního nástroje pomocnému programu pro čtení).Other platform-managed customer data will only be stored within the region when hosting in an Internal Load Balancer App Service Environment (or ILB ASE). Podrobnosti najdete v redundanci v zóně pomocného mechanismu.Details can be found in ASE zone redundancy.

Princip fungování plánů Consumption a PremiumHow the Consumption and Premium plans work

V plánech spotřeby a Premium Azure Functions infrastruktura škálovat prostředky procesoru a paměti přidáním dalších instancí hostitele Functions na základě počtu událostí, na kterých se funkce aktivuje.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. Každá instance hostitele Functions v plánu spotřeby je omezená na 1,5 GB paměti a jeden procesor.Each instance of the Functions host in the Consumption plan is limited to 1.5 GB of memory and one CPU. Instance hostitele je celá aplikace Function App, což znamená, že všechny funkce v rámci aplikace Function App sdílejí prostředky v rámci instance a škálují ve stejnou dobu.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. Aplikace Function App, které sdílejí stejný plán spotřeby, se škálují nezávisle.Function apps that share the same Consumption plan are scaled independently. V plánu Premium bude velikost vašeho plánu určovat dostupnou paměť a procesor pro všechny aplikace v tomto plánu na této instanci.In the Premium plan, your plan size will determine the available memory and CPU for all apps in that plan on that instance.

Soubory s kódem funkce jsou uložené ve sdílených složkách služby soubory Azure na hlavním účtu úložiště funkce.Function code files are stored on Azure Files shares on the function's main storage account. Když odstraníte hlavní účet úložiště aplikace Function App, soubory s kódem funkce se odstraní a nelze je obnovit.When you delete the main storage account of the function app, the function code files are deleted and cannot be recovered.

Škálování za běhuRuntime scaling

Azure Functions používá komponentu s názvem kontroler škálování pro monitorování míry událostí a určení, zda se má horizontální navýšení nebo škálování škálovat.Azure Functions uses a component called the scale controller to monitor the rate of events and determine whether to scale out or scale in. Kontroler škálování používá heuristiky pro každý typ triggeru.The scale controller uses heuristics for each trigger type. Pokud například používáte Trigger služby Azure Queue Storage, škáluje se podle délky fronty a stáří nejstarší zprávy fronty.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.

Jednotka škálování pro Azure Functions je aplikace Function App.The unit of scale for Azure Functions is the function app. Při horizontálním navýšení kapacity aplikace Function App se přidělí další prostředky pro spuštění více instancí Azure Functionsho hostitele.When the function app is scaled out, additional resources are allocated to run multiple instances of the Azure Functions host. V opačném případě dojde k omezení požadavků na výpočetní výkon, protože řadič škálování odebere instance hostitele funkcí.Conversely, as compute demand is reduced, the scale controller removes function host instances. V případě, že v aplikaci Function App nejsou spuštěny žádné funkce, počet instancí je nakonec zvětšen na hodnotu nula.The number of instances is eventually scaled in to zero when no functions are running within a function app.

Škálování událostí monitorování řadiče a vytváření instancí

Studený startCold Start

Až bude aplikace Function App po určitou dobu nečinná, může tato platforma škálovat počet instancí, na kterých vaše aplikace běží, na nulu.After your function app has been idle for a number of minutes, the platform may scale the number of instances on which your app runs down to zero. Další požadavek má přidanou latenci škálování od nuly po jeden.The next request has the added latency of scaling from zero to one. Tato latence se označuje jako studená spuštění.This latency is referred to as a cold start. Počet závislostí, které musí být načteny aplikací Function App, může mít vliv na počáteční čas.The number of dependencies that must be loaded by your function app can impact the cold start time. Studená Start je více problémů při synchronních operacích, například triggerech HTTP, které musí vracet odpověď.Cold start is more of an issue for synchronous operations, such as HTTP triggers that must return a response. Pokud mají tyto funkce vliv na studená spuštění, zvažte spuštění v plánu Premium nebo ve vyhrazeném plánu s povoleným funkcemi Always On.If cold starts are impacting your functions, consider running in a Premium plan or in a Dedicated plan with Always on enabled.

Principy chování škálováníUnderstanding scaling behaviors

Škálování se může u různých faktorů lišit a škáluje se různě na základě zvoleného triggeru a jazyka.Scaling can vary on a number of factors, and scale differently based on the trigger and language selected. Existuje několik složitými rozhraními chování škálování, která je potřeba znát:There are a few intricacies of scaling behaviors to be aware of:

  • Jedna aplikace Function App se škáluje maximálně na 200 instancí.A single function app only scales out to a maximum of 200 instances. Jedna instance může zpracovávat více než jednu zprávu nebo požádat současně, takže neexistuje nastavený limit počtu souběžných spuštění.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. Můžete zadat nižší maximum pro omezení škálování podle potřeby.You can specify a lower maximum to throttle scale as required.
  • Pro aktivační události HTTP se přidělují nové instance, a to nejvíce jednou za sekundu.For HTTP triggers, new instances are allocated, at most, once per second.
  • U triggerů bez protokolu HTTP se přidělují nové instance, a to nejvíce každých 30 sekund.For non-HTTP triggers, new instances are allocated, at most, once every 30 seconds. Škálování je rychlejší při provozu v plánu Premium.Scaling is faster when running in a Premium plan.
  • Pro aktivační události Service Bus použijte pro nejúčinnější škálování Spravovat práva k prostředkům.For Service Bus triggers, use Manage rights on resources for the most efficient scaling. U oprávnění k naslouchání není škálování tak přesné, protože délka fronty se nedá použít k informování rozhodnutí o škálování.With Listen rights, scaling isn't as accurate because the queue length can't be used to inform scaling decisions. Další informace o nastavení práv v zásadách přístupu Service Bus najdete v tématu zásady autorizace sdíleného přístupu.To learn more about setting rights in Service Bus access policies, see Shared Access Authorization Policy.
  • Aktivační události centra událostí najdete v návodu k škálování v referenčním článku.For Event Hub triggers, see the scaling guidance in the reference article.

Omezení horizontálního navýšení kapacityLimit scale out

Možná budete chtít omezit počet instancí, na které aplikace škáluje.You may wish to restrict the number of instances an app scales out to. Toto je nejběžnější pro případy, kdy komponenta pro příjem dat, jako je databáze, má omezené propustnost.This is most common for cases where a downstream component like a database has limited throughput. Ve výchozím nastavení se funkce plánu spotřeby škálují až na až 200 instancí a funkce plánu Premium se škálují až na až 100 instancí.By default, consumption plan functions will scale out to as many as 200 instances, and premium plan functions will scale out to as many as 100 instances. Úpravou hodnoty můžete určit nižší maximum pro konkrétní aplikaci functionAppScaleLimit .You can specify a lower maximum for a specific app by modifying the functionAppScaleLimit value. functionAppScaleLimitHodnota může být nastavena na hodnotu 0 nebo null pro neomezenou nebo platnou hodnotu mezi 1 a maximum.The functionAppScaleLimit can be set to 0 or null for unrestricted, or a valid value between 1 and the app maximum.

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

Osvědčené postupy a vzory pro škálovatelné aplikaceBest practices and patterns for scalable apps

Existuje mnoho aspektů aplikace Function App, které budou mít vliv na to, jak se bude škálovat, včetně konfigurace hostitele, běhového prostředí a efektivity prostředků.There are many aspects of a function app that will impact how well it will scale, including host configuration, runtime footprint, and resource efficiency. Další informace najdete v části věnované škálovatelnosti v článku věnovaném důležitýminformacím o výkonu.For more information, see the scalability section of the performance considerations article. Měli byste taky vědět, jak se připojení chovají, jak se vaše aplikace Function škáluje.You should also be aware of how connections behave as your function app scales. Další informace najdete v tématu Správa připojení v Azure Functions.For more information, see How to manage connections in Azure Functions.

Další informace o škálování v Pythonu a Node.js Azure Functions najdete v tématu Příručka pro vývojáře v Pythonu – škálování a souběžnost a Azure Functions Node.js příručka pro vývojáře – škálování a souběžnost.For more information on scaling in Python and Node.js, see Azure Functions Python developer guide - Scaling and concurrency and Azure Functions Node.js developer guide - Scaling and concurrency.

Model fakturaceBilling model

Fakturace pro různé plány je podrobně popsána na stránce s cenami Azure Functions.Billing for the different plans is described in detail on the Azure Functions pricing page. Použití je agregované na úrovni aplikace funkcí a počítá se pouze v době, kdy je spuštěn kód funkce.Usage is aggregated at the function app level and counts only the time that function code is executed. Níže jsou uvedené jednotky pro fakturaci:The following are units for billing:

  • Spotřeba prostředků v GB-s (GB-s).Resource consumption in gigabyte-seconds (GB-s). Vypočítáno jako kombinace velikosti paměti a doby provádění pro všechny funkce v rámci aplikace Function App.Computed as a combination of memory size and execution time for all functions within a function app.
  • Spuštění.Executions. Počítá se pokaždé, když se funkce spustí v reakci na Trigger události.Counted each time a function is executed in response to an event trigger.

Užitečné dotazy a informace o tom, jak pochopit vyúčtování spotřeby, najdete na stránce s nejčastějšími dotazy k fakturaci.Useful queries and information on how to understand your consumption bill can be found on the billing FAQ.

Porovnání plánů hostováníHosting plans comparison

Následující tabulka porovnání uvádí všechny důležité aspekty, které vám pomůžou s rozhodnutím o Azure Functions výběru plánu hostování aplikací:The following comparison table shows all important aspects to help the decision of Azure Functions App hosting plan choice:

Souhrn plánuPlan summary

Plán ConsumptionConsumption plan Automatické škálování a Plaťte jenom za výpočetní prostředky, když jsou vaše funkce spuštěné.Scale automatically and only pay for compute resources when your functions are running. V plánu spotřeby se instance hostitele Functions dynamicky přidávají a odstraňují na základě počtu příchozích událostí.On the Consumption plan, instances of the Functions host are dynamically added and removed based on the number of incoming events.
✔ Výchozí plán hostování.✔ Default hosting plan.
Plaťte ✔ jenom v případě, že jsou vaše funkce spuštěné.✔ Pay only when your functions are running.
✔ horizontálního navýšení kapacity, a to i během období vysokého zatížení.✔ scale-out automatically, even during periods of high load.
Plán PremiumPremium plan Při automatickém škálování na základě poptávky používejte předem zadržené pracovní procesy ke spouštění aplikací bez prodlevy po nečinnosti, spuštění na výkonnějších instancích a připojení k virtuální sítě.While automatically scaling based on demand, use pre-warmed workers to run applications with no delay after being idle, run on more powerful instances, and connect to VNETs. Zvažte plán Azure Functions Premium v následujících situacích, kromě všech funkcí plánu App Service:Consider the Azure Functions Premium plan in the following situations, in addition to all features of the App Service plan:
✔ Vaše aplikace Function App běží nepřetržitě nebo téměř nepřetržitě.✔ Your function apps run continuously, or nearly continuously.
✔ Máte vysoký počet malých spuštění a máte vysoké náklady na spuštění, ale v plánu spotřeby se účtují s malým počtem sekund.✔ You have a high number of small executions and have a high execution bill but low GB second bill in the Consumption plan.
✔ Budete potřebovat více možností procesoru nebo paměti, než jaké poskytuje plán spotřeby.✔ You need more CPU or memory options than what is provided by the Consumption plan.
✔ Váš kód musí běžet delší dobu, než je maximální doba běhu povolená v plánu spotřeby.✔ Your code needs to run longer than the maximum execution time allowed on the Consumption plan.
✔ Vyžadujete funkce, které jsou k dispozici pouze v plánu Premium, například připojení k virtuální síti.✔ You require features that are only available on a Premium plan, such as virtual network connectivity.
Vyhrazený plán1Dedicated plan1 Spusťte své funkce v rámci plánu App Service v pravidelných App Servicech tarifech.Run your functions within an App Service plan at regular App Service plan rates. Vhodným způsobem pro dlouhotrvající operace, i když je potřeba více prediktivního škálování a nákladů.Good fit for long running operations, as well as when more predictive scaling and costs are required. Vezměte v úvahu App Service plán v následujících situacích:Consider an App Service plan in the following situations:
✔ Máte existující, nevyužité virtuální počítače, které už používají jiné instance App Service.✔ You have existing, underutilized VMs that are already running other App Service instances.
✔ Chcete zadat vlastní image, na které se mají spouštět vaše funkce.✔ You want to provide a custom image on which to run your functions.
Pomocného mechanismu1ASE1 App Service Environment (pomocného mechanismu) je funkce App Service, která poskytuje plně izolované a vyhrazené prostředí pro bezpečné spouštění App Service aplikací ve velkém měřítku.App Service Environment (ASE) is an App Service feature that provides a fully isolated and dedicated environment for securely running App Service apps at high scale. Služby ASE jsou vhodné pro úlohy aplikací, které vyžadují:ASEs are appropriate for application workloads that require:
✔ Velmi vysokého měřítka.✔ Very high scale.
✔ Úplnou izolaci výpočtů a zabezpečení přístupu k síti.✔ Full compute isolation and secure network access.
✔ Vysoké využití paměti.✔ High memory utilization.
KubernetesKubernetes Kubernetes poskytuje plně izolované a vyhrazené prostředí běžící nad platformou Kubernetes.Kubernetes provides a fully isolated and dedicated environment running on top of the Kubernetes platform. Kubernetes je vhodný pro úlohy aplikací, které vyžadují:Kubernetes is appropriate for application workloads that require:
✔ Požadavky na vlastní hardware.✔ Custom hardware requirements.
✔ Izolaci a zabezpečení přístupu k síti.✔ Isolation and secure network access.
✔ Schopnost spouštět v hybridním nebo multi-cloudovém prostředí.✔ Ability to run in hybrid or multi-cloud environment.
✔ Běžet společně se stávajícími aplikacemi a službami Kubernetes.✔ Run alongside existing Kubernetes applications and services.

1 Pokud chcete určit omezení pro různé možnosti plánu App Service, přečtěte si omezení App Service plánu.1 For specific limits for the various App Service plan options, see the App Service plan limits.

Operační systém/modul runtimeOperating system/runtime

Linux1Linux1
Pouze kódCode-only
Systém Windows2Windows2
Pouze kódCode-only
Linux1, 3Linux1,3
Kontejner DockerDocker container
Plán ConsumptionConsumption plan .NET Core.NET Core
Node.jsNode.js
JavaJava
PythonPython
.NET Core.NET Core
Node.jsNode.js
JavaJava
PowerShell CorePowerShell Core
Bez podporyNo support
Plán PremiumPremium plan .NET Core.NET Core
Node.jsNode.js
JavaJava
PythonPython
.NET Core.NET Core
Node.jsNode.js
JavaJava
PowerShell CorePowerShell Core
.NET Core.NET Core
Node.jsNode.js
JavaJava
PowerShell CorePowerShell Core
PythonPython
Vyhrazený plán4Dedicated plan4 .NET Core.NET Core
Node.jsNode.js
JavaJava
PythonPython
.NET Core.NET Core
Node.jsNode.js
JavaJava
PowerShell CorePowerShell Core
.NET Core.NET Core
Node.jsNode.js
JavaJava
PowerShell CorePowerShell Core
PythonPython
Pomocného mechanismu4ASE4 .NET Core.NET Core
Node.jsNode.js
JavaJava
PythonPython
.NET Core.NET Core
Node.jsNode.js
JavaJava
PowerShell CorePowerShell Core
.NET Core.NET Core
Node.jsNode.js
JavaJava
PowerShell CorePowerShell Core
PythonPython
KubernetesKubernetes neuvedenon/a neuvedenon/a .NET Core.NET Core
Node.jsNode.js
JavaJava
PowerShell CorePowerShell Core
PythonPython

1 Linux je jediným podporovaným operačním systémem pro zásobník modulu runtime Pythonu.1Linux is the only supported operating system for the Python runtime stack.
2 . Systém Windows je jediným podporovaným operačním systémem pro zásobník modulu runtime prostředí PowerShell.2Windows is the only supported operating system for the PowerShell runtime stack.
3 . Linux je jediným podporovaným operačním systémem pro kontejnery Docker.3Linux is the only supported operating system for Docker containers. 4 konkrétní omezení pro různé možnosti plánu App Service najdete v tématu omezení plánu App Service.4 For specific limits for the various App Service plan options, see the App Service plan limits.

MěřítkoScale

Horizontální navýšení kapacityScale out Maximální počet instancíMax # instances
Plán ConsumptionConsumption plan Řízený událost.Event driven. Horizontální navýšení kapacity, a to i během období vysokého zatížení.Scale out automatically, even during periods of high load. Azure Functions infrastruktura škáluje prostředky procesoru a paměti přidáním dalších instancí hostitele Functions na základě počtu událostí, na kterých se spouští jeho funkce.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. 200200
Plán PremiumPremium plan Řízený událost.Event driven. Horizontální navýšení kapacity, a to i během období vysokého zatížení.Scale out automatically, even during periods of high load. Azure Functions infrastruktura škáluje prostředky procesoru a paměti přidáním dalších instancí hostitele Functions na základě počtu událostí, na kterých se spouští jeho funkce.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. 100100
Vyhrazený plán1Dedicated plan1 Ruční nebo automatické škálováníManual/autoscale 10-2010-20
Pomocného mechanismu1ASE1 Ruční nebo automatické škálováníManual/autoscale 100100
KubernetesKubernetes Automatické škálování založené na událostech pro clustery Kubernetes s využitím kedaEvent-driven autoscale for Kubernetes clusters using KEDA. Liší se   podle   clusteru.  Varies by cluster.  

1 Pokud chcete určit omezení pro různé možnosti plánu App Service, přečtěte si omezení App Service plánu.1 For specific limits for the various App Service plan options, see the App Service plan limits.

Chování studeného startuCold start behavior

 Plán spotřebyConsumption plan Aplikace se můžou po určitou dobu v nečinnosti škálovat na nulu, což znamená, že některé požadavky můžou při spuštění mít další latenci.Apps may scale to zero if idle for a period of time, meaning some requests may have additional latency at startup. Plán spotřeby má několik optimalizací, které vám pomůžou snižovat čas na studený start, včetně přijímání předem zatepléch zástupných funkcí, které už mají spuštěné hostitele funkcí a jazyka.The consumption plan does have some optimizations to help decrease cold start time, including pulling from pre-warmed placeholder functions that already have the function host and language processes running.
Plán PremiumPremium plan Trvalé zahřívání instancí, aby nedocházelo k žádnému studenému startu.Perpetually warm instances to avoid any cold start.
Vyhrazený plán1Dedicated plan1 Při spuštění ve vyhrazeném plánu může hostitel služby Functions běžet průběžně, což znamená, že se ve skutečnosti nejedná o problém s studeným startem.When running in a Dedicated plan, the Functions host can run continuously, which means that cold start isn’t really an issue.
Pomocného mechanismu1ASE1 Při spuštění ve vyhrazeném plánu může hostitel služby Functions běžet průběžně, což znamená, že se ve skutečnosti nejedná o problém s studeným startem.When running in a Dedicated plan, the Functions host can run continuously, which means that cold start isn’t really an issue.
KubernetesKubernetes Závisí na konfiguraci KEDA.Depends on KEDA configuration. Aplikace je možné nakonfigurovat tak, aby vždy běžely a nikdy nezačaly běžet, nebo aby se nakonfigurovali na hodnotu nula, což vede ke studenému startu na nové události.Apps can be configured to always run and never have cold start, or configured to scale to zero, which results in cold start on new events.

1 Pokud chcete určit omezení pro různé možnosti plánu App Service, přečtěte si omezení App Service plánu.1 For specific limits for the various App Service plan options, see the App Service plan limits.

Omezení službyService limits

ProstředekResource Plán ConsumptionConsumption plan Plán PremiumPremium plan Vyhrazený plánDedicated plan ASEASE KubernetesKubernetes
Výchozí Doba trvání časového limitu (min.)Default timeout duration (min) 55 3030 301301 3030 3030
Maximální Doba trvání časového limitu (min.)Max timeout duration (min) 1010 neohraničené7unbounded7 neohraničené2unbounded2 Unboundedunbounded Unboundedunbounded
Maximální počet odchozích připojení (na instanci)Max outbound connections (per instance) 600 aktivní (celkem 1200)600 active (1200 total) Unboundedunbounded Unboundedunbounded Unboundedunbounded Unboundedunbounded
Maximální velikost požadavku (MB)3Max request size (MB)3 100100 100100 100100 100100 Závisí na clusteruDepends on cluster
Maximální délka řetězce dotazu3Max query string length3 4 0964096 4 0964096 4 0964096 4 0964096 Závisí na clusteruDepends on cluster
Maximální délka adresy URL požadavku3Max request URL length3 81928192 81928192 81928192 81928192 Závisí na clusteruDepends on cluster
ACU na instanciACU per instance 100100 210-840210-840 100-840100-840 210-2508210-2508 Ceny AKSAKS pricing
Maximální velikost paměti (GB na instanci)Max memory (GB per instance) 1.51.5 3,5 – 143.5-14 1,75 – 141.75-14 3,5 – 143.5 - 14 Podporuje se libovolný uzel.Any node is supported
Aplikace Function App na plánFunction apps per plan 100100 100100 neohraničené4unbounded4 Unboundedunbounded Unboundedunbounded
Plány služby App ServiceApp Service plans 100 na oblast100 per region 100 na skupinu prostředků100 per resource group 100 na skupinu prostředků100 per resource group - -
Úložiště5Storage5 5 TB5 TB 250 GB250 GB 50-1000 GB50-1000 GB 1 TB1 TB neuvedenon/a
Vlastní domény na aplikaciCustom domains per app 50065006 500500 500500 500500 neuvedenon/a
Podpora protokolu SSL vlastní doményCustom domain SSL support zahrnuto do nevázaného SNI SSL připojeníunbounded SNI SSL connection included neohraničená SNI SSL a jsou zahrnutá 1 IP SSL připojení.unbounded SNI SSL and 1 IP SSL connections included neohraničená SNI SSL a jsou zahrnutá 1 IP SSL připojení.unbounded SNI SSL and 1 IP SSL connections included neohraničená SNI SSL a jsou zahrnutá 1 IP SSL připojení.unbounded SNI SSL and 1 IP SSL connections included neuvedenon/a

1 ve výchozím nastavení je časový limit pro modul runtime Functions 1. x v plánu App Service neohraničený.1 By default, the timeout for the Functions 1.x runtime in an App Service plan is unbounded.
2 vyžaduje, aby byl plán App Service nastavený na vždycky zapnutý.2 Requires the App Service plan be set to Always On. Platíte za standardní sazby.Pay at standard rates.
3 tato omezení se nastavují na hostiteli.3 These limits are set in the host.
4 skutečný počet aplikací Function App, které můžete hostovat, závisí na aktivitách aplikací, velikosti instancí počítačů a na odpovídajícím využití prostředků.4 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.
5 limit úložiště je celková velikost obsahu v dočasném úložišti napříč všemi aplikacemi ve stejném plánu App Service.5 The storage limit is the total content size in temporary storage across all apps in the same App Service plan. Plán spotřeby používá soubory Azure pro dočasné úložiště.Consumption plan uses Azure Files for temporary storage.
6 Pokud je vaše aplikace Function hostovaná v plánu spotřeby, podporuje se jenom možnost CNAME.6 When your function app is hosted in a Consumption plan, only the CNAME option is supported. Pro aplikace Function App v plánu Premium nebo v plánu App Servicemůžete namapovat vlastní doménu pomocí záznamu CNAME nebo a.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.
7 garantuje až 60 minut.7 Guaranteed for up to 60 minutes.
8 pracovních procesů jsou role, které hostují zákaznické aplikace.8 Workers are roles that host customer apps. Pracovní procesy jsou dostupné ve třech pevných velikostech: One vCPU/3,5 GB RAM; Dva vCPU/7 GB paměti RAM; Čtyři vCPU/14 GB paměti RAM.Workers are available in three fixed sizes: One vCPU/3.5 GB RAM; Two vCPU/7 GB RAM; Four vCPU/14 GB RAM.

Síťové funkceNetworking features

PříznakFeature Plán ConsumptionConsumption plan Plán PremiumPremium plan Vyhrazený plánDedicated plan ASEASE KubernetesKubernetes
Omezení příchozí IP adresy a přístup k privátnímu webuInbound IP restrictions and private site access ✅Yes✅Yes ✅Yes✅Yes ✅Yes✅Yes ✅Yes✅Yes ✅Yes✅Yes
Integrace virtuální sítěVirtual network integration ❌No❌No ✅Ano (místní)✅Yes (Regional) ✅Ano (místní a brána)✅Yes (Regional and Gateway) ✅Yes✅Yes ✅Yes✅Yes
Aktivační události virtuální sítě (jiné než HTTP)Virtual network triggers (non-HTTP) ❌No❌No ✅Yes✅Yes ✅Yes✅Yes ✅Yes✅Yes ✅Yes✅Yes
Hybridní připojení (jenom Windows)Hybrid connections (Windows only) ❌No❌No ✅Yes✅Yes ✅Yes✅Yes ✅Yes✅Yes ✅Yes✅Yes
Omezení odchozích IP adresOutbound IP restrictions ❌No❌No ✅Yes✅Yes ✅Yes✅Yes ✅Yes✅Yes ✅Yes✅Yes

FakturaceBilling

Plán ConsumptionConsumption plan Platíte jenom za čas, kdy se vaše funkce spouštějí.Pay only for the time your functions run. Fakturace vychází z počtu spuštění, doby spuštění a použité paměti.Billing is based on number of executions, execution time, and memory used.
Plán PremiumPremium plan Plán Premium je založený na počtu základních sekund a paměti využitých v případě potřeby a předem zahřívání instancí.Premium plan is based on the number of core seconds and memory used across needed and pre-warmed instances. Alespoň jedna instance v každém plánu musí být zachována v zahřívání.At least one instance per plan must be kept warm at all times. Tento plán poskytuje předvídatelné ceny.This plan provides more predictable pricing.
Vyhrazený plán1Dedicated plan1 Totéž platí pro aplikace Function App v plánu App Service, stejně jako u jiných prostředků App Service, jako jsou například webové aplikace.You pay the same for function apps in an App Service Plan as you would for other App Service resources, like web apps.
Pomocného mechanismu1ASE1 pro pomocného objekt pro řízení se platí paušální měsíční sazba, která platí pro infrastrukturu a která se nemění podle velikosti pomocného mechanismu.there's a flat monthly rate for an ASE that pays for the infrastructure and doesn't change with the size of the ASE. Navíc platí, že vCPU plán bude mít cenu za App Service.In addition, there's a cost per App Service plan vCPU. Všechny aplikace hostované ve službě ASE jsou ve skladové položce s izolovanou cenou.All apps hosted in an ASE are in the Isolated pricing SKU.
KubernetesKubernetes Platíte jenom náklady na váš cluster Kubernetes; žádné další fakturace pro funkce.You pay only the costs of your Kubernetes cluster; no additional billing for Functions. Vaše aplikace Function App funguje v rámci clusteru jako úloha aplikace, stejně jako u běžné aplikace.Your function app runs as an application workload on top of your cluster, just like a regular app.

1 Pokud chcete určit omezení pro různé možnosti plánu App Service, přečtěte si omezení App Service plánu.1 For specific limits for the various App Service plan options, see the App Service plan limits.

Další krokyNext steps