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