Azure Functions možností hostování

Když vytvoříte aplikaci Function App v Azure, musíte zvolit plán hostování pro vaši aplikaci. 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). všechny plány hostování jsou všeobecně dostupné na virtuálních počítačích se systémem Linux i Windows.

Plán hostování, který zvolíte, bude určovat následující chování:

  • Jak se škáluje aplikace Function App
  • Prostředky dostupné pro jednotlivé instance aplikace Function App.
  • Podpora pokročilých funkcí, jako je například připojení k Azure Virtual Network.

Tento článek poskytuje podrobné porovnání různých plánů hostování spolu s hostováním založeném na Kubernetes.

Poznámka

Pokud se rozhodnete hostovat své funkce v clusteru Kubernetes, zvažte použití clusteru Kubernetes s podporou ARC Azure. Hostování v clusteru Kubernetes s povoleným ARC Azure je aktuálně ve verzi Preview. Další informace najdete v tématu App Service, funkce a Logic Apps v Arc Azure.

Přehled plánů

Následuje souhrn výhod tří hlavních plánů hostování pro funkce:

Plánování Výhody
Plán Consumption Automatické škálování a Plaťte jenom za výpočetní prostředky, když jsou vaše funkce spuštěné.

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í.

✔ Výchozí plán hostování.
Plaťte ✔ jenom v případě, že jsou vaše funkce spuštěné.
✔ Škáluje automaticky, a to i během období vysokého zatížení.
Plán Premium Automatické škálování na základě poptávky pomocí předem zadržených pracovních procesů, které spouštějí aplikace bez prodlevy po nečinnosti, běží na výkonnějších instancích a připojuje se k virtuálním sítím.

vezměte v úvahu Azure Functions Premium plán v následujících situacích:

✔ Vaše aplikace Function App běží nepřetržitě nebo téměř nepřetržitě.
✔ Máte vysoký počet malých spuštění a vysoké vykonání vyúčtování, ale v plánu spotřeby je málo sekund.
✔ Budete potřebovat více možností procesoru nebo paměti, než jaké poskytuje plán spotřeby.
✔ Váš kód musí běžet delší dobu, než je maximální doba běhu povolená v plánu spotřeby.
✔ Vyžadujete funkce, které nejsou dostupné v plánu spotřeby, jako je třeba připojení k virtuální síti.
✔ Chcete zadat vlastní image Linux, na které se mají spouštět vaše funkce.
Plán Dedicated Spusťte své funkce v rámci plánu App Service v pravidelných App Servicechtarifech.

Je nejvhodnější pro dlouhotrvající scénáře, kdy Durable Functions nelze použít. Vezměte v úvahu App Service plán v následujících situacích:

✔ Máte existující, nevyužité virtuální počítače, které už používají jiné instance App Service.
✔ Prediktivní škálování a náklady jsou požadovány.

Srovnávací tabulky v tomto článku také obsahují následující možnosti hostování, které poskytují nejvyšší množství řízení a izolace, ve kterém se spouštějí aplikace Function App.

Možnost hostování Podrobnosti
ASE 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.

Služby ASE jsou vhodné pro úlohy aplikací, které vyžadují:

✔ Velmi vysokého měřítka.
✔ Úplnou izolaci výpočtů a zabezpečení přístupu k síti.
✔ Vysoké využití paměti.
Kubernetes
(Přímá nebo
ARC Azure)
Kubernetes poskytuje plně izolované a vyhrazené prostředí běžící nad platformou Kubernetes.

Kubernetes je vhodný pro úlohy aplikací, které vyžadují:
✔ Požadavky na vlastní hardware.
✔ Izolaci a zabezpečení přístupu k síti.
✔ Schopnost spouštět v hybridním nebo multi-cloudovém prostředí.
✔ Běžet společně se stávajícími aplikacemi a službami Kubernetes.

Zbývající tabulky v tomto článku porovnávají plány různých funkcí a chování. srovnání nákladů mezi plány dynamického hostování (spotřeba a Premium) najdete na stránce s cenami Azure Functions. Ceny různých možností vyhrazeného plánu najdete na stránce s cenami App Service.

Operační systém/modul runtime

Následující tabulka uvádí operační systém a jazykovou podporu pro plány hostování.

Linux1
Pouze kód
Windows2
Pouze kód
Linux1, 3
Kontejner Docker
Plán Consumption .NET Core 3.1
.NET 5.0
JavaScript
Java
Python
TypeScript
.NET Core 3.1
.NET 5.0
JavaScript
Java
PowerShell Core
TypeScript
Bez podpory
Plán Premium .NET Core 3.1
.NET 5.0
JavaScript
Java
Python
TypeScript
.NET Core
.NET 5.0
JavaScript
Java
PowerShell Core
TypeScript
.NET Core
Node.js
Java
PowerShell Core
Python
TypeScript
Plán Dedicated .NET Core 3.1
.NET 5.0
JavaScript
Java
Python
TypeScript
.NET Core 3.1
.NET 5.0
JavaScript
Java
PowerShell Core
TypeScript
.NET Core 3.1
.NET 5.0
JavaScript
Java
PowerShell Core
Python
TypeScript
ASE .NET Core 3.1
.NET 5.0
JavaScript
Java
Python
TypeScript
.NET Core 3.1
.NET 5.0
JavaScript
Java
PowerShell Core
TypeScript
.NET Core 3.1
.NET 5.0
JavaScript
Java
PowerShell Core
Python
TypeScript
Kubernetes (přímé) Není k dispozici Není k dispozici .NET Core 3.1
.NET 5.0
JavaScript
Java
PowerShell Core
Python
TypeScript
Azure Arc (Preview) .NET Core 3.1
.NET 5.0
JavaScript
Java
Python
TypeScript
Není k dispozici .NET Core 3.1
.NET 5.0
JavaScript
Java
PowerShell Core
Python
TypeScript

1 Linux je jediným podporovaným operačním systémem pro zásobník modulu runtime Pythonu.
2 Windows je jediným podporovaným operačním systémem pro zásobník modulu runtime PowerShellu.
3 Linux je jediným podporovaným operačním systémem pro kontejnery Dockeru.

Doba časového limitu aplikace funkcí

Doba trvání časového limitu aplikace funkcí je definovaná functionTimeout vlastností v souboru projektu host.json. Následující tabulka uvádí výchozí a maximální hodnoty v minutách pro plány a různé verze modulu runtime:

Plánování Verze modulu runtime Výchozí Maximum
Využití 1.x 5 10
Využití 2.x 5 10
Využití 3.x 5 10
Premium 1.x Unlimited Unlimited
Premium 2.x 30 Unlimited
Premium 3.x 30 Unlimited
App Service 1.x Unlimited Unlimited
App Service 2.x 30 Unlimited
App Service 3.x 30 Unlimited

Poznámka

Bez ohledu na nastavení časového limitu aplikace funkcí je maximální doba, po kterou může funkce aktivované protokolem HTTP reagovat na požadavek, 230 sekund. Je to z důvodu výchozího časového limitu nečinnosti Azure Load Balancer. V případě delší doby zpracování zvažte použití Durable Functions asynchronního vzoru nebo odložit skutečnou práci a vrátit okamžitou odpověď.

Měřítko

Následující tabulka porovnává chování škálování různých plánů hostování.

Plánování Horizontální navýšení kapacity Maximální počet instancí
Plán Consumption Událostmi řízený. Horizontální navýšení velikosti automaticky, a to i v obdobích vysokého zatížení. Azure Functions infrastruktury škáluje prostředky procesoru a paměti přidáním dalších instancí hostitele služby Functions na základě počtu příchozích událostí triggeru. 200
Plán Premium Událostmi řízený. Horizontální navýšení velikosti automaticky, a to i v obdobích vysokého zatížení. Azure Functions infrastruktury škáluje prostředky procesoru a paměti přidáním dalších instancí hostitele služby Functions na základě počtu událostí, na kterých jsou jeho funkce aktivovány. 100
Vyhrazený plán1 Ruční/automatické škálování 10-20
ASE1 Ruční/automatické škálování 100
Kubernetes Automatické škálování řízené událostmi pro clustery Kubernetes pomocí keda. Liší   se podle   clusteru  

1 Konkrétní limity pro různé možnosti App Service najdete v tématu App Service plánu.

Chování při studeném startu

Plánování Podrobnosti
Plán   Consumption Aplikace se při nečinnosti mohou škálovat na nulu, což znamená, že některé požadavky mohou mít při spuštění další latenci. Plán Consumption má určité optimalizace, které vám pomůžou snížit dobu studeného startu, včetně stahování z předem zahřejených zástupných funkcí, které již mají spuštěné hostitelské a jazykové procesy funkce.
Plán Premium Neustále teplé instance, aby se zabránilo studenému startu.
Plán Dedicated Při spuštění v plánu Dedicated může hostitel služby Functions běžet nepřetržitě, což znamená, že studený start ve skutečnosti není problém.
ASE Při spuštění v plánu Dedicated může hostitel služby Functions běžet nepřetržitě, což znamená, že studený start ve skutečnosti není problém.
Kubernetes V závislosti na konfiguraci KEDA je možné aplikace nakonfigurovat tak, aby se zabránilo studenému startu. Pokud je nakonfigurované škálování na nulu, dojde u nových událostí k studenému startu.

Omezení služby

Prostředek Plán Consumption Plán Premium Plán Dedicated ASE Kubernetes
Výchozí Doba trvání časového limitu (min.) 5 30 301 30 30
Maximální Doba trvání časového limitu (min.) 10 neohraničené7 neohraničené2 Unbounded Unbounded
Maximální počet odchozích připojení (na instanci) 600 aktivní (celkem 1200) Unbounded Unbounded Unbounded Unbounded
Maximální velikost požadavku (MB)3 100 100 100 100 Závisí na clusteru
Maximální délka řetězce dotazu3 4 096 4 096 4 096 4 096 Závisí na clusteru
Maximální délka adresy URL požadavku3 8192 8192 8192 8192 Závisí na clusteru
ACU na instanci 100 210-840 100-840 210-2508 Ceny AKS
Maximální velikost paměti (GB na instanci) 1.5 3,5 – 14 1,75 – 14 3,5 – 14 Podporuje se libovolný uzel.
Maximální počet instancí 200 1009 liší se podle skladové položky10 10010 Závisí na clusteru
Aplikace Function App na plán 100 100 neohraničené4 Unbounded Unbounded
Plány služby App Service 100 na oblast 100 na skupinu prostředků 100 na skupinu prostředků - -
Úložiště5 5 TB 250 GB 50-1000 GB 1 TB Není k dispozici
Vlastní domény na aplikaci 5006 500 500 500 Není k dispozici
Podpora protokolu SSL vlastní domény zahrnuto do nevázaného SNI SSL připojení neohraničená SNI SSL a jsou zahrnutá 1 IP SSL připojení. neohraničená SNI SSL a jsou zahrnutá 1 IP SSL připojení. neohraničená SNI SSL a jsou zahrnutá 1 IP SSL připojení. Není k dispozici

1 ve výchozím nastavení je časový limit pro modul runtime Functions 1. x v plánu App Service neohraničený.
2 vyžaduje, aby byl plán App Service nastavený na vždycky zapnutý. Platíte za standardní sazby.
3 tato omezení se nastavují na hostiteli.
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ů.
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. Plán spotřeby používá soubory Azure pro dočasné úložiště.
6 Pokud je vaše aplikace Function hostovaná v plánu spotřeby, podporuje se jenom možnost CNAME. 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.
7 garantuje až 60 minut.
8 pracovních procesů jsou role, které hostují zákaznické aplikace. 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.
9 při provozu v systému Linux v plánu Premium je aktuálně omezeno na 20 instancí.
10 viz omezení App Service pro podrobnosti.

Síťové funkce

Funkce Plán Consumption Plán Premium Plán Dedicated ASE Kubernetes
Omezení příchozích IP adres a přístup k privátní lokalitě ✅Yes ✅Yes ✅Yes ✅Yes ✅Yes
Integrace virtuální sítě ❌No ✅Ano (místní) ✅Ano (místní oblast a brána) ✅Yes ✅Yes
Triggery virtuální sítě (jiné než HTTP) ❌No ✅Yes ✅Yes ✅Yes ✅Yes
Hybridní připojení (pouze Windows) ❌No ✅Yes ✅Yes ✅Yes ✅Yes
Omezení odchozích IP adres ❌No ✅Yes ✅Yes ✅Yes ✅Yes

Fakturace

Plánování Podrobnosti
Plán Consumption Platíte jenom za čas, kdy vaše funkce běží. Fakturace vychází z počtu spuštění, doby spuštění a použité paměti.
Plán Premium Premium je založen na počtu sekund jádra a paměti využité na potřebných a předem zahřejených instancích. Alespoň jedna instance na plán musí být za všech okolností zahřejená. Tento plán nabízí nejpohodnější ceny.
Plán Dedicated Za aplikace funkcí v plánu App Service stejně jako za jiné App Service, jako jsou webové aplikace.
App Service Environment (ASE) Za služby ASE se platí měsíční sazba, která platí za infrastrukturu a nemění se s velikostí služby ASE. Za každý virtuální procesor plánu App Service náklady. Všechny aplikace hostované ve službě ASE jsou ve skladové položce s izolovanou cenou.
Kubernetes Platíte jenom náklady na cluster Kubernetes. žádná další fakturace služby Functions. Vaše aplikace funkcí se stejně jako běžná aplikace spouští nad clusterem jako úloha aplikace.

Další kroky