Sdílet prostřednictvím


Možnosti hostování Azure Functions

Při vytváření aplikace funkcí v Azure musíte zvolit možnost hostování aplikace. Azure nabízí tyto možnosti hostování kódu funkce:

Možnost hostování Služba Dostupnost Podpora kontejnerů
Plán Consumption Azure Functions Obecně dostupné (GA) Nic
Plán Flex Consumption Azure Functions Preview Nic
Plán Premium Azure Functions GA Linux
Vyhrazený plán Azure Functions GA Linux
Container Apps Azure Container Apps GA Linux

Možnosti hostování Azure Functions usnadňují infrastrukturu služby Aplikace Azure na virtuálních počítačích s Linuxem i Windows. Možnost hostování, kterou zvolíte, určuje následující chování:

  • Jak se aplikace funkcí škáluje.
  • Prostředky dostupné pro každou instanci aplikace funkcí.
  • Podpora pokročilých funkcí, jako je připojení k virtuální síti Azure.
  • Podpora kontejnerů Linuxu

Zvolený plán má také vliv na náklady na spuštění kódu funkce. Další informace najdete v tématu Fakturace.

Tento článek obsahuje podrobné porovnání různých možností hostování. Další informace o spouštění a správě kódu funkce v kontejnerech Linuxu najdete v tématu Podpora kontejnerů Linuxu ve službě Azure Functions.

Přehled plánů

Následuje souhrn výhod různých možností hostování Azure Functions:

Možnost Zaměstnanecké výhody
Plán Consumption Platíte za výpočetní prostředky jenom v případě, že vaše funkce běží (průběžné platby) s automatickým škálováním.

V plánu Consumption se instance hostitele služby Azure Functions přidávají a odebírají automaticky na základě počtu příchozích událostí.

✔ Výchozí plán hostování, který poskytuje skutečné bezserverové hostování.
✔ Platíte jenom v případech, kdy jsou funkce spuštěné.
✔ Škáluje se automaticky i během období vysokého zatížení.
Plán Flex Consumption Získejte vysokou škálovatelnost s volbami výpočetních prostředků, virtuálními sítěmi a průběžnými platbami.

V plánu Flex Consumption se instance hostitele Functions dynamicky přidávají a odebírají na základě nakonfigurované souběžnosti jednotlivých instancí a počtu příchozích událostí.

✔ Snižte počet předem zřízených (vždy připravených) instancí.
✔ Podporuje virtuální sítě pro přidání zabezpečení.
✔ Platíte, když jsou funkce spuštěné.
✔ Škáluje se automaticky i během období vysokého zatížení.
Plán Premium Automaticky škáluje na základě poptávky pomocí předem ozbrojených pracovníků, které spouští aplikace bez zpoždění po nečinnosti, běží na výkonnějších instancích a připojuje se k virtuálním sítím.

V následujících situacích zvažte plán Azure Functions Premium:

✔ Aplikace funkcí běží nepřetržitě nebo téměř nepřetržitě.
✔ Chcete mít větší kontrolu nad vašimi instancemi a chcete do stejného plánu nasadit více aplikací funkcí se škálováním řízeným událostmi.
✔ V plánu Consumption máte velký počet malých spuštění a fakturu za vysoké provedení, ale nízké GB sekund.
✔ Potřebujete více možností procesoru nebo paměti, než poskytují plány consumption.
✔ Váš kód musí běžet déle, než je maximální doba provádění povolená v plánu Consumption.
✔ Potřebujete připojení k virtuální síti.
✔ Chcete zadat vlastní image Linuxu, ve které chcete spouštět funkce.
Vyhrazený plán Spouštějte funkce v rámci plánu služby App Service s pravidelnými sazbami plánu služby App Service.

Nejvhodnější pro dlouhotrvající scénáře, kdy durable Functions nejde použít. V následujících situacích zvažte plán služby App Service:

✔ Máte existující a nedostatečně využité virtuální počítače, na kterých už běží jiné instance služby App Service.
✔ Musíte mít plně předvídatelnou fakturaci nebo potřebujete ručně škálovat instance.
✔ Chcete spustit více webových aplikací a aplikací funkcí ve stejném plánu.
✔ Potřebujete přístup k větším možnostem velikosti výpočetních prostředků.
✔ Úplná izolace výpočetních prostředků a zabezpečený přístup k síti poskytovaný službou App Service Environment (ASE).
✔ Velmi vysoké využití paměti a vysoké škálování (ASE).
Container Apps Vytvářejte a nasazujte kontejnerizované aplikace funkcí v plně spravovaném prostředí hostované službou Azure Container Apps.

Pomocí programovacího modelu Azure Functions můžete vytvářet bezserverové aplikace funkcí nativní pro cloud. Funkce můžete spouštět společně s dalšími mikroslužbami, rozhraními API, weby a pracovními postupy jako programy hostované kontejnery. Zvažte hostování funkcí v Container Apps v následujících situacích:

✔ Vlastní knihovny chcete s kódem funkce zabalit tak, aby podporovaly obchodní aplikace.
✔ Je potřeba migrovat spouštění kódu z místních nebo starších aplikací do nativních cloudových mikroslužeb spuštěných v kontejnerech.
✔ Pokud se chcete vyhnout režii a složitosti správy clusterů Kubernetes a vyhrazených výpočetních prostředků.
✔ Vaše funkce potřebují vysoký výpočetní výkon poskytovaný vyhrazenými výpočetními prostředky GPU.

Zbývající tabulky v tomto článku porovnávají možnosti hostování na základě různých funkcí a chování.

Podpora operačního systému

Tato tabulka ukazuje podporu operačního systému pro možnosti hostování.

Hostování Nasazení Linuxu1 Nasazení Windows2
Plán Consumption ✅ Pouze kód
❌ Kontejner (nepodporuje se)
✅ Pouze kód
Plán Flex Consumption ✅ Pouze kód
❌ Kontejner (nepodporuje se)
❌ Nepodporováno
Plán Premium ✅ Pouze kód
✅ Kontejner
✅ Pouze kód
Vyhrazený plán ✅ Pouze kód
✅ Kontejner
✅ Pouze kód
Container Apps ✅ Pouze kontejner ❌ Nepodporováno

1 Linux je jediný podporovaný operační systém pro zásobník modulu runtime Pythonu.
2 Nasazení systému Windows jsou pouze kód. Služba Functions v současné době nepodporuje kontejnery Windows.

Doba trvání časového limitu aplikace funkcí

Doba trvání časového limitu pro funkce v aplikaci funkcí je definována functionTimeout vlastností v souboru projektu host.json . Tato vlastnost se vztahuje konkrétně na provádění funkcí. Po spuštění triggeru funkce musí funkce v době časového limitu vrátit nebo odpovědět. Další informace najdete v tématu Zlepšení výkonu a spolehlivosti azure Functions.

Následující tabulka uvádí výchozí a maximální hodnoty (v minutách) pro konkrétní plány:

Plánování Výchozí Maximálně1
Plán Consumption 5 10
Plán Flex Consumption 30 Neomezené3
Plán Premium 302 Neomezené3
Vyhrazený plán 302 Neomezené3

1 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. Důvodem je výchozí časový limit nečinnosti služby Azure Load Balancer. V případě delší doby zpracování zvažte použití asynchronního vzoru Durable Functions nebo odložit skutečnou práci a vrátit okamžitou odpověď.
2 Výchozí časový limit pro modul runtime služby Functions verze 1.x je neomezený.
3 Zaručeno až 60 minut. Opravy operačního systému a běhové opravy, opravy ohrožení zabezpečení a škálování v chování můžou stále rušit provádění funkcí, aby se zajistilo zápis robustních funkcí. 4 V plánu Flex Consumption hostitel nevynucuje časový limit provádění. V současné době ale neexistují žádné záruky, protože platforma může potřebovat ukončit instance během horizontálního navýšení kapacity, nasazení nebo instalace aktualizací.

Podpora jazyků

Podrobnosti o aktuální podpoře zásobníku nativních jazyků ve službě Functions najdete v tématu Podporované jazyky ve službě Azure Functions.

Měřítko

Následující tabulka porovnává chování škálování různých plánů hostování.
Maximální počet instancí se podává v aplikaci pro jednotlivé funkce (Consumption) nebo podle plánu (Premium/Dedicated), pokud není uvedeno jinak.

Plánování Horizontální navýšení kapacity Maximální počet instancí #
Plán Consumption Řízené událostmi. Automaticky se škáluje i během období vysokého zatížení. Infrastruktura Functions škáluje prostředky procesoru a paměti přidáním dalších instancí hostitele Functions na základě počtu příchozích aktivačních událostí. Windows: 200
Linux: 1001
Plán Flex Consumption Škálování jednotlivých funkcí Rozhodnutí o škálování řízené událostmi se počítají na základě jednotlivých funkcí, což poskytuje deterministický způsob škálování funkcí ve vaší aplikaci. S výjimkou HTTP, blob storage (Event Grid) a Durable Functions se všechny ostatní typy triggerů funkcí ve vaší aplikaci škálují na nezávislé instance. Všechny triggery HTTP ve vaší aplikaci se škálují společně jako skupina ve stejných instancích jako všechny triggery služby Blob Storage (Event Grid). Všechny triggery Durable Functions také sdílejí instance a škálují se společně. Omezeno pouze celkovým využitím paměti všech instancí v dané oblasti. Další informace naleznete v tématu Paměť instance.
Plán Premium Řízené událostmi. Horizontální navýšení kapacity automaticky i během období vysokého zatížení Infrastruktura Azure Functions š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é se aktivují jeho funkce. Windows: 100
Linux: 20-1002
Vyhrazený plán3 Ruční nebo automatické škálování 10-30
100 (ASE)

1 Během horizontálního navýšení kapacity je v současné době limit 500 instancí na předplatné za hodinu pro aplikace pro Linux v plánu Consumption.
2 V některých oblastech můžou aplikace pro Linux v plánu Premium škálovat na 100 instancí. Další informace najdete v článku o plánu Premium.
3 Konkrétní omezení pro různé možnosti plánu služby App Service najdete v omezeních plánu služby App Service.

Chování studeného startu

Plánování Detaily
Plán Consumption Aplikace se můžou při nečinnosti škálovat na nulu, což znamená, že některé požadavky můžou mít při spuštění větší latenci. Plán consumption má některé optimalizace, které pomáhají zkrátit dobu studeného spuštění, včetně načítání z předem připravených zástupných funkcí, které už mají spuštěné hostitelské funkce a procesy jazyka.
Plán Flex Consumption Podporuje vždy připravené instance , aby se snížila prodleva při zřizování nových instancí.
Plán Premium Podporuje vždy připravené instance, abyste se vyhnuli studeným startům tím, že vám umožní udržovat jednu nebo více nepřetržitě teplých instancí.
Vyhrazený plán Při spuštění v plánu Dedicated může hostitel functions běžet nepřetržitě na předepsaném počtu instancí, což znamená, že studený start ve skutečnosti není problém.

Omezení služby

Prostředek Plán Consumption Plán Flex Consumption12 Plán Premium Vyhrazený plán/ASE
Výchozí doba trvání časového limitu (min) 5 30 30 301
Maximální doba trvání časového limitu (min) 10 nevázané15 nevázaná7 nevázané2
Maximální počet odchozích připojení (na instanci) 600 aktivních (celkem 1200) Neomezeně Neomezeně Neomezeně
Maximální velikost požadavku (MB)3 100 100 100 100
Maximální délkařetězce dotazu 3 4096 4096 4096 4096
Maximální délka adresyURL požadavku 3 8192 8192 8192 8192
ACU na instanci 100 Liší 210-840 100-840/210-2508
Maximální paměť (GB na instanci) 1.5 413 3.5-14 1.75-14/3.5-14
Maximální počet instancí (Windows/Linux) 200/100 1000 14 100/20 liší se podle SKU/1009
Aplikace funkcí na plán11 100 100 100 nevázané4
Plány služby App Service 100 na oblast Není k dispozici 100 na skupinu prostředků 100 na skupinu prostředků
Sloty nasazení na aplikaci10 2 Není k dispozici 3 1–209
Úložiště5 5 GB 250 GB 250 GB 50–1000 GB
Vlastní domény na aplikaci 5006 500 500 500
Podpora SSL vlastní domény Zahrnuté nevázané připojení SSL SNI Zahrnutá nevázaná připojení SSL a 1 IP SSL Zahrnutá nevázaná připojení SSL a 1 IP SSL Zahrnutá nevázaná připojení SSL a 1 IP SSL

Poznámky k limitům služeb:

  1. Ve výchozím nastavení je časový limit modulu runtime Functions 1.x v plánu služby App Service nevázaný.
  2. Vyžaduje, aby plán služby App Service byl nastavený na AlwaysOn. Platíte podle standardních sazeb.
  3. Tato omezení jsou nastavená v hostiteli.
  4. Skutečný počet aplikací funkcí, které můžete hostovat, závisí na aktivitě aplikací, velikosti instancí počítačů a 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 služby App Service. Plán Consumption používá službu Azure Files k dočasnému úložišti.
  6. Pokud je vaše aplikace funkcí hostovaná v plánu Consumption, podporuje se jenom možnost CNAME. U aplikací funkcí v plánu Premium nebo plánu služby App Service můžete namapovat vlastní doménu pomocí CNAME nebo záznamu A.
  7. Zaručeno až 60 minut.
  8. Pracovní procesy jsou role, které jsou hostiteli zákaznických aplikací. Pracovní procesy jsou k dispozici ve třech pevných velikostech: jeden vCPU/3,5 GB RAM; Dvě vCPU/7 GB RAM; Čtyři vCPU/14 GB RAM.
  9. Podrobnosti najdete v omezeních služby App Service.
  10. Včetně produkčního slotu.
  11. V daném předplatném je aktuálně limit 5 000 aplikací funkcí.
  12. Plán Flex Consumption je aktuálně ve verzi Preview.
  13. Velikosti instancí plánu Flex Consumption jsou aktuálně definované jako 2 048 MB nebo 4 096 MB. Další informace naleznete v tématu Paměť instance.
  14. Plán Flex Consumption ve verzi Preview má kvótu místního předplatného, která omezuje celkové využití paměti všech instancí v dané oblasti. Další informace naleznete v tématu Paměť instance.
  15. V plánu Flex Consumption hostitel nevynucuje časový limit provádění. V současné době ale neexistují žádné záruky, protože platforma může potřebovat ukončit instance během horizontálního navýšení kapacity, nasazení nebo instalace aktualizací.

Síťové funkce

Funkce Plán Consumption Plán Flex Consumption Plán Premium Vyhrazený plán/ASE
Omezení příchozích IP adres ✅Ano ✅Ano ✅Ano ✅Ano
Příchozí privátní koncové body ❌Ne ✅Ano ✅Ano ✅Ano
Integrace virtuální sítě ❌Ne ✅Ano (oblast) ✅Ano (oblast) ✅Ano (regionální a brána)
Triggery virtuální sítě (jiné než HTTP) ❌Ne ✅Ano ✅Ano ✅Ano
Hybridní připojení (jenom Windows) ❌Ne ✅Ano ✅Ano ✅Ano
Omezení odchozích IP adres ❌Ne ✅Ano ✅Ano ✅Ano

Fakturace

Plánování Detaily
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 Flex Consumption Fakturace vychází z počtu spuštění, paměti instancí při aktivním spouštění funkcí a nákladů na všechny instance, které jsou vždy připravené. Další informace najdete v tématu Fakturace plánu Flex Consumption.
Plán Premium Plán Premium je založený na počtu jader sekund a paměti využité napříč potřebnými a předem ozbrojenými instancemi. Nejméně jedna instance na plán musí být vždy v teple. Tento plán poskytuje nej předvídatelnější ceny.
Vyhrazený plán Platíte totéž za aplikace funkcí v plánu služby App Service jako u jiných prostředků služby App Service, jako jsou webové aplikace.

U služby ASE existuje paušální měsíční sazba, která platí za infrastrukturu a nemění se s velikostí prostředí. Existují také náklady na virtuální procesor plánu služby App Service. Všechny aplikace hostované ve službě ASE jsou ve skladové položce s izolovanou cenou. Další informace najdete v článku s přehledem služby ASE.

Přímé porovnání nákladů mezi dynamickými plány hostování (Consumption, Flex Consumption a Premium) najdete na stránce s cenami služby Azure Functions. Ceny různých možností vyhrazeného plánu najdete na stránce s cenami služby App Service. Ceny hostování Container Apps najdete v tématu Ceny služby Azure Container Apps.

Omezení pro vytváření nových aplikací funkcí v existující skupině prostředků

V některých případech se při pokusu o vytvoření nového plánu hostování vaší aplikace funkcí ve stávající skupině prostředků může zobrazit jedna z následujících chyb:

  • Cenová úroveň není v této skupině prostředků povolená.
  • <> SKU_name pracovní procesy nejsou k dispozici ve skupině <prostředků resource_group_name>

K tomu může dojít, když jsou splněny následující podmínky:

  • Aplikaci funkcí vytvoříte ve stávající skupině prostředků, která někdy obsahovala jinou aplikaci funkcí nebo webovou aplikaci. Například aplikace Consumption pro Linux nejsou podporované ve stejné skupině prostředků jako plány Linux Dedicated nebo Linux Premium.
  • Nová aplikace funkcí se vytvoří ve stejné oblasti jako předchozí aplikace.
  • Předchozí aplikace je nějakým způsobem nekompatibilní s novou aplikací. K této chybě může dojít mezi skladovými jednotkami, operačními systémy nebo jinými funkcemi na úrovni platformy, jako je podpora zón dostupnosti.

Důvodem je to, jak se aplikace funkcí a plány webových aplikací mapují na různé fondy prostředků při vytváření. Různé skladové položky vyžadují jinou sadu funkcí infrastruktury. Když vytvoříte aplikaci ve skupině prostředků, tato skupina prostředků se namapuje a přiřadí ke konkrétnímu fondu prostředků. Pokud se pokusíte v této skupině prostředků vytvořit jiný plán a mapovaný fond nemá požadované prostředky, dojde k této chybě.

Pokud k této chybě dojde, místo toho vytvořte aplikaci funkcí a plán hostování v nové skupině prostředků.

Další kroky