Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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 flexibilní spotřeby | Azure Functions (cloudové funkce od Microsoftu) | Obecně dostupné (GA) | Žádné |
Plán Premium | Azure Functions (cloudové funkce od Microsoftu) | GHANŠTINA | Operační systém Linux |
Vyhrazený tarif | Azure Functions (cloudové funkce od Microsoftu) | GHANŠTINA | Operační systém Linux |
Container Apps | Azure Container Apps (aplikace pro kontejnery) | GHANŠTINA | Operační systém Linux |
Plán spotřeby | Azure Functions (cloudové funkce od Microsoftu) | GHANŠTINA | Žádné |
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 vaše funkční aplikace š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 flexibilní spotřeby | Získejte rychlé horizontální škálování s výběrem výpočetních prostředků, virtuálními sítěmi a platbou podle využití. 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 počátečních dat zadáním jedné nebo více 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 připravený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 vysoký počet malých vykonání a vysoké faktury za provádění, ale nízké GB sekundy. ✔ Potřebujete více možností procesoru nebo paměti, než jaké poskytují spotřebitelské plány. ✔ 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ý tarif | Spouštějte funkce v rámci plánu služby App Service za pravidelné sazby 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 funkčních aplikací v rámci stejného plánu. ✔ Potřebujete přístup k většímu výběru velikosti výpočetní kapacity. ✔ Ú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 událostmi řízené, bezserverové funkční aplikace 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: ✔ Chcete zabalit vlastní knihovny spolu s kódem funkcí, aby podporovaly podnikové aplikace. ✔ Potřebujete 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. |
Plán spotřeby | 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í. |
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 flexibilní spotřeby |
✅ Pouze kód ❌ Kontejner (nepodporuje se) |
❌ Nepodporováno |
Plán Premium |
✅ Pouze kód ✅ Kontejner |
✅ Pouze kód |
Vyhrazený tarif |
✅ Pouze kód ✅ Kontejner |
✅ Pouze kód |
Container Apps | ✅ Pouze kontejner | ❌ Nepodporováno |
Plán spotřeby |
✅ Pouze kód ❌ Kontejner (nepodporuje se) |
✅ Pouze kód |
- Linux je jediný podporovaný operační systém pro Python runtime stack.
- Nasazení Windows jsou založená pouze na kódu. Služba Functions v současné době nepodporuje kontejnery Windows.
Doba vypršení časového limitu aplikace funkcí
Časový limit pro funkce v aplikaci funkcí je definován functionTimeout
vlastností v souboru projektu host.json . Tato vlastnost se vztahuje konkrétně na provádění funkcí. Jakmile trigger spustí spuštění funkce, musí funkce v rámci časového limitu vrátit nebo odpovědět. Aby nedocházelo k vypršení časového limitu, je důležité psát robustní funkce. 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 flexibilní spotřeby | 30 | Nevázané2 |
Plán Premium | 304 | Nevázané2 |
Vyhrazený tarif | 304 | Nevázané3 |
Container Apps | 30 | Neomezený5 |
Plán spotřeby | 5 | 10 |
- Bez ohledu na nastavení časového limitu aplikace funkcí je maximálně 230 sekund 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ěď.
- Nevynucuje se žádná maximální doba časového limitu pro provádění. Období odkladu zadané pro provádění funkce je však během škálování pro plány Flex Consumption a Premium 60 minut a během aktualizací platformy se poskytuje období odkladu 10 minut.
- Vyžaduje, aby plán služby App Service byl nastavený na AlwaysOn. Během aktualizací platformy se poskytuje období odkladu 10 minut.
- Výchozí časový limit pro verzi 1.x modulu runtime hostitele Functions je neomezený.
- Pokud je minimální počet replik nastaven na nulu, výchozí časový limit závisí na konkrétních aktivačních událostech použitých v aplikaci.
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.
Škála
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í | Rozšíření kapacity | Maximální počet instancí # |
---|---|---|
Plán flexibilní spotřeby | Š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ě. | 10001 |
Plán Premium | Řízené událostmi. Automaticky rozšiřovat kapacitu, 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: 1006 Linux: 20-1002,6 |
Vyhrazený tarif | Ruční nebo automatické škálování | 10-303 100 (ASE) |
Container Apps | Řízené událostmi. Automaticky rozšiřovat kapacitu, 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. | 300-10004 |
Plán spotřeby | Ří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: 1005 |
- Plán Flex Consumption má kvótu místního předplatného, která omezuje celkové využití paměti všech instancí v dané oblasti. Další informace najdete v části Kvóty paměti regionálního předplatného. Plány Flex Consumption aktuálně podporují pouze Linux.
- V některých oblastech se aplikace pro Linux v plánu Premium můžou škálovat na 100 instancí. Další informace najdete v článku o plánu Premium.
- Konkrétní limity pro různé možnosti plánu služby App Service najdete v omezeních plánu služby App Service.
- Ve službě Container Apps je výchozí 10 instancí, ale můžete nastavit maximální počet replik, které mají celkově maximálně 1 000. Toto nastavení se respektuje, pokud je k dispozici dostatek kvót jader. Další informace najdete v Kvóty pro Azure Container Apps. Když vytvoříte aplikaci funkcí z webu Azure Portal, budete omezeni na 300 instancí.
- Při škálování existuje v současné době limit 500 instancí na hodinu na jedno předplatné pro aplikace na Linuxu v plánu Consumption.
- U HTTP triggerů s omezeným přístupem soukromého koncového bodu je škálování omezeno na maximálně 20 instancí.
Chování studeného startu
Plánování | Podrobnosti |
---|---|
Plán flexibilní spotřeby | 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ý tarif | 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 problém studeného startu ve skutečnosti neexistuje. |
Container Apps | Závisí na minimálním počtu replik: • Při nastavení na nulu můžou aplikace při nečinnosti škálovat na nulu a některé požadavky můžou mít při spuštění vyšší latenci. • Pokud je nastaven na jednu či více hodnot, proces hostitele běží nepřetržitě, což znamená, že studený start nepředstavuje problém. |
Plán spotřeby | 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í vyšší latenci. Plán Consumption má některé optimalizace, které pomáhají snížit čas studeného spuštění, včetně využívání předem připravených zástupných funkcí, kde už běží hostitelské a jazykové procesy. |
Omezení služby
Prostředek | Plán flexibilní spotřeby | Plán Premium | Vyhrazený plán/ASE | Kontejnerové aplikace | Plán spotřeby |
---|---|---|---|---|---|
Výchozí časový limit (min) | 30 | 30 | 301 | 3016 | 5 |
Maximální doba trvání časového limitu (min) | nevázaná9 | nevázaná9 | nevázané2 | nevázaná17 | 10 |
Maximální počet odchozích připojení (na instanci) | neomezený | neomezený | neomezený | neomezený | 600 aktivních (celkem 1200) |
Maximální velikost požadavku (MB)3 | 210 | 210 | 210 | 210 | 210 |
Maximální délkařetězce dotazu 3 | 4096 | 4096 | 4096 | 4096 | 4096 |
Maximální délka adresyURL požadavku 3 | 8192 | 8192 | 8192 | 8192 | 8192 |
ACU na instanci | 210-840 | 100-840/210-25010 | liší se | 100 | liší se |
Maximální paměť (GB na instanci) | 414 | 3.5-14 | 1.75-256/8-256 | liší se | 1.5 |
Maximální počet instancí (Windows | Linux)15 | n/a | 1000 | 20-100 | 10–30 (100 ASE)11 | 300-100018 | 200 | 100 |
Aplikace funkcí na jeden plán13 | 1 | 100 | nevázané4 | nevázané4 | 100 |
Plány služby App Service | Není k dispozici | 100 na skupinu prostředků | 100 na skupinu prostředků | Není k dispozici | 100 na oblast |
Sloty nasazení na aplikaci12 | Není k dispozici | 3 | 1-2011 | nepodporováno | 2 |
Úložiště (dočasné)5 | 0,8 GB | 21–140 GB | 11–140 GB | Není k dispozici | 0,5 GB |
Úložiště (trvalé) | 0 GB7 | 250 GB | 10–1000 GB11 | Není k dispozici | 1 GB6 7 |
Vlastní domény pro aplikaci | 500 | 500 | 500 | nepodporováno | 5007 |
Vlastní doména TSL/SSL podpora | Zahrnuté nevázané SSL SNI a jedno připojení SSL protokolu IP | Zahrnuté nevázané SSL SNI a jedno připojení SSL protokolu IP | Zahrnuté nevázané SSL SNI a jedno připojení SSL protokolu IP | nepodporováno | Zahrnuté nevázané připojení SSL SNI |
Poznámky k limitům služeb:
- Ve výchozím nastavení je časový limit modulu runtime Functions 1.x v plánu služby App Service nevázaný.
- Vyžaduje, aby plán služby App Service byl nastavený na AlwaysOn. Platíte podle standardních sazeb. Během aktualizací platformy se poskytuje období odkladu 10 minut.
- Tato omezení jsou nastavená v hostiteli.
- 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ů.
- 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. V případě plánů Consumption v Linuxu je úložiště aktuálně 1,5 GB.
- Plán Consumption používá sdílenou složku Azure Files pro trvalé úložiště. Když zadáte vlastní sdílenou složku Azure Files, konkrétní omezení velikosti sdílené složky závisí na účtu úložiště, který jste nastavili pro WEBSITE_CONTENTAZUREFILECONNECTIONSTRING.
- V Linuxu musíte explicitně připojit vlastní sdílenou složku Azure Files.
- Pokud je vaše aplikační funkce hostována v plánu Consumption, podporuje se pouze 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.
- Nevynucuje se žádná maximální doba časového omezení provádění. Období odkladu poskytnuté spuštěním funkce je však 60 minut během škálování a 10 minut během aktualizací platformy.
- Pracovní role jsou hostiteli zákaznických aplikací. Pracovníci jsou k dispozici ve třech pevných velikostech: jeden vCPU/3,5 GB RAM; dva vCPU/7 GB RAM; čtyři vCPU/14 GB RAM.
- Podrobnosti najdete v omezeních služby App Service.
- Včetně produkčního slotu.
- V daném předplatném je v současné době limit 5 000 funkčních aplikací.
- Velikosti instancí plánů Flex Consumption jsou aktuálně definované jako 512 MB, 2 048 MB nebo 4 096 MB. Další informace naleznete v tématu Paměť instance.
- Podrobnosti najdete v tématu Škálování v článku o porovnání hostování.
- Pokud je minimální počet replik nastaven na nulu, výchozí časový limit závisí na konkrétních aktivačních událostech použitých v aplikaci.
- Pokud je minimální počet replik nastaven na jeden nebo více.
Síťové funkce
Funkce | Plán flexibilní spotřeby | Plán spotřeby | Plán Premium | Vyhrazený plán/ASE | Container Apps1 |
---|---|---|---|---|---|
Omezení příchozích IP adres | ✔ | ✔ | ✔ | ✔ | ✔ |
Příchozí privátní koncové body | ✔ | ✔ | ✔ | ||
Integrace virtuální sítě | ✔ | ✔2 | ✔3 | ✔ | |
Omezení odchozích IP adres | ✔ | ✔ | ✔ | ✔ |
- Další informace najdete v tématu Sítě v prostředí Azure Container Apps.
- Při práci se spouštěmi virtuální sítě existují zvláštní aspekty.
- Pouze plán Dedicated/ASE podporuje integraci virtuální sítě vyžadované bránou.
Fakturace
Plánování | Podrobnosti |
---|---|
Plán flexibilní spotřeby | 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 sekund jádra a paměti využité napříč potřebnými a předem zahřátý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ý tarif | 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 v izolovaném cenovém modelu. Další informace najdete v článku s přehledem služby ASE. |
Container Apps | Fakturace v Azure Container Apps je založená na typu vašeho plánu. Další informace najdete v tématu Fakturace v Azure Container Apps. |
Plán spotřeby | 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. |
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á.
- <Pracovníci >SKU_name nejsou dostupní 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 spotřební aplikace pro Linux nejsou podporovány ve stejné skupině prostředků jako dedikované nebo prémiové plány pro Linux.
- 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 jsou funkční aplikace a plány webových aplikací mapovány na různé fondy prostředků při jejich 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ů.